數字格式

概要

在路線和列車的檔案,你將會經常遇到數字。例如整數 (Integer)浮點數 (Floating-point number) 和時間。這些數字都必須遵守一個指定的格式,而這頁就會介紹它們的格式。

如果你曾經學過電腦程式語言 (例如 CPascalPHP) 的話,這頁介紹的就是 openBVE 為數字所設下的資料形態 (Data type)

openBVE 對數字提供了兩種解析方法 (Parsing method):嚴格 (Strict)寬鬆 (Loose)。嚴格方法是一個非常嚴厲的規格,它不能在數字中留下空白字元。這個方法是用於所有新的格式 (即不是繼承自 BVE Trainsim 的格式)。而寬鬆方法是一個舊式的解析模型 (Parsing model),使 openBVE 能與 BVE Trainsim 的現存作品相容。

留意
不論何時,即使該檔案規定對數字的解析方法是寬鬆,你仍可以使用嚴格方法。因為嚴格方法是寬鬆方法的子集

整數

嚴格

只准一個十進制的數字,數字必須使用 0 至 9 (U+0030 – U+0039) 的字元來表示,可視乎需要在前方加上負號 (U+002D)。數字的前後可以加上空白字元。

例子
0
123
-98

寬鬆

所有在數字間的空白字元會先在解析時被移除。然後剩餘的字符會按照嚴格方法來解析。如果不能建立一個有效的數字,最後一個字符會被移除,然後再次按照嚴格方法來解析。這個過程會不斷繼續,直至一個有效的數字能被建立或所有字元都被移除。如果所有字元都被移除的話,這個數字就被稱為無效數字。

寬鬆數字的例子
12 345
123
-987x456
在上一例子中的寬鬆數字被解析後的例子
12345
123
-987

浮點數

嚴格

只准一個十進制的數字,數字必須使用 0 至 9 (U+0030 – U+0039) 的字元來表示,可視乎需要在前方加上負號 (U+002D) 和在數字中加上小數點 (U+002E)。數字的前後可以加上空白字元。

例子
123
123.
123.456
0.456
.456
-123.456

寬鬆

所有在數字間的空白字元會先在解析時被移除。然後剩餘的字符會按照嚴格方法來解析。如果不能建立一個有效的數字,最後一個字符會被移除,然後再次按照嚴格方法來解析。這個過程會不斷繼續,直至一個有效的數字能被建立或所有字元都被移除。如果所有字元都被移除的話,這個數字就被稱為無效數字。

浮點數的例子
-123 . 456
987,333
在上一例子中的浮點數被解析後的例子
-123.456
987

時間

舊式

以下是一些允許的時間數列:

例子
hhh.mmss
hhh.mms
hhh.mm
hhh.m
hhh

在以上的時間數列中:

  • hhh 是代表最少有一個十進制的數字,表示小時。
  • mm 是代表一個兩位數字,表示分鐘。
  • m 是代表一個個位數字,表示分鐘。
  • ss 是代表一個兩位數字,表示秒。
  • s 是代表一個個位數字,表示秒。

所有的數字必須使用 0 至 9 (U+0030 – U+0039) 的字元來表示。分隔小時和分鐘之間的字元為一個半形點號 (U+002E)。數字的前後所加上的空白字元不會被解析。

時間由子夜開始計算。如果分鐘和秒未被定義,它們會被當作 0 來處理。小時需為正數,亦可以大於或等如 24 以表示翌日的時間。

例子

  1. 13.2634
  2. 08.5900
  3. 25.0318

以下是以上例子中的時間:

  1. 下午 1 時 26 分 34 秒
  2. 上午 8 時 59 分 0 秒
  3. 翌日上午 2 時 3 分 18 秒

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *