根據字母順序一一進行解說。
清書は折を見て行う気がしますが、これでいいかもと思ってしまった場合はこのままかもしれません。
| [v4] |
與 version 4 同名函式完全相同機能。 |
| [v4:...] |
在 version 4 與之相同或類似機能的函式。 |
| 沒有註明 |
在 version 5 新追加的函式。 |
A
B
C
E
F
G
H
I
L
M
P
R
S
T
U
A
ACOS
返回反餘弦值。參數的單位為radian。
ANY
參數為字串的時候,會視為簡易陣列,隨機選取其中一個字串。參數為變數的時候,會考慮其分隔符號。
若為泛用陣列時,會隨機選取其中一個元素。
整數或實數時會原值返回。沒有參數時則傳回空字串。
可導入複數個參數,會隨機返回其中一個參數的值。
DinnerTalk
{
unknownfood = ("熱的蕎麥麵","牛肉麵不加牛肉","黑暗鍋")
_i = "\0今天想吃" + ANY(unknownfood) + "。\1" + EVAL("unknownfood[LSO]") + "?"
_i
}
選擇的序數可以從變數LSO取得。
當ANY的選擇為2時,結果為
S:「今天想吃黑暗鍋。」 K:「黑暗鍋?」
ARRAYSIZE [v4:具備簡易陣列的互換性、2參數的方式已廢止]
參數指定為簡易陣列及泛用陣列,傳回此陣列的元素總數量。
ASEARCH
檢索泛用陣列中的值。第一參數是檢索的關鍵字、第二參數之後是指定要檢索的泛用陣列(不能是簡易陣列)。
會返回第一個找到的元素的序數。沒找到的話傳回 -1 。
_tea = ("鐵觀音", "烏龍", "やぶきた", "茉莉花")
ipod = ASEARCH("烏龍", _tea)
ipod等於1。
nyaoh = ASEARCH("猫", "麒麟", "猿", "象", "貓", "兔")
nyaoh等於3。
由於搜尋時採用比較單純的線性檢索,所以搜尋花費的時間會隨著陣列的長度而改變。
ASEARCHEX
檢索泛用陣列中的值。第一參數是檢索的關鍵字、第二參數之後是指定要檢索的泛用陣列(不能是簡易陣列)。
會將搜尋到的元素序數以陣列方式傳回。沒有搜尋到時則為空陣列(IARRAY)。
_tea = ("鐵観音", "烏龍", "やぶきた", "烏龍", "茉莉花")
ipod = ASEARCHEX("烏龍", _tea)
ipod等於泛用陣列 (1,3) 。
ASIN
返回反正弦值。參數的單位為radian。
ATAN
返回反正切值。參數的單位為radian。
B
BINSTRTOI [v4:BINSTRTONUM改名]
將2進位數值字串轉換成整數。參數異常時傳回0。
C
CEIL [v4]
實數的小數點無條件進位。
CHARSETLIB
指定外部程式庫通信所使用的文字編碼。有以下選擇。
- 0
指定Shift_JIS。
- 1
指定UTF-8。
- 127
指定OS預設的文字編碼。
請在LOADLIB之前進行指定。
LOADLIB単位に異なる文字コードを設定可能です。
預設的文字編碼為基礎設定檔案中charset項目的設定值。
無返值。
CHR [v4:ASC的擴張。與ASCII範圍有互換性]
根據UCS-2代碼返回1文字。
Test
{
_a = "ABC"
_b = "%(CHR(65))%(CHR(66))%(CHR(67))"
_c = "現在時間是%(hour)時%(minute)分%(second)秒。"
_d = EVAL("%(CHR(34))現在時間是%(hour)時%(minute)分%(second)秒%。(CHR(34))")
}
_a與_b相等,_c與_d相等。CHR(34)等同於雙括號( " )。
ASCII常用代碼表:
文字 |
! |
" |
# |
$ |
% |
& |
' |
( |
) |
* |
+ |
, |
- |
. |
/ |
0 |
9 |
: |
; |
< |
代碼 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
57 |
58 |
59 |
60 |
文字 |
= |
> |
? |
@ |
A |
Z |
[ |
\ |
] |
^ |
_ |
` |
a |
z |
{ |
| |
} |
~ |
|
|
代碼 |
61 |
62 |
63 |
64 |
65 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
122 |
123 |
124 |
125 |
126 |
|
|
CHRCODE [v4:IASC的擴張。與ASCII範圍有互換性]
將指定字串開頭的1文字轉換為UCS-2文字代碼並傳回。
COS [v4]
返回餘弦值。參數的單位為radian。
CUTSPACE [v4]
字串左右端有空白文字或標記文字的時候,予以去除。
CVINT [v4:TONUMBER改名]
參數指定的變數為存有整數值形式的字串時,將字串轉為整數。
無返值。
CVREAL
參數指定的變數為存有實數值形式的字串時,將字串轉為實數。
無返值。
CVSTR [v4:TOSTRING改名]
參數為變數時,將變數的內容轉換為字串。
無返值。
E
ERASE [v4:單位由byte單位變更為文字單位]
削除字串的指定部分。
第一參數為對象字串、第二參數為開始削除的文字位置、第三參數為要削除掉的文字數。
Test
{
_i = "ABCDEFGHIJ"
_i = ERASE(_i, 3, 4)
_i
}
結果為"ABCHIJ"。
ERASEVAR [v4:ERASEVARIABLE改名]
將指定的變數削除掉。參數請輸入寫有變數名稱的字串。
無返值。
EVAL
將輸入的字串作為
單一的文指令碼去實行。
請注意所謂「單一的」的意思,代表著無法執行複數的陳述式。因此,EVAL只會作算式程度的展開,無法執行包含if、for之類制御構造的指令碼,或是定義新的函式。
例如以下的程式碼為把1代入變數 i 中。
EVAL("i=1")
文並不存在逸出序列(escape sequence),字串內要包含雙括號的話請使用CHR(34)。例如將"test"代入變數 i 的寫法如下。
EVAL("i=%(CHR(34))test%(CHR(34))")
想在執行的時候進行%的展開時,也請將%寫作CHR(37)。
以下的例子為執行"%(foo)"時的寫法。
EVAL("%(CHR(34))%(CHR(37))(foo)%(CHR(34))")
* * *
轉換字串的 TOSTR(EVAL("formula")) 和埋入字串展開的 "%(formula)" 兩種寫法,其結果與EVAL的結果相同。
F
FATTRIB
取得檔案的屬性。
第一參數指定為檔案或資料夾名稱,全路徑指定可能。相對路徑的場合下以 DLL load 取得的路徑為基準。
結果返回以下的泛用陣列。分別取得0或1的值。1的時候,表示那個屬性是有效的。然而,如果指定的檔案不存在、處理失敗的時候,返回的值不會是泛用陣列,而是單一的整數 -1 。
ARCHIV,COMPRESSED,DIRECTORY,HIDDEN,NORMAL,OFFLINE,READONLY,SYSTEM,TEMP
- [0] ARCHIV
保存文件,或是保存資料夾。
- [1] COMPRESSED
壓縮文件,或是壓縮資料夾。
- [2] DIRECTORY
資料夾/目錄。確認此值的話,即可分辨對象是普通的文件還是資料夾。
- [3] HIDDEN
隱藏文件,或是隱藏資料夾。
- [4] NORMAL
無屬性。
- [5] OFFLINE
這個檔案現在無法使用。
- [6] READONLY
唯讀檔。
- [7] SYSTEM
Windows用檔案。
- [8] TEMP
暫存檔。
FCHARSET
指定檔案寫入/讀取時使用的文字編碼。有以下幾種選擇。
- 0
Shift_JIS指定。
- 1
UTF-8指定。
讀取時若在檔案先頭發現BOM(Byte Order Mark)的時候,會自動的去除掉。無法寫入BOM。
- 127
指定OS預設的文字編碼。
請在FOPEN之前進行指定。
ファイル單位に異なる文字コードを設定可能です。
預設的文字編碼為基礎設定檔案中charset項目的設定值。
無返值。
FCLOSE [v4]
關閉用FOPEN打開的檔案。
參數同樣是FOPEN指定的檔案名稱。
無返值。
FCOPY [v4]
複製檔案。
第一參數為要拷貝的原檔名、第二參數為原檔所在的資料夾名稱。全路徑指定可能。相對路徑的場合下以 DLL load 取得的路徑為基準。
返值 0 / 1 = 失敗 / 成功。
FDEL [v4]
刪除檔案。
全路徑指定可能。相對路徑的場合下以 aya5.dll load 取得的路徑為基準。
返值 0 / 1 = 失敗 / 成功。
FENUM [v4]
列舉指定位置存在的檔案名/資料夾名,以逗號區隔並傳回。全路徑指定可能。相對路徑的場合下以 DLL load 取得的路徑為基準。
資料夾的名稱會在前頭附加 " \ " 。
第二參數可指定分隔符號。
FLOOR [v4]
實數的小數點無條件捨去。
FMOVE [v4]
移動檔案。
第一參數為移動對象的檔名、第二參數為移動對象的資料夾名。全路徑指定可能。相對路徑的場合下以 DLL load 取得的路徑為基準。
返值 0 / 1 = 失敗 / 成功。
FOPEN [v4]
開啟檔案。
第一參數為檔案名稱。全路徑指定可能。相對路徑的場合下以 DLL load 取得的路徑為基準。
第二參數中對讀取 / 寫入的指定,如下列所示。
- "w" 或是"write"
開啟寫入模式。
- "r" 或是"read"
開啟讀取模式。
- "a" 或是"append"
開啟追加模式。
返值 0 / 1 / 2 = 失敗 / 成功 / 已經開啟過了。
FREAD [v4]
對已開啟讀取模式的檔案進行一行的讀取。
參數同樣是FOPEN指定的檔案名稱。
會自動去掉改行文字。
到達檔案終端時會傳回 -1 。
FRENAME [v4]
變更檔案名稱。
第一參數為對象檔名、第二參數為新的檔名。全路徑指定可能。相對路徑的場合下以 DLL load 取得的路徑為基準。
返值 0 / 1 = 失敗 / 成功。
FSIZE [v4]
取得指定檔案的大小(bytes數)。
全路徑指定可能。相對路徑的場合下以 DLL load 取得的路徑為基準。
失敗した場合-1を返します。
FWRITE [v4]
對已開啟讀取模式的檔案進行寫入字串的動作。
參數同樣是FOPEN指定的檔案名稱。
無返值。
FWRITE2 [v4]
對已開啟讀取模式的檔案進行寫入字串的動作。
參數同樣是FOPEN指定的檔案名稱。。
無返值。
FWRITE會自動輸入改行符號。FWRITE2不會。
G
GETDELIM
傳回指定變數所設定的分隔符號(簡易陣列中用來分隔元素的文字)。預設分隔符號為半形逗號。
請在第一參數上指定對象變數。
GETLASTERROR [v4:返值的體系變更]
傳回發生的系統函式錯誤類型的代碼。代碼如下列所示。
| 代碼 |
意義 |
| 8 | 參數不足。 |
| 9 |
參數的值有誤。 |
| 10 |
無法處理空字串。 |
| 11 |
沒有存放結果的變數。 |
| 12 |
範圍外或是無效的值。 |
| 13 |
處理失敗。 |
| 14 |
無法讀取指定的外部程式庫。 |
| 15 |
指定的檔案沒有被打開。 |
| 16 |
正則表達式的語法有誤或是太複雜了。 |
| 17 |
正則表達式的處理中產生了未定義的錯誤。 |
| 18 | 變數を渡すべき參數が變數となっていない。 |
這個函式的返值也可以用SETLASTERROR函式來進行設定。
使用GETLASTERROR時,如果要確實的確認錯誤發生的地方的話可以使用下列的方式。
SETLASTERROR(0)
(使用系統函式做某些處理)
if !GETLASTERROR {
"錯誤發生。"
}
GETMEMINFO [v4:類似於memory系系統變數]
取得動作環境的記憶體情報。結果會傳回下列的泛用陣列。
物理記憶體的使用率,物理記憶體量,剩餘物理記憶體量,虛擬 + 物理記憶體量,虛擬 + 物理剩餘記憶體量
GETSETTING
傳回作動中的文的相關設定情報。
第一參數指定你所想要取得的情報代號。
- 0
版本代號。是"5.6.0.232"這樣的字串。
- 1
文字編碼。以下數值取得。
- 0
Shift_JIS。
- 1
UTF-8。
- 127
OS預設的文字編碼。
- 2
文所在資料夾的絕對路徑。
GETSTRBYTES
傳回儲存字串所必要的byte數。
第一參數為對象字串、第二參數為解釋用的文字編碼。有以下幾種選擇。
- 0
Shift_JIS。
- 1
UTF-8。
- 127
OS預設的文字編碼。
第二參數可省略,預設為0(Shift_JIS)。
GETTICKCOUNT [v4:類似於系統變數systemuptickcount]
傳回OS啟動至今的經過時間。單位ms。超過24日20小時的話值會回到0。
GETTIME [v4:類似於時刻取得系系統變數]
現在的時間情報取得。返回結果即以下的泛用陣列。
西元,月,日,星期,時,分,秒
星期為0~6、0是星期日。
GETTYPE [v4:類似於ISINTEGER、ISREAL]
值的型別取得。
0 / 1 / 2 / 3 / 4 = 内部錯誤 / 整數 / 實數 / 字串 / 泛用陣列
H
HEXSTRTOI [v4:HEXSTRTONUM改名]
將16進數值字串轉換成整數。參數異常時會傳回0。
I
IARRAY
傳回空的泛用陣列。
INSERT [v4:byte單位換成文字單位]
插入字串。第一參數為對象字串、第二參數為要插入的文字位置、第三參數為要插入的字串。
Test
{
_i = "ABCHIJ"
_i = INSERT(_i, 3, "DEFG")
_i
}
結果為"ABCDEFGHIJ"。
ISFUNC [v4:ISFUNCTION改名]
傳回指定名稱的函式是否存在。
0 / 1 / 2 = 不存在 / 函式 / 系統函式
ISINTSTR
輸入的字串如果可以解釋為整數的話傳回 1 ,其餘為 0 。
ISREALSTR
輸入的字串如果可以解釋為實數的話傳回 1 ,其餘為 0 。
ISVAR
傳回指定名稱的變數是否存在。
0 / 1 / 2 = 不存在 / 全域變數 / 區域變數
L
LETTONAME [v4]
第一參數所指定的字串會被轉換成變數,第二參數為代入的值。
無返值。
LOADLIB [v4]
讀取外部程式庫。做LoadLibrary,實行load。
外部程式庫必須與介面用的文同樣具有公開的load/unload/request函式。
返值 0 / 1 / 2 = 失敗 / 成功 / 已讀取。
LOG [v4]
傳回自然對數。
LOG10 [v4]
傳回常用對數。
LOGGING [v4:指定字串的寫入方式變更]
把指定的值寫入LOG檔。不問值的型別。值為簡易陣列時會用逗號結合所有元素。
無返值。
LSO
Last Selection Order. 最後進行的選擇的結果,傳回其位置的值。
request
{
_i = foo
LSO
}
foo
{
"earth"
"moon"
"sun"
}
_i是"sun"的時候,LSO即為2。
總之,必須在選擇進行的同時一起執行。在字串選擇執行完畢後才取得的LSO值是沒有意義的。
request
{
{
"This is a "+ANY("pen", "pencil", "eraser")+"."
}
res = LSO
}
如果想得到ANY的選擇結果的話,這樣的寫法是錯誤的。這裡LSO所取得的值為LSO所處在的 { } 所執行的選擇。因此 res 永遠為 0 。
修正成以下寫法的話即可得到你所要的答案。
request
{
{
"This is a "+ANY("pen", "pencil", "eraser") + "."
res = LSO
}
}
出力確定子存在的場合,LSO會取得全部組合並進行相應的動作。
request
{
{
"1"
"2"
"3"
--
"A"
"B"
}
_i = LSO
}
例如上述函式内的{ }部份會有以下幾種輸出情況。
"1A" "2A" "3A" "1B" "2B" "3B"
LSO值的範圍也和此相同,取得0~5的值。各值與上述輸出種類的順序一致。
M
MKDIR [v4]
作成資料夾。全路徑指定可能。相對路徑的場合下以 DLL load 取得的路徑為基準。
只能作成一階層。
返值 0 / 1 = 失敗 / 成功。
P
POW [v4]
傳回第一參數的第二參數次方。
R
RAND [v4]
亂數取得。第一參數為指定的亂數範圍。產生 0 ~ (第一參數 -1 ) 之間的值。
沒有參數時會隨機產生 0 ~ 99 的值。
RE_GETLEN
正則表達系函式的實行結果取得。
返值為泛用陣列,陣列元素為 ( ) 中每個符合檢索條件的部份字串的長度。要素0為正則表達全部的符合字串的長度,
要素i為第 i 項的 ( ) 符合檢索條件的部份字串的長度。
RE_GETPOS
正則表達系函式的實行結果取得。
返值為泛用陣列,陣列元素為 ( ) 中每個符合檢索條件的部份字串的位置。要素0為正則表達全部的符合字串的位置,
要素i為第 i 項的 ( ) 符合檢索條件的部份字串的位置。
RE_GETSTR
正則表達系函式的實行結果取得。
返值為泛用陣列,陣列元素為 ( ) 中每個符合檢索條件的字串內容。要素0為正則表達全部的符合字串的內容,
要素i為第 i 項的 ( ) 符合檢索條件的字串內容。
RE_GREP
使用正則表達式(Regular Expression)對字串進行檢索,並列出結果。
第一參數為處理對象字串,第二參數為正則表達式。
返值為找到的數量。
詳細的結果可從函式 RE_GETSTR、RE_GETPOS、RE_GETLEN 取得。
使用可能的正則表達式語法可至以下網址參考。
boost::Regex++ Regular expression syntax(日本語)
http://boost.cppll.jp/HEAD/libs/regex/syntax.htm
中文的可參照此網址http://phi.sinica.edu.tw/aspac/reports/94/94019/,或是到google上搜尋"Regular Expression"即可找到相當多的教學文章。
RE_MATCH
處理對象字串全體與寫入的正則表達式完全吻合時返回 1 。其他情況則返回 0 。
第一參數為處理對象字串、第二參數為正則表達式。
詳細結果可從函式 RE_GETSTR、RE_GETPOS、RE_GETLEN 取得。
RE_REPLACE
利用正則表達式對字串進行檢索,將找到的吻合部份全部取代成別的字串。
第一參數為處理對象字串、第二參數為正則表達式、第三參數為置換後字串。
詳細結果可從函式 RE_GETSTR、RE_GETPOS、RE_GETLEN 取得。
在使用 RE_REPLACE 與 RE_SPLIT 時,RE_GETSTR、RE_GETPOS、RE_GETLEN 的意義與其他RE系函式有些不同。
其中的差異在於一邊是「第 i 次吻合的 ( ) 的內容」,一邊是「在對象字串中表示正則表達全體所吻合的第 i 項的内容」。
RE_SEARCH
利用正則表達式對處理對象字串進行檢索,如果其中有與正則表達式吻合的地方則傳回 1 。沒有時則傳回 0 。
第一參數為處理對象字串、第二參數為正則表達式。
詳細結果可從函式 RE_GETSTR、RE_GETPOS、RE_GETLEN 取得。
RE_SPLIT
利用正則表達式分割字串。分割後的結果傳回泛用陣列。
詳細結果可從函式 RE_GETSTR、RE_GETPOS、RE_GETLEN 取得。
REPLACE [v4:Byte單位轉換成文字單位]
取代字串。
第一參數為對象字串、第二參數為變換前字串、第三參數為變換後字串。符合部份會全部被取代。
REQUESTLIB [v4:返值追加]
將 Load 完畢的外部程式庫根據 request 送出字串,取得結果。
第一參數為 Load 時指定的程式庫檔名、第二參數為送出的 request 字串。
返值為結果字串。
RMDIR [v4]
刪除資料夾。全路徑指定可能。相對路徑的場合下以 DLL load 取得的路徑為基準。無法刪除空的資料夾。
返值 0 / 1 = 失敗 / 成功。
ROUND [v4]
四捨五入實數的小數點部份。
S
SAVEVAR
變數保存。與unload時實行的處理是相同的。
SETDELIM [v4:SETSEPARATOR改名]
設定變數的標準分隔符號(簡易陣列中用來區別元素的分隔文字)。預設為半形逗號。
第一參數為對象變數、第二參數為指定作為分隔符號的文字或字串。
無返值。
這個函式有以下的限制存在。請注意一下。
兩個參數必須直接寫入。
_i = (var, "/")
SETDELIM(_i)
上述例子是打算將變數var的分隔符號變更為 " / " ,但是事實上這個程式碼無法正常運作。
請像下面一樣,將第一參數的對象變數、第二參數的分隔符號直接指定給函式。
SETDELIM(var, "/")
SETLASTERROR
用整數設定GETLASTERROR函式返回的值。
SIN [v4]
返回正弦值。參數的單位為radian。
SPLIT
將分割的文字串以泛用陣列傳回。可以用RE_SPLIT代替,不過不使用正則表達式時比較快。
第一參數為對象字串、第二參數為分割字串。
第三參數可以指定最大的分割數。
_array = SPLIT("A//B//C//D//E"," //", 3)
_array 即 ("A", "B", "C//D//E") 。
分割數為 0 時全部分割(省略時也一樣)。分割數為 1 時不會進行分割。
SPLITPATH
分解輸入的路徑字串,放入泛用陣列並傳回。
陣列的元素為「磁碟名」「路徑」「主檔名」「副檔名」共4個。
_i = SPLITPATH("C:\umeici\sample\readme.txt")
_i 的4個元素分別為 "C:","\umeici\sample\","readme",".txt" 。
SQRT [v4]
傳回值的平方根。
STRFORM
傳回格式化的字串。與C言語的 sprintf 機能類似。
以下為 STRFORM 與 sprintf 的比較。除了有返值和格式指定的前置字元為" $ "這兩點不同之外,基本上是同樣的用法。
// C言語
int year = 1941;
char *warname = "太平洋";
sprintf(str, "%04d年 %s戰爭爆發。", year, warname);
// 文
year = 1941
warname = "太平洋"
str = STRFORM("$04d年 $s戰爭爆發。", year, warname)
一個格式指定所能展開的最大字串長度為1024文字。
STRLEN [v4:byte單位轉換成文字單位、2參數的方式已廢止]
傳回字串的文字數。
STRSTR [v4:byte單位轉換成文字單位。2參數的方式已廢止]
對字串内的部分字串進行檢索,傳回找到的文字位置。
第一參數為對象字串、第二參數為檢索用的關鍵字、第三參數為檢索開始時的文字位置。
SUBSTR [v4:byte單位轉換成文字單位]
取出字串中的部分字串。
第一參數為對象字串、第二參數為開始取得時的文字位置、第三參數為取得的文字數。
T
TAN [v4]
返回正切值。參數的單位是radian。
TOBINSTR [v4]
將整數轉換成2進位數值字串。參數異常時傳回空字串。
TOHEXSTR [v4]
將整數轉換成16進位數值字串。參數異常時傳回空字串。
TOINT [v4:TONUMBER2改名]
將字串轉換成整數。參數異常時傳回空字串。
TOLOWER [v4]
將字串中含有的大寫英文字母轉換成小寫英文字母。
TOREAL
將字串轉換成實數。參數異常時傳回0.0。
TOSTR [v4:TOSTRING2改名]
將整數、實數、泛用陣列轉換成字串。
輸入泛用陣列時,會傳回以逗號結合的字串。也就是說,泛用陣列會轉換成簡易陣列。
TOUPPER [v4]
將字串中含有的小寫英文字母轉換成大寫英文字母。
U
UNLOADLIB [v4]
將LOADLIB所讀取的外部程式庫進行 unload 之後,執行FreeLibrary。
參數為讀取時所指定的程式庫檔名。
無返值。
|