Top/マニュアル/文法/1.基礎設定
  トップページへ   [ 一覧 | 検索 | 最終更新 ]   [ 差分 | 履歴 | 凍結 ]

基礎設定

YAYAのデフォルトのDLLファイル名は「yaya.dll」です。
主ファイル名「yaya」は他の名前に自由に変更することができます。

文を動作させるためには「基礎設定ファイル」と呼ばれるファイルが必ず必要となります。
基礎設定ファイルのファイル名は「主ファイル名.txt」です。すなわちデフォルトでは「yaya.txt」となります。もしあなたがDLLのファイル名を 「hoge.dll」に変更したなら、基礎設定ファイルは「hoge.txt」です。 基礎設定ファイルはテキストファイルで、実行されるOSのデフォルトの文字コードで解読されます。
もし国際化に関して考慮しなければならないなら、マルチバイト文字コードに関する問題を回避するため、基礎設定ファイルはASCIIコードのみで記述するべきです。 以下に例を示します。

// 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

設定はコマンドとパラメータをカンマで区切って指定します。
空行(改行のみの行)、"//"以降、および"/*"と"*/"で囲まれた領域はコメントと見なされます。 コマンドとその意味は以下の通りです。

読み込み時に辞書エラーが起きた際の挙動

バージョンTc555-1より、読み込み時に辞書エラーが起きた時は、まず緊急時用の基礎設定ファイルで再度読み込みを試します。

緊急時用の基礎設定ファイルのファイル名は「主ファイル名_emerg.txt」です。すなわちデフォルトでは「yaya_emerg.txt」となります。DLL名を変更した時の挙動も通常の基礎設定ファイルと同様です。

それでもエラーになった場合は、request関数から何も返さない(NULL)状態になります。

問題が起きた時のエラーログは マニュアル/関数/GETERRORLOG で取得できます。

設定項目

charset, name

標準の文字コードを設定します。
以下の予約値からいずれかを指定します。指定が無い場合はShift_JISとして扱われます。

  • Shift_JIS / ShiftJIS / SJIS
    シフトJISコード。
  • UTF-8
    UTF-8。
  • default
    実行OSのデフォルト文字コード。

以下のcharset.ではじまるものは個別設定です。必ずcharsetでの全一括指定より後に書いてください。

charset.dic

辞書の文字コード。

charset.setting

基礎設定ファイルそのものの文字コード。

charset.output

request関数での入出力の文字コード。

charset.log

ログファイルや玉の出力の文字コード。 (Tc569-15)

charset.file

ファイル入出力の文字コード。

charset.save

グローバル変数セーブファイル入出力の文字コード。

charset.save.old

文字コード指定のない旧形式のセーブファイルの読み取りの文字コード。

charset.extension

外部DLL(SAORI等)入出力の文字コード。

dic, filename ( , charset )

辞書ファイルfilenameをロードします。
辞書ファイルは文スクリプトが記述されたプログラムソースファイルで、文はここのプログラムされた内容を元に動作します。
辞書ファイルはいくつでも指定し、読み込むことができます。 filenameはloadで指定されたパス位置からの相対パスで指定します。 標準の辞書ファイルはcharsetで指定した文字コードで記述されたプレーンテキストファイルです。この他に、一定の法則でスクランブルをかけた 暗号化ファイルを読み込むことができます。

ファイル名の後に、文字コードをカンマ区切りで追加すると、指定したファイルはその文字コードで読み込みます。

dicif, filename ( , charset )

dicと同じですが、指定したファイルが存在しない時は無視します。 [Tc571-2]

dicdir, dirname ( , charset )

指定したディレクトリ以下のすべてのファイルを辞書として読み込みます。
ディレクトリ指定であること以外はdic定義と同じです。

注意:ファイルを読む順序は決まっていません。
そのため、globaldefineなどを定義する際に、読み込み順序によって問題が発生する可能性があります。
globaldefineを定義する際は、必ず定義した辞書を最初のほうに読み込むようにしましょう。 [ここまでTc556-1]

dicdir で指定したディレクトリの中に _loading_order_override.txt か _loading_order.txt という名前のファイルがある時は、 includeEX,(ディレクトリ)/_loading_order.txt と書いたのと同じ挙動になります。
_loading_order_override.txt -> _loading_order.txt の順にファイルの存在をチェックし、先に見つかったほうのみincludeEXします。 [ここまでTc571-2]

msglang, language

ログに記録されるエラーメッセージ類の言語を選択します。
以下の予約値からいずれかを指定します。指定が無い場合はjapaneseとして扱われます。
(注意)本設定は過去互換のために残されています。次のmessagetxtを使ってください。

  • japanese
    日本語。
  • english
    英語。

messagetxt, filename ( , charset )

ログに記録されるエラーメッセージ類の言語ファイルを読み込みます。例えば下記のように書いてください。
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

辞書等を読み込む基準点となるディレクトリを任意の場所に再設定します。
設定しない場合、通常はyaya.dllと同じディレクトリになります。 [Tc557]

include, filename

基礎設定ファイルの内容を別ファイルから読み込みます。
指定したファイルの中身も有効な基礎設定として扱われます。

includeEX, filename

includeと基本的には同じ処理ですが、filenameに指定したファイル名がディレクトリ名を含む文字列だった場合に、そのディレクトリ内にカレントディレクトリを一時的に切り替えてからinclude処理を行います。 [Tc559]

log, logfilename

実行ログをファイルlogfilenameに記録します。
charset.logで指定した文字コードで書き込まれます。 logfilenameはloadで指定されたパス位置からの相対パスで指定します。

iolog, [on|off]

load、unload、request実行時の入出力文字列と処理時間をログに記録するかを設定します。
onで記録します。デフォルトではonになっていますので、不要の場合にoffとしてください。
off指定としても、玉にドラッグ&ドロップして起動する使い方をした場合は強制的にonになります。

iolog.filter.keyword,[無視判定文字列]

requestの文字列中に指定した無視判定文字列が含まれていた場合、そのrequestのI/Oをログに記録しない(玉への出力もしない)ようにします。複数指定可能です。

旧定義名:ignoreiolog

例:OnSecondChangeとOnMouse系のイベントを記録しない

ignoreiolog, ID: OnSecondChange //OnSecondChange無視
iolog.filter.keyword, OnMouse        //OnMouse系無視

(注意)基礎設定ファイルの書式上、無視判定文字列の前後の空白、およびコメント // 以降は無視されます。

iolog.filter.keyword.delete,[文字列]

上記を削除します。 マニュアル/関数/SETSETTING 向けの書き方で、定義ファイルに直接書いてもあまり意味はありません。

iolog.filter.keyword.regex,[無視判定文字列:正規表現]

iolog.filter.keywordの正規表現版です。

iolog.filter.keyword.regex,delete,[文字列]

上記を削除します。 マニュアル/関数/SETSETTING 向けの書き方で、定義ファイルに直接書いてもあまり意味はありません。

iolog.filter.mode,[モード]

上記のiolog.filter.keyword~ の判定条件について、「条件に合致したものを出力しない」か「条件に合致したものだけを出力する」かを切り替えます。

定義しない場合は「条件に合致したものを出力しない」モードになります。

iolog.filter.mode,allowlist
iolog.filter.mode,whitelist

↑条件に合致したものだけを出力するモードに切り替えます。

iolog.filter.mode,denylist
iolog.filter.mode,blacklist

↑条件に合致したものを出力しないモードに切り替えます。

fncdepth, [depth]

関数呼び出しの深さ上限を数値で指定します。
デフォルト値は32です。最低値は2で、これより小さな値や不正な値を指定した場合も2として扱われます。
0にすると上限チェックをしませんが、呼び出しが深すぎると容赦なくベースウェアごと落ちます。 [Tc556-1]

looplimit, [count]

ループの回数上限を数値で指定します。
デフォルト値は10000です。
0にすると上限チェックをしませんが、延々と実行を続けてフリーズします。
foreachには効果がありません。 [Tc564-1]

save.encode, [on|off]

セーブファイルを暗号化します。「暗号化」といってもたいしたものではありませんので、せいぜい多少わかりにくくする程度とお考えください。
一度onにするとセーブファイルを削除するまで暗号化されたままになります。設定を変える際は十分注意してください。

save.auto, [on|off]

セーブファイル自動保存機能をON/OFFします。ONの場合、一定時間ごとのバックアップと終了時の変数自動保存が行われます。OFFの場合は保存関数を明示的に呼ばない限り保存されません。標準はONです。

maxlognum, [count]

GETERRORLOG関数で取得できるログの最大値を設定します。
デフォルト値は256要素です。