- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2021-07-20T02:22:03+09:00","","")
#author("2022-06-18T09:14:15+09:00","","")
#navi(マニュアル/文法)
#contents
*基礎設定 [#nc75848b]
YAYAのデフォルトのDLLファイル名は「yaya.dll」です。~
主ファイル名「yaya」は他の名前に自由に変更することができます。
文を動作させるためには「基礎設定ファイル」と呼ばれるファイルが必ず必要となります。~
基礎設定ファイルのファイル名は「主ファイル名.txt」です。すなわちデフォルトでは「yaya.txt」となります。もしあなたがDLLのファイル名を
「hoge.dll」に変更したなら、基礎設定ファイルは「hoge.txt」です。
基礎設定ファイルはテキストファイルで、実行されるOSのデフォルトの文字コードで解読されます。~
もし国際化に関して考慮しなければならないなら、マルチバイト文字コードに関する問題を回避するため、基礎設定ファイルはASCIIコードのみで記述するべきです。
以下に例を示します。
#code(aya,nooutline,nolink,nonumber){{
// dics
dic, basis.dic
dic, control./*doc*/ayc
// option parameters
charset, UTF-8
charset.dic, Shift_JIS
charset.setting, Shift_JIS
charset.output, UTF-8
charset.file, Shift_JIS
charset.save, UTF-8
charset.extension, Shift_JIS
msglang, english
log, executelog.txt
iolog, off
fncdepth, 16
}}
設定はコマンドとパラメータをカンマで区切って指定します。~
空行(改行のみの行)、"//"以降、および"/*"と"*/"で囲まれた領域はコメントと見なされます。
コマンドとその意味は以下の通りです。
*読み込み時に辞書エラーが起きた際の挙動 [#nbdba21f]
バージョンTc555-1より、読み込み時に辞書エラーが起きた時は、まず緊急時用の基礎設定ファイルで再度読み込みを試します。
緊急時用の基礎設定ファイルのファイル名は「主ファイル名_emerg.txt」です。すなわちデフォルトでは「yaya_emerg.txt」となります。DLL名を変更した時の挙動も通常の基礎設定ファイルと同様です。
それでもエラーになった場合は、request関数から何も返さない(NULL)状態になります。
問題が起きた時のエラーログは [[マニュアル/関数/GETERRORLOG]] で取得できます。
*設定項目 [#yac5d4b4]
**charset, name [#lfff9e83]
標準の文字コードを設定します。~
以下の予約値からいずれかを指定します。指定が無い場合はShift_JISとして扱われます。
-Shift_JIS / ShiftJIS / SJIS~
シフトJISコード。
-UTF-8~
UTF-8。
-default~
実行OSのデフォルト文字コード。
以下のcharset.ではじまるものは個別設定です。必ずcharsetでの全一括指定より後に書いてください。
**charset.dic [#tbbef654]
辞書の文字コード。
**charset.setting [#m550f1ac]
基礎設定ファイルそのものの文字コード。
**charset.output [#hc2b130e]
request関数での入出力の文字コード。
**charset.log [#q8207e68]
ログファイルや玉の出力の文字コード。 (Tc569-15)
**charset.file [#e88707bb]
ファイル入出力の文字コード。
**charset.save [#j8736700]
グローバル変数セーブファイル入出力の文字コード。
**charset.save.old [#p5e0a1ff]
文字コード指定のない旧形式のセーブファイルの読み取りの文字コード。
**charset.extension [#i3edf412]
それぞれ順に、
外部DLL(SAORI等)入出力の文字コード。
-辞書
-requestでの入出力
-ファイル入出力
-グローバル変数セーブファイル入出力
-文字コード指定のない旧形式のセーブファイルの読み取り
-外部DLL(SAORI等)入出力
の文字コードを個別に設定します。
必ずcharset指定より後に書いてください。
**dic, filename ( , charset ) [#rbfd65d8]
辞書ファイルfilenameをロードします。~
辞書ファイルは文スクリプトが記述されたプログラムソースファイルで、文はここのプログラムされた内容を元に動作します。~
辞書ファイルはいくつでも指定し、読み込むことができます。
filenameはloadで指定されたパス位置からの相対パスで指定します。
標準の辞書ファイルはcharsetで指定した文字コードで記述されたプレーンテキストファイルです。この他に、一定の法則でスクランブルをかけた
暗号化ファイルを読み込むことができます。
ファイル名の後に、文字コードをカンマ区切りで追加すると、指定したファイルはその文字コードで読み込みます。
**dicif, filename ( , charset ) [#t076cdc2]
dicと同じですが、指定したファイルが存在しない時は無視します。 [Tc571-2]
**dicdir, dirname ( , charset ) [#h85cc54a]
指定したディレクトリ以下のすべてのファイルを辞書として読み込みます。
指定したディレクトリ以下のすべてのファイルを辞書として読み込みます。~
ディレクトリ指定であること以外はdic定義と同じです。
注意:ロードの順序は未定義です。
注意:ファイルを読む順序は決まっていません。~
そのため、globaldefineなどを定義する際に、読み込み順序によって問題が発生する可能性があります。~
globaldefineを定義する際は、必ず定義した辞書を最初のほうに読み込むようにしましょう。 [ここまでTc556-1]
これはglobaldefineの一部のファイルでは有効ではない可能性があります:定義より先に使われるからです。
dicdir で指定したディレクトリの中に _loading_order_override.txt か _loading_order.txt という名前のファイルがある時は、 includeEX,(ディレクトリ)/_loading_order.txt と書いたのと同じ挙動になります。~
_loading_order_override.txt -> _loading_order.txt の順にファイルの存在をチェックし、先に見つかったほうのみincludeEXします。 [ここまでTc571-2]
解决方法はglobaldefineの辞书を他の辞书より先に含んで、単回のdicdirで统一的にロードするのではありません。
(実装:Tc556-1)
**msglang, language [#ba19005d]
ログに記録されるエラーメッセージ類の言語を選択します。~
以下の予約値からいずれかを指定します。指定が無い場合はjapaneseとして扱われます。~
(注意)本設定は過去互換のために残されています。次のmessagetxtを使ってください。
-japanese~
日本語。
-english~
英語。
**messagetxt, filename ( , charset ) [#gb2c4d80]
ログに記録されるエラーメッセージ類の言語ファイルを読み込みます。~
通常のYAYA配布ファイル群では、messagetxtフォルダ以下に存在しますので、例えば下記のように書いてください。~
ログに記録されるエラーメッセージ類の言語ファイルを読み込みます。例えば下記のように書いてください。~
charsetを省略した場合は、UTF-8(BOM付)になります。 [Tc557]
messagetxt,messagetxt/japanese.txt
messagetxt,messagetxt/english.txt
messagetxt,messagetxt/chinese-simplified.txt
messagetxt,messagetxt/chinese-traditional.txt
言語ファイル名は https://github.com/ponapalt/yaya-shiori/tree/500/messagetxt で確認できます。
Tc570-1より、Windows上では言語ファイルをDLLに埋め込むようになったので、言語ファイル本体を配布する必要はありませんが、messagetxtにファイル名を書く仕様はWindows以外の環境向けにそのままにしています。
**basepath, directory [#s8d07a4a]
辞書等を読み込む基準点となるディレクトリを任意の場所に再設定します。~
設定しない場合、通常はyaya.dllと同じディレクトリになります。 [Tc557]
**include, filename [#ge3e7e6f]
基礎設定ファイルの内容を別ファイルから読み込みます。~
指定したファイルの中身も有効な基礎設定として扱われます。
**includeEX, filename [#k068de51]
includeと基本的には同じ処理ですが、filenameに指定したファイル名がディレクトリ名を含む文字列だった場合に、そのディレクトリ内にカレントディレクトリを一時的に切り替えてからinclude処理を行います。 [Tc559]
**log, logfilename [#m583923d]
実行ログをファイルlogfilenameに記録します。~
charsetで指定した文字コードで書き込まれます。
charset.logで指定した文字コードで書き込まれます。
logfilenameはloadで指定されたパス位置からの相対パスで指定します。
**iolog, [on|off] [#pb05622c]
load、unload、request実行時の入出力文字列と処理時間をログに記録するかを設定します。~
onで記録します。デフォルトではonになっていますので、不要の場合にoffとしてください。~
off指定としても、玉にドラッグ&ドロップして起動する使い方をした場合は強制的にonになります。
**ignoreiolog,[無視判定文字列] [#b95d1367]
**iolog.filter.keyword,[無視判定文字列] [#b95d1367]
requestの文字列中に指定した無視判定文字列が含まれていた場合、そのrequestのI/Oをログに記録しない(玉への出力もしない)ようにします。複数指定可能です。
旧定義名:ignoreiolog
例:OnSecondChangeとOnMouse系のイベントを記録しない
ignoreiolog, ID: OnSecondChange //OnSecondChange無視
ignoreiolog, ID: OnMouse //OnMouse系無視
iolog.filter.keyword, OnMouse //OnMouse系無視
(注意)基礎設定ファイルの書式上、無視判定文字列の前後の空白、およびコメント // 以降は無視されます。
**fncdepth, depth [#p6bb4967]
**iolog.filter.keyword.delete,[文字列] [#j0824d3d]
上記を削除します。 [[マニュアル/関数/SETSETTING]] 向けの書き方で、定義ファイルに直接書いてもあまり意味はありません。
**iolog.filter.keyword.regex,[無視判定文字列:正規表現] [#je060ec4]
iolog.filter.keywordの正規表現版です。
**iolog.filter.keyword.regex,delete,[文字列] [#c2e843e1]
上記を削除します。 [[マニュアル/関数/SETSETTING]] 向けの書き方で、定義ファイルに直接書いてもあまり意味はありません。
**iolog.filter.mode,[モード] [#p0f1090a]
上記のiolog.filter.keyword~ の判定条件について、「条件に合致したものを出力しない」か「条件に合致したものだけを出力する」かを切り替えます。
定義しない場合は「条件に合致したものを出力しない」モードになります。
iolog.filter.mode,allowlist
iolog.filter.mode,whitelist
↑条件に合致したものだけを出力するモードに切り替えます。
iolog.filter.mode,denylist
iolog.filter.mode,blacklist
↑条件に合致したものを出力しないモードに切り替えます。
**fncdepth, [depth] [#p6bb4967]
関数呼び出しの深さ上限を数値で指定します。~
デフォルト値は32です。最低値は2で、これより小さな値や不正な値を指定した場合も2として扱われます。~
0にすると上限チェックをしませんが、呼び出しが深すぎると容赦なくベースウェアごと落ちます。 [Tc556]
0にすると上限チェックをしませんが、呼び出しが深すぎると容赦なくベースウェアごと落ちます。 [Tc556-1]
**looplimit, [count] [#w2afd51b]
ループの回数上限を数値で指定します。~
デフォルト値は10000です。~
0にすると上限チェックをしませんが、延々と実行を続けてフリーズします。~
foreachには効果がありません。 [Tc564-1]
**save.encode, [on|off] [#m40b8102]
セーブファイルを暗号化します。「暗号化」といってもたいしたものではありませんので、せいぜい多少わかりにくくする程度とお考えください。~
一度onにするとセーブファイルを削除するまで暗号化されたままになります。設定を変える際は十分注意してください。
**save.auto, [on|off] [#v12dd3d8]
セーブファイル自動保存機能をON/OFFします。ONの場合、一定時間ごとのバックアップと終了時の変数自動保存が行われます。OFFの場合は保存関数を明示的に呼ばない限り保存されません。標準はONです。
**maxlognum, [count] [#wd26f86a]
GETERRORLOG関数で取得できるログの最大値を設定します。~
デフォルト値は256要素です。
#navi(マニュアル/文法)