ukagaka-doc-mcp 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/index.json +663 -332
- package/dist/index-validation.d.ts.map +1 -1
- package/dist/index-validation.js +1 -0
- package/dist/index-validation.js.map +1 -1
- package/dist/parser/aosora-parser.d.ts.map +1 -1
- package/dist/parser/aosora-parser.js +3 -0
- package/dist/parser/aosora-parser.js.map +1 -1
- package/dist/parser/yaya-docs-parser.d.ts.map +1 -1
- package/dist/parser/yaya-docs-parser.js +4 -1
- package/dist/parser/yaya-docs-parser.js.map +1 -1
- package/dist/search/engine.js +1 -0
- package/dist/search/engine.js.map +1 -1
- package/dist/tools/get-doc.d.ts.map +1 -1
- package/dist/tools/get-doc.js +1 -0
- package/dist/tools/get-doc.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/data/index.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 1,
|
|
3
|
-
"generatedAt": "2026-09-
|
|
3
|
+
"generatedAt": "2026-09-28T01:00:16.448Z",
|
|
4
4
|
"entries": [
|
|
5
5
|
{
|
|
6
6
|
"id": "ukadoc:descript_balloon:charset_2c_6587_5b57_30b3_30fc_30c9:1",
|
|
@@ -14272,7 +14272,8 @@
|
|
|
14272
14272
|
"source": "yaya_docs",
|
|
14273
14273
|
"category": "yaya_basic",
|
|
14274
14274
|
"content": "配列\n\n概要\n\n配列は変数をまとめて扱う仕組み。個別に _a = 1; _b = 2 と書く代わりに、まとめて管理できる。\n\n基本的な使い方\n\n_a = (1,2,3,4,5)\n_sum = _a[0] + _a[1] + _a[2] + _a[3] + _a[4]\n\nインデックスは0始まり。\n\nARRAYSIZE() による動的サイズ取得\n\n配列の長さを動的に取得することで、サイズに依存しない柔軟なコードが書ける:\n\n_sweets = (\"プリン\", \"チョコレート\", \"クレープ\", \"甘口いちごスパ\")\nfor _i = 0 ; _i < ARRAYSIZE(_sweets) ; _i++\n{\n _sweets[_i] + \"\\n\"\n}\n\nforeach ループ(最も簡単な方法)\n\nforeach を使うと、インデックスや ARRAYSIZE を意識せずに配列をイテレートできる:\n\n_sweets = (\"プリン\", \"チョコレート\", \"クレープ\")\nforeach _sweets ; _item\n{\n _item + \"\\n\"\n}\n\n関連\n\n- 文法/5.配列\n- ARRAYSIZE",
|
|
14275
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/basic/arrays/"
|
|
14275
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/basic/arrays/",
|
|
14276
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/basic/arrays.md"
|
|
14276
14277
|
},
|
|
14277
14278
|
{
|
|
14278
14279
|
"id": "yaya:basic/branching",
|
|
@@ -14280,7 +14281,8 @@
|
|
|
14280
14281
|
"source": "yaya_docs",
|
|
14281
14282
|
"category": "yaya_basic",
|
|
14282
14283
|
"content": "分岐処理\n\n概要\n\n式が正しいか正しくないかで、処理を分けることができる。論理演算子と組み合わせて使うことが多い。\n\nif〜else〜 文\n\nif (_name == \"さくら\")\n{\n \"さくらです\"\n}\nelse\n{\n \"さくらじゃない!\"\n}\n\n式が真の場合は最初のブロック、偽の場合は else ブロックが実行される。\n\ncase〜when 文\n\nラベルベースの分岐:\n\ncase _value\nwhen 1\n{\n // _value が 1 の場合\n}\nwhen 2, 3\n{\n // _value が 2 または 3 の場合\n}\nothers\n{\n // どれにもマッチしない場合\n}\n\nswitch 文\n\n位置(0始まり)で出力候補を選択する:\n\nswitch _n\n{\n \"ゼロ番目\"\n}\n{\n \"一番目\"\n}\n{\n \"二番目\"\n}\n\n関連\n\n- 文法/7.フロー制御",
|
|
14283
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/basic/branching/"
|
|
14284
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/basic/branching/",
|
|
14285
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/basic/branching.md"
|
|
14284
14286
|
},
|
|
14285
14287
|
{
|
|
14286
14288
|
"id": "yaya:basic/functions",
|
|
@@ -14288,7 +14290,8 @@
|
|
|
14288
14290
|
"source": "yaya_docs",
|
|
14289
14291
|
"category": "yaya_basic",
|
|
14290
14292
|
"content": "関数\n\n基本的な関数定義\n\nTest{\n \"Hello World!\"\n}\n\n代入式でないただの変数や文字列が存在すると、それが返り値として扱われる。\n\n複数の返り値候補\n\n複数の候補がある場合、ランダムに1つが選ばれる:\n\nTest{\n A = 10\n \"Hello World!\"\n \"Hallo Welt!\"\n 10\n 11+32\n}\n\nこのとき \"Hello World!\"、\"Hallo Welt!\"、10、43 のどれかがランダムに返る。\n\n引数\n\n引数はローカル変数配列 _argv に格納され、_argc が引数の数を保持する:\n\nてすと{\n \"入力は「\" + _argv[0] + \"」だよ\"\n}\n\n呼び出し例:てすと(\"うかがか\") → \"入力は「うかがか」だよ\"\n\n変数の種類\n\n| 種類 | プレフィックス | スコープ |\n|------|--------------|---------|\n| ローカル変数 | _ | 定義された波括弧内のみ |\n| グローバル変数 | なし | どこからでもアクセス可能。ゴースト終了後も永続 |\n\n変数はスコープに関わらず、関数の中でのみ定義できる。\n\n関数呼び出し制限\n\nfncdepth 設定で再帰深さの上限を制御(デフォルト: 32階層)。上限を超えると shiori.OnCallLimit() または shiori.OnMemoryLimit() エラーハンドラが呼ばれる。\n\n関連\n\n- 文法/2.関数",
|
|
14291
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/basic/functions/"
|
|
14293
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/basic/functions/",
|
|
14294
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/basic/functions.md"
|
|
14292
14295
|
},
|
|
14293
14296
|
{
|
|
14294
14297
|
"id": "yaya:basic/loops",
|
|
@@ -14296,7 +14299,8 @@
|
|
|
14296
14299
|
"source": "yaya_docs",
|
|
14297
14300
|
"category": "yaya_basic",
|
|
14298
14301
|
"content": "繰り返し\n\nfor ループ\n\nfor _i = 0 ; _i < 10 ; _i++\n{\n _i + \"回目\\n\"\n}\n\n注意: YAYA では条件式をカッコで囲まない。for(_i = 0; _i < 10; _i++) はエラーになる。\n\nよく使うループ演算子:\n\n| 演算子 | 意味 |\n|--------|------|\n| a++ | a = a+1 |\n| a-- | a = a-1 |\n| a+=b | a = a+b |\n| a-=b | a = a-b |\n\nwhile ループ\n\n_i = 0\nwhile _i < 10\n{\n _i + \"回目\\n\"\n _i++\n}\n\n無限ループ: while 1 または while 1 == 1 で無限ループになる(ブール値は0以外が真)。\n\nbreak 文\n\nループを途中で抜けるには break を使う:\n\n_i = 0\nwhile 1\n{\n if _i >= 10\n {\n break\n }\n _i + \"回目\\n\"\n _i++\n}\n\n関連\n\n- 文法/7.フロー制御",
|
|
14299
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/basic/loops/"
|
|
14302
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/basic/loops/",
|
|
14303
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/basic/loops.md"
|
|
14300
14304
|
},
|
|
14301
14305
|
{
|
|
14302
14306
|
"id": "yaya:basic/operators",
|
|
@@ -14304,7 +14308,8 @@
|
|
|
14304
14308
|
"source": "yaya_docs",
|
|
14305
14309
|
"category": "yaya_basic",
|
|
14306
14310
|
"content": "演算子\n\n算術演算子\n\n| 演算子 | 説明 | 例 |\n|--------|------|-----|\n| x + y | 加算 | 1+1 → 2 |\n| x - y | 減算 | 2-1 → 1 |\n| x * y | 乗算 | 6*2 → 12 |\n| x / y | 除算(余りは切り捨て) | 4/3 → 1 |\n| x % y | 剰余 | 4%3 → 1(偶奇判定に使用可) |\n\n論理演算子\n\nif文や for 文の条件として使用する:\n\n| 演算子 | 説明 |\n|--------|------|\n| x == y | 等値判定 |\n| x != y | 不等値判定 |\n| x && y | AND演算子 |\n| x || y | OR演算子 |\n| x > y / x >= y / x < y / x <= y | 大小比較 |\n| !x | 否定演算子 |\n| y _in_ x | xの中にyが存在する |\n| y !_in_ x | xの中にyが存在しない |\n\n文字列演算\n\n_c = \"さくら\" + \"と\" + \"うにゅう\"\n// 結果: \"さくらとうにゅう\"\n\n配列操作\n\n_array = (_hoge, _fuga, _gonyo)\n\nカンマ演算子 , で複数の値を配列化する。\n\n関連\n\n- 文法/4.演算",
|
|
14307
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/basic/operators/"
|
|
14311
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/basic/operators/",
|
|
14312
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/basic/operators.md"
|
|
14308
14313
|
},
|
|
14309
14314
|
{
|
|
14310
14315
|
"id": "yaya:basic/variables",
|
|
@@ -14312,7 +14317,8 @@
|
|
|
14312
14317
|
"source": "yaya_docs",
|
|
14313
14318
|
"category": "yaya_basic",
|
|
14314
14319
|
"content": "変数\n\n概要\n\n変数は数値や文字列を格納するコンテナ。一度値を代入すると以前の値は上書きされる。\n\n重要: 変数の宣言は関数の中でのみ行える。\n\n基本的な使い方\n\n変数の代入は = 演算子を使う:\n\n_a = 1\n_b = 2\n_c = _a + _b // 結果: 3\n\n文字列変数\n\n_a = \"紅茶\"\n_b = \"ケーキ\"\n_c = _a + \"と\" + _b // 結果: \"紅茶とケーキ\"\n\nSAKURAスクリプトとの組み合わせ\n\nスクリプトは必ず引用符で囲む必要がある:\n\n// NG: そのままだと動かない\n\\!\\[open,inputbox,OnTest,60000\\]\n\n// OK: 引用符で囲む\n\"\\!\\[open,inputbox,OnTest,60000\\]\"\n\nトーク内での変数表示\n\n変数の内容をトークテキストに表示するには %(変数名) の構文を使う:\n\n\"\\0\\s[0]飲み物なら%(_hoge)をどうぞ\\e\"\n\n関連\n\n- 文法/3.値と変数",
|
|
14315
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/basic/variables/"
|
|
14320
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/basic/variables/",
|
|
14321
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/basic/variables.md"
|
|
14316
14322
|
},
|
|
14317
14323
|
{
|
|
14318
14324
|
"id": "yaya:functions/ACOS",
|
|
@@ -14320,7 +14326,8 @@
|
|
|
14320
14326
|
"source": "yaya_docs",
|
|
14321
14327
|
"category": "yaya_function",
|
|
14322
14328
|
"content": "ACOS\n\nCategory: 数学関数\n\nSignature\n\nACOS( val )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| val | アークコサインを計算する実数値。-1.0 ≦ val ≦ 1.0 の範囲 |\n\nReturns\n\n成功時:アークコサインの値をラジアンで返す(実数)\n失敗時:0.0\n\nExample\n\n_d = ACOS( 0.5 ) // 約 1.047198 (ラジアン) を返す\n_d * 180 / 3.14159265358 // 約 60 度に変換\n\nCompatibility\n\n- YAYA: 初期リリースから利用可能\n- AYA: バージョン 5.8 以降\n\nSee Also\n\n- ASIN\n- ATAN\n- SIN\n- COS\n- TAN\n- SINH\n- COSH\n- TANH",
|
|
14323
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ACOS/"
|
|
14329
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ACOS/",
|
|
14330
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ACOS.md"
|
|
14324
14331
|
},
|
|
14325
14332
|
{
|
|
14326
14333
|
"id": "yaya:functions/ANY",
|
|
@@ -14328,7 +14335,8 @@
|
|
|
14328
14335
|
"source": "yaya_docs",
|
|
14329
14336
|
"category": "yaya_function",
|
|
14330
14337
|
"content": "ANY\n\nCategory: 文字列操作\n\nSignature\n\nANY(var)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| var | ランダムに選択する対象。文字列・汎用配列・整数・実数のいずれか |\n\nReturns\n\n成功時:ランダムに選ばれた要素のひとつ\n失敗時:VOID\n\n文字列を単純配列として扱う場合はその中からランダムに1要素を返す。汎用配列の場合もランダムに1要素を返す。数値型(整数・実数)の場合はその値をそのまま返す。選ばれた要素のインデックスは LSO 関数で取得できる。\n\nExample\n\n_array = ('さくら','まゆら','ねここ')\nANY(_array) // 「まゆら」などランダムな要素を返す\n\n_str = 'さくら,まゆら,ねここ'\nANY(_str) // 「ねここ」などランダムな要素を返す\n\nLSO // 2(「ねここ」のインデックス)を返す\n\nCompatibility\n\n- YAYA: 初期リリースから利用可能\n- AYA: バージョン 5.8 以降\n\nSee Also\n\n- LSO",
|
|
14331
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ANY/"
|
|
14338
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ANY/",
|
|
14339
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ANY.md"
|
|
14332
14340
|
},
|
|
14333
14341
|
{
|
|
14334
14342
|
"id": "yaya:functions/APPEND_RUNTIME_DIC",
|
|
@@ -14336,7 +14344,8 @@
|
|
|
14336
14344
|
"source": "yaya_docs",
|
|
14337
14345
|
"category": "yaya_function",
|
|
14338
14346
|
"content": "APPEND_RUNTIME_DIC\n\nCategory: メタ操作・特殊関数\n\nSignature\n\nAPPEND_RUNTIME_DIC(dic_content)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| dic_content | 辞書ファイルの内容と同等の文字列。複数行や関数定義を含むことができる |\n\nReturns\n\n成功時:0\n失敗時:-1\n\nCompatibility\n\n- YAYA: Tc562-1 以降\n\nSee Also\n\n- EVAL\n- ISEVALUABLE",
|
|
14339
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/APPEND_RUNTIME_DIC/"
|
|
14347
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/APPEND_RUNTIME_DIC/",
|
|
14348
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/APPEND_RUNTIME_DIC.md"
|
|
14340
14349
|
},
|
|
14341
14350
|
{
|
|
14342
14351
|
"id": "yaya:functions/ARRAYDEDUP",
|
|
@@ -14344,7 +14353,8 @@
|
|
|
14344
14353
|
"source": "yaya_docs",
|
|
14345
14354
|
"category": "yaya_function",
|
|
14346
14355
|
"content": "ARRAYDEDUP\n\nCategory: 配列操作\n\nSignature\n\nARRAYDEDUP(_array_)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| array | 汎用配列 |\n\nReturns\n\n重複要素を排除した汎用配列を返す。\n\nDescription\n\n同じとみなした要素は最初のものが残る。結果の並びは元の順ではなく、ハッシュのキーと同じ順になる。\n\nTc600-3以降では、要素の一致と並び順はハッシュのキーと同じ規則になった。\n\n- 整数・実数・正規形の整数を表す文字列は、値が同じなら同じ要素とみなす(1、1.0、\"1\" は同じ)\n- 数値 < 文字列 の順に並ぶ\n- 配列やハッシュの要素は内容で比べる。同じ内容のハッシュは1つにまとまり、内容の違うハッシュは残る\n- VOID 同士は同じ要素とみなす\n\n型のそろった配列(整数だけ、実数だけ、文字列だけ)の結果は、それ以前と変わらない。\n\nExample\n\nARRAYDEDUP((3, 1, 2, 1)) // 1,2,3\nARRAYDEDUP((10, \"9\", 9, \"a\", 1.0, 1, \"1\")) // 1.000000,9,10,a (Tc600-3以降)\n\nCompatibility\n\n- YAYA: Tc568-1 以降\n- Tc600-3: 型の混ざった配列で結果が並び方しだいになっていたのを修正し、ハッシュのキーと同じ規則で比べるようにした\n\nSee Also\n\n- ARRAYSIZE",
|
|
14347
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ARRAYDEDUP/"
|
|
14356
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ARRAYDEDUP/",
|
|
14357
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ARRAYDEDUP.md"
|
|
14348
14358
|
},
|
|
14349
14359
|
{
|
|
14350
14360
|
"id": "yaya:functions/ARRAYSIZE",
|
|
@@ -14352,7 +14362,8 @@
|
|
|
14352
14362
|
"source": "yaya_docs",
|
|
14353
14363
|
"category": "yaya_function",
|
|
14354
14364
|
"content": "ARRAYSIZE\n\nCategory: 配列操作\n\nSignature\n\nARRAYSIZE(_var_)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| var | 単純配列(文字列)または汎用配列 |\n\nReturns\n\n成功時:要素数\n失敗時:0\n\nExample\n\n_array = ('さくら','まゆら','ねここ') // 汎用配列を代入\nARRAYSIZE( _array ) // 要素数「3」を出力\n\nCompatibility\n\n- YAYA: 初期リリースから利用可能\n- AYA: バージョン 5.8 以降\n\nSee Also\n\n- ARRAYDEDUP\n- ASEARCH",
|
|
14355
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ARRAYSIZE/"
|
|
14365
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ARRAYSIZE/",
|
|
14366
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ARRAYSIZE.md"
|
|
14356
14367
|
},
|
|
14357
14368
|
{
|
|
14358
14369
|
"id": "yaya:functions/ASEARCH",
|
|
@@ -14360,7 +14371,8 @@
|
|
|
14360
14371
|
"source": "yaya_docs",
|
|
14361
14372
|
"category": "yaya_function",
|
|
14362
14373
|
"content": "ASEARCH\n\nCategory: 配列操作\n\nSignature\n\nASEARCH(key, array)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| key | 検索するキー値(文字列) |\n| array | 汎用配列(単純配列は使用不可) |\n\nReturns\n\n成功時:最初に見つかった要素の順序番号(0始まり)\n見つからない場合:-1\n\nDescription\n\nkey と各要素を == と同じ規則で比べ、最初に一致した要素の位置を返す。\n\nTc600-3以降では、次の点が変わった。\n\n- 要素がハッシュのときは内容で比べる(key にハッシュを渡すと、同じ内容のハッシュの要素が見つかる)\n- key と要素が両方とも VOID のときも一致とみなす(それまでは -1 だった)\n\nExample\n\n_array = ('さくら','まゆら','ねここ')\nASEARCH('まゆら', _array) // 1 を出力\n\nCompatibility\n\n- YAYA: 初期リリースから利用可能\n- AYA: バージョン 5.8 以降\n- Tc600-3: ハッシュの要素を内容で比べるようにした。VOID 同士を一致とみなすようにした\n\nSee Also\n\n- ASEARCHEX\n- RE_ASEARCH",
|
|
14363
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ASEARCH/"
|
|
14374
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ASEARCH/",
|
|
14375
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ASEARCH.md"
|
|
14364
14376
|
},
|
|
14365
14377
|
{
|
|
14366
14378
|
"id": "yaya:functions/ASEARCHEX",
|
|
@@ -14368,7 +14380,8 @@
|
|
|
14368
14380
|
"source": "yaya_docs",
|
|
14369
14381
|
"category": "yaya_function",
|
|
14370
14382
|
"content": "ASEARCHEX\n\nCategory: 配列操作\n\nSignature\n\nASEARCHEX(key, array)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| key | 検索対象の文字列値 |\n| array | 汎用配列(単純配列は使用不可) |\n\nReturns\n\n一致するすべての要素の順序番号(0始まり)を格納した汎用配列を返す。一致する要素がない場合は空の配列を返す。\n\nExample\n\n_tea = (\"鉄観音\", \"烏龍\", \"やぶきた\", \"烏龍\", \"ジャスミン\")\nipod = ASEARCHEX(\"烏龍\", _tea)\n// ipod には (1,3) という汎用配列が格納される\n\nCompatibility\n\n- YAYA: 初期リリースから利用可能\n- AYA: バージョン 5.8 以降\n\nSee Also\n\n- ASEARCH\n- RE_ASEARCHEX",
|
|
14371
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ASEARCHEX/"
|
|
14383
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ASEARCHEX/",
|
|
14384
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ASEARCHEX.md"
|
|
14372
14385
|
},
|
|
14373
14386
|
{
|
|
14374
14387
|
"id": "yaya:functions/ASIN",
|
|
@@ -14376,7 +14389,8 @@
|
|
|
14376
14389
|
"source": "yaya_docs",
|
|
14377
14390
|
"category": "yaya_function",
|
|
14378
14391
|
"content": "ASIN\n\nCategory: 数学関数\n\nSignature\n\nASIN(val)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| val | アークサインを計算する実数値。-1.0 ≤ val ≤ 1.0 の範囲 |\n\nReturns\n\n成功時:アークサインの値をラジアンで返す(実数)\n失敗時:0.0\n\nExample\n\n_d = ASIN(0.5) // 0.523599 (ラジアン) を返す\n_d * 180 / 3.14159265358 // 度に変換:30.000000\n\nCompatibility\n\n- YAYA: 初期リリースから利用可能\n- AYA: バージョン 5.8 以降\n\nSee Also\n\n- ACOS\n- ATAN\n- SIN\n- COS\n- TAN\n- SINH\n- COSH\n- TANH",
|
|
14379
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ASIN/"
|
|
14392
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ASIN/",
|
|
14393
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ASIN.md"
|
|
14380
14394
|
},
|
|
14381
14395
|
{
|
|
14382
14396
|
"id": "yaya:functions/ASORT",
|
|
@@ -14384,7 +14398,8 @@
|
|
|
14384
14398
|
"source": "yaya_docs",
|
|
14385
14399
|
"category": "yaya_function",
|
|
14386
14400
|
"content": "ASORT\n\nCategory: 配列操作\n\nSignature\n\nASORT(option, array)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| option | ソート動作をカンマ区切りで指定する文字列。比較型(string(デフォルト)・int・double・length)、順序(ascending(デフォルト)・descending)、大文字小文字の区別(case)、戻り値形式(index)を組み合わせて指定 |\n| array | ソート対象の汎用配列(単純配列は使用不可) |\n\nReturns\n\nソートされた汎用配列を返す。エラー時または入力配列が空の場合は空の配列を返す。index オプションを指定した場合は、ソート後の各要素の元の配列における位置を示す配列を返す。\n\nDescription\n\n比較型ごとに、各要素を次の値に変換して比べる。要素の型は見ないので、整数と文字列が混ざった配列も、指定した比較型で並べる。\n\n| 比較型 | 比べる値 |\n|---|---|\n| string | 要素を文字列にしたもの。辞書順に並べる。大文字小文字を区別しない(case を付けると区別する) |\n| length | 要素を文字列にしたものの長さ |\n| int | 要素を整数にしたもの |\n| double | 要素を実数にしたもの |\n\nstring で大文字小文字を区別しないときは、\"A\" と \"a\" のように大文字小文字だけが違う要素は同じ値とみなす。\n\n_a = ('b', 'A', 'c', 'B', 'a')\nASORT('string', _a) // A,a,b,B,c (A と a、b と B の順は決まらない)\nASORT('string,case', _a) // A,B,a,b,c\n\n同じ値とみなされた要素どうしの順番は保証されない(元の配列の順を保つとは限らない)。\n\n要素が配列やハッシュのとき(Tc600-3以降)\n\n要素が配列やハッシュ(値の入れ子)でも並べられる。比べる値は次のようになる。\n\n- string / length: TOSTR と同じ文字列(配列は 1,2、ハッシュは k=a の形)\n- int / double: 常に 0\n\n返り値の要素は、配列やハッシュのまま(入れ子のまま)返る。\n\n_v = PARSEJSON('[[3,1],[1,2],\"b\",[1,10],5]')\nASORT('string', _v) // (1,10),(1,2),(3,1),5,\"b\"\n\n文字列にして比べるので、(1,10) は (1,2) より前になる(\"1,10\" と \"1,2\" の辞書順)。また int / double では配列やハッシュはすべて同じ値とみなされ、その順番は保証されない。ハッシュの特定のキーの値で並べたいときは、キーの値の配列を作って index オプションで並べ、その順に元の配列の要素を取り出す。\n\n_list = PARSEJSON('[{\"n\":3,\"s\":\"c\"},{\"n\":1,\"s\":\"a\"},{\"n\":2,\"s\":\"b\"}]')\n_keys = IARRAY()\nforeach _list ; _e { _keys ,= _e[\"n\"] }\n_sorted = IARRAY()\nforeach ASORT('int,index', _keys) ; _i { _sorted ,= _list[_i] }\n// _sorted の \"n\" は 1,2,3 の順\n\nExample\n\n_array = ('BBBB','CCC','AA')\nASORT('string,ascending', _array) // \"AA,BBBB,CCC\" を出力\nASORT('string,descending,length', _array) // \"BBBB,CCC,AA\" を出力\n\nCompatibility\n\n- YAYA: Tc540-1 以降\n- index オプション: Tc545-1 以降\n\nSee Also\n\n- ASEARCH\n- ASEARCHEX",
|
|
14387
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ASORT/"
|
|
14401
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ASORT/",
|
|
14402
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ASORT.md"
|
|
14388
14403
|
},
|
|
14389
14404
|
{
|
|
14390
14405
|
"id": "yaya:functions/ATAN",
|
|
@@ -14392,7 +14407,8 @@
|
|
|
14392
14407
|
"source": "yaya_docs",
|
|
14393
14408
|
"category": "yaya_function",
|
|
14394
14409
|
"content": "ATAN\n\nCategory: 数学関数\n\nSignature\n\nATAN(val)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| val | アークタンジェントを求める実数値 |\n\nReturns\n\n成功時:アークタンジェントの値をラジアンで返す(実数)\n失敗時:0.0\n\nExample\n\n_d = ATAN(1.0) // 約 0.785398 ラジアンを返す\n_d * 180 / 3.14159265358 // 約 45 度に変換\n\nCompatibility\n\n- YAYA: 初期リリースから利用可能\n- AYA: バージョン 5.8 以降\n\nSee Also\n\n- ASIN\n- ACOS\n- SIN\n- COS\n- TAN\n- SINH\n- COSH\n- TANH",
|
|
14395
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ATAN/"
|
|
14410
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ATAN/",
|
|
14411
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ATAN.md"
|
|
14396
14412
|
},
|
|
14397
14413
|
{
|
|
14398
14414
|
"id": "yaya:functions/BINSTRTOI",
|
|
@@ -14400,7 +14416,8 @@
|
|
|
14400
14416
|
"source": "yaya_docs",
|
|
14401
14417
|
"category": "yaya_function",
|
|
14402
14418
|
"content": "BINSTRTOI\n\nCategory: 文字列操作\n\nSignature\n\nBINSTRTOI(string)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| string | 変換する2進数の文字列 |\n\nReturns\n\n成功時:変換後の数値\n失敗時:0\n\nExample\n\n_bin = '11110'\n_i = BINSTRTOI(_bin)\n_i // 30 を出力(2進数 11110 = 10進数 30)\n\nCompatibility\n\n- YAYA: 初期リリースから利用可能\n- AYA: バージョン 5.8 以降\n\nSee Also\n\n- HEXSTRTOI\n- TOBINSTR",
|
|
14403
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/BINSTRTOI/"
|
|
14419
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/BINSTRTOI/",
|
|
14420
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/BINSTRTOI.md"
|
|
14404
14421
|
},
|
|
14405
14422
|
{
|
|
14406
14423
|
"id": "yaya:functions/BITWISE_AND",
|
|
@@ -14408,7 +14425,8 @@
|
|
|
14408
14425
|
"source": "yaya_docs",
|
|
14409
14426
|
"category": "yaya_function",
|
|
14410
14427
|
"content": "BITWISE_AND\n\nCategory: ビット演算\n\nSignature\n\nBITWISE_AND( var1 , var2 )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| var1 | 数値 |\n| var2 | 数値 |\n\nReturns\n\n成功時:ビットAND演算の数値結果\n失敗時:VOID\n\n演算前に符号付き32ビット整数に変換される。\n\nExample\n\n_val1 = 30 // 2進数: 11110\n_val2 = 13 // 2進数: 01101\nBITWISE_AND(_val1, _val2) // 12 (2進数: 01100) を出力\n\nCompatibility\n\n- YAYA: TC513-901 以降\n\nSee Also\n\n- BITWISE_OR\n- BITWISE_XOR\n- BITWISE_NOT\n- BITWISE_SHIFT",
|
|
14411
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/BITWISE_AND/"
|
|
14428
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/BITWISE_AND/",
|
|
14429
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/BITWISE_AND.md"
|
|
14412
14430
|
},
|
|
14413
14431
|
{
|
|
14414
14432
|
"id": "yaya:functions/BITWISE_NOT",
|
|
@@ -14416,7 +14434,8 @@
|
|
|
14416
14434
|
"source": "yaya_docs",
|
|
14417
14435
|
"category": "yaya_function",
|
|
14418
14436
|
"content": "BITWISE_NOT\n\nCategory: ビット演算\n\nSignature\n\nBITWISE_NOT( var )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| var | 演算対象の数値 |\n\nReturns\n\n成功時:ビットNOT演算後の数値結果\n失敗時:VOID\n\n演算前に符号付き32ビット整数に変換される。\n\nExample\n\n_val = 28 // 2進数: 00011100\nBITWISE_NOT(_val) // -29 (2進数: 11100011) を返す\n\nCompatibility\n\n- YAYA: TC513-901 以降\n\nSee Also\n\n- BITWISE_AND\n- BITWISE_OR\n- BITWISE_XOR\n- BITWISE_SHIFT",
|
|
14419
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/BITWISE_NOT/"
|
|
14437
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/BITWISE_NOT/",
|
|
14438
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/BITWISE_NOT.md"
|
|
14420
14439
|
},
|
|
14421
14440
|
{
|
|
14422
14441
|
"id": "yaya:functions/BITWISE_OR",
|
|
@@ -14424,7 +14443,8 @@
|
|
|
14424
14443
|
"source": "yaya_docs",
|
|
14425
14444
|
"category": "yaya_function",
|
|
14426
14445
|
"content": "BITWISE_OR\n\nCategory: ビット演算\n\nSignature\n\nBITWISE_OR( var1 , var2 )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| var1 | 数値 |\n| var2 | 数値 |\n\nReturns\n\n成功時:ビットOR演算の数値結果\n失敗時:VOID\n\n演算前に符号付き32ビット整数に変換される。\n\nExample\n\n_val1 = 28 // 2進数: 11100\n_val2 = 9 // 2進数: 01001\nBITWISE_OR( _val1, _val2 ) // 29 (2進数: 11101) を出力\n\nCompatibility\n\n- YAYA: TC513-901 以降\n\nSee Also\n\n- BITWISE_AND\n- BITWISE_XOR\n- BITWISE_NOT\n- BITWISE_SHIFT",
|
|
14427
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/BITWISE_OR/"
|
|
14446
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/BITWISE_OR/",
|
|
14447
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/BITWISE_OR.md"
|
|
14428
14448
|
},
|
|
14429
14449
|
{
|
|
14430
14450
|
"id": "yaya:functions/BITWISE_SHIFT",
|
|
@@ -14432,7 +14452,8 @@
|
|
|
14432
14452
|
"source": "yaya_docs",
|
|
14433
14453
|
"category": "yaya_function",
|
|
14434
14454
|
"content": "BITWISE_SHIFT\n\nCategory: ビット演算\n\nSignature\n\nBITWISE_SHIFT(var, shift)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| var | シフト対象の数値(符号付き32ビット整数に変換される) |\n| shift | シフトするビット数。正の値の場合は左シフト、負の値の場合は右シフト |\n\nReturns\n\n成功時:ビットシフト演算の数値結果\n失敗時:VOID\n\n右シフト時の動作は実装依存。Windows版では算術シフトが使用される。\n\nExample\n\n_var = 0x7fffffff\n_result = BITWISE_SHIFT(_var, -2)\n// _result は 0x1fffffff になる\n\nCompatibility\n\n- YAYA: TC513-901 以降\n\nSee Also\n\n- BITWISE_AND\n- BITWISE_OR\n- BITWISE_XOR\n- BITWISE_NOT",
|
|
14435
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/BITWISE_SHIFT/"
|
|
14455
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/BITWISE_SHIFT/",
|
|
14456
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/BITWISE_SHIFT.md"
|
|
14436
14457
|
},
|
|
14437
14458
|
{
|
|
14438
14459
|
"id": "yaya:functions/BITWISE_XOR",
|
|
@@ -14440,7 +14461,8 @@
|
|
|
14440
14461
|
"source": "yaya_docs",
|
|
14441
14462
|
"category": "yaya_function",
|
|
14442
14463
|
"content": "BITWISE_XOR\n\nCategory: ビット演算\n\nSignature\n\nBITWISE_XOR( var1 , var2 )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| var1 | ビット演算を行う値(符号付き32ビット整数に変換される) |\n| var2 | ビット演算を行う値(符号付き32ビット整数に変換される) |\n\nReturns\n\n成功時:ビットXOR演算の結果(数値)\n失敗時:VOID\n\nExample\n\n_val1 = 28 // binary: 11100\n_val2 = 9 // binary: 01001\nBITWISE_XOR( _val1, _val2 ) // returns 21 (binary: 10101)\n\nCompatibility\n\n- YAYA: TC513-901以降\n\nSee Also\n\n- BITWISE_AND\n- BITWISE_OR\n- BITWISE_NOT\n- BITWISE_SHIFT",
|
|
14443
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/BITWISE_XOR/"
|
|
14464
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/BITWISE_XOR/",
|
|
14465
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/BITWISE_XOR.md"
|
|
14444
14466
|
},
|
|
14445
14467
|
{
|
|
14446
14468
|
"id": "yaya:functions/CEIL",
|
|
@@ -14448,7 +14470,8 @@
|
|
|
14448
14470
|
"source": "yaya_docs",
|
|
14449
14471
|
"category": "yaya_function",
|
|
14450
14472
|
"content": "CEIL\n\nCategory: 数学関数\n\nSignature\n\nCEIL(val)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| val | 切り上げを行う実数 |\n\nReturns\n\n成功時:切り上げ後の実数\n失敗時:0.0\n\nC言語のceil()関数と同様に「引数以上の最小の整数」を返す。負数の扱いに注意が必要。\n\nExample\n\nCEIL(1.75) // 2.000000 を返す\nCEIL(-1.75) // -1.000000 を返す(-2ではなく切り上げのため)\nCEIL(7/3) // 2.000000 を返す(整数除算のため7/3=2)\nCEIL(7.0/3) // 3.000000 を返す(実数除算)\n\nCompatibility\n\n- YAYA: 初版から利用可能\n- AYA: バージョン5.8以降\n\nSee Also\n\n- FLOOR\n- ROUND",
|
|
14451
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CEIL/"
|
|
14473
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CEIL/",
|
|
14474
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CEIL.md"
|
|
14452
14475
|
},
|
|
14453
14476
|
{
|
|
14454
14477
|
"id": "yaya:functions/CHARSETIDTOTEXT",
|
|
@@ -14456,7 +14479,8 @@
|
|
|
14456
14479
|
"source": "yaya_docs",
|
|
14457
14480
|
"category": "yaya_function",
|
|
14458
14481
|
"content": "CHARSETIDTOTEXT\n\nCategory: メタ操作・特殊関数\n\nSignature\n\nCHARSETIDTOTEXT(id)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| id | 文字コードIDを表す整数 |\n\nReturns\n\n成功時:文字コードを表す文字列\n失敗時:\"default\" という文字列\n\nExample\n\nCHARSETIDTOTEXT(0) // \"Shift_JIS\" を返す\nCHARSETIDTOTEXT(1) // \"UTF-8\" を返す\n\nCompatibility\n\n- YAYA: 初版から利用可能\n\nSee Also\n\n- CHARSETTEXTTOID",
|
|
14459
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CHARSETIDTOTEXT/"
|
|
14482
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CHARSETIDTOTEXT/",
|
|
14483
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CHARSETIDTOTEXT.md"
|
|
14460
14484
|
},
|
|
14461
14485
|
{
|
|
14462
14486
|
"id": "yaya:functions/CHARSETLIB",
|
|
@@ -14464,7 +14488,8 @@
|
|
|
14464
14488
|
"source": "yaya_docs",
|
|
14465
14489
|
"category": "yaya_function",
|
|
14466
14490
|
"content": "CHARSETLIB\n\nCategory: 外部ライブラリ\n\nSignature\n\nCHARSETLIB(code)\nCHARSETLIB()\nCHARSETLIB\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| code | (省略可)文字コードIDまたは文字コードを表すテキストで文字エンコーディングを指定する |\n\nReturns\n\n引数なしの場合:現在のDLL文字コード設定を文字列で返す\n引数ありの場合:VOID(何も返さない)\n\n外部ライブラリとのやり取りに使用する文字コードを設定する。LOADLIBの前に呼び出す必要がある。デフォルトのエンコーディングは設定ファイルの charset.extension エントリ(未指定の場合は charset)から取得される。\n\nCHARSETLIBはすべての外部ライブラリにグローバルに適用されるが、CHARSETLIBEXはライブラリごとの設定が可能。\n\nCompatibility\n\n- YAYA: 初版から利用可能。引数省略はTc531以降でサポート\n- AYA: バージョン5.8以降\n\nSee Also\n\n- CHARSETLIBEX\n- CHARSETIDTOTEXT",
|
|
14467
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CHARSETLIB/"
|
|
14491
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CHARSETLIB/",
|
|
14492
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CHARSETLIB.md"
|
|
14468
14493
|
},
|
|
14469
14494
|
{
|
|
14470
14495
|
"id": "yaya:functions/CHARSETLIBEX",
|
|
@@ -14472,7 +14497,8 @@
|
|
|
14472
14497
|
"source": "yaya_docs",
|
|
14473
14498
|
"category": "yaya_function",
|
|
14474
14499
|
"content": "CHARSETLIBEX\n\nCategory: 外部ライブラリ\n\nSignature\n\nCHARSETLIBEX(path, code)\nCHARSETLIBEX(path)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | DLLファイルの場所。YAYAのディレクトリからの相対パス、または絶対パスで指定する |\n| code | (省略可)文字コードIDまたは文字コードを表すテキスト識別子 |\n\nReturns\n\ncodeを省略した場合:指定したDLLの現在の文字コード設定を文字列で返す\ncodeを指定した場合:VOID(何も返さない)\n\n外部ライブラリとのやり取りに使用する文字コードを個別に指定する。Tc530-2以降、LOADLIBの前に呼び出すことで有効になり、「初期化中」に設定可能。デフォルトのエンコーディングは設定ファイルの charset.extension エントリ(未指定の場合は charset)から取得される。\n\nCompatibility\n\n- YAYA: 初版から利用可能。引数省略機能はTc531以降\n\nSee Also\n\n- CHARSETLIB\n- CHARSETTEXTTOID",
|
|
14475
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CHARSETLIBEX/"
|
|
14500
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CHARSETLIBEX/",
|
|
14501
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CHARSETLIBEX.md"
|
|
14476
14502
|
},
|
|
14477
14503
|
{
|
|
14478
14504
|
"id": "yaya:functions/CHARSETTEXTTOID",
|
|
@@ -14480,7 +14506,8 @@
|
|
|
14480
14506
|
"source": "yaya_docs",
|
|
14481
14507
|
"category": "yaya_function",
|
|
14482
14508
|
"content": "CHARSETTEXTTOID\n\nCategory: メタ操作・特殊関数\n\nSignature\n\nCHARSETTEXTTOID(string)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| string | 文字コードを表す文字列 |\n\nReturns\n\n成功時:文字コードIDを表す整数\n失敗時:127(OSデフォルトエンコーディングを表す)\n\n文字コードを表す文字列を文字コードIDに変換する。\n\nExample\n\nCHARSETTEXTTOID('Shift_JIS') // 0 を返す\nCHARSETTEXTTOID('UTF-8') // 1 を返す\nCHARSETTEXTTOID('UTF8') // 1 を返す\n\nCompatibility\n\n- YAYA: 初版から利用可能\n\nSee Also\n\n- CHARSETIDTOTEXT",
|
|
14483
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CHARSETTEXTTOID/"
|
|
14509
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CHARSETTEXTTOID/",
|
|
14510
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CHARSETTEXTTOID.md"
|
|
14484
14511
|
},
|
|
14485
14512
|
{
|
|
14486
14513
|
"id": "yaya:functions/CHR",
|
|
@@ -14488,7 +14515,8 @@
|
|
|
14488
14515
|
"source": "yaya_docs",
|
|
14489
14516
|
"category": "yaya_function",
|
|
14490
14517
|
"content": "CHR\n\nCategory: 文字列操作\n\nSignature\n\nCHR( val [, val ... ] )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| val | UCS-2の文字コード値(数値)。複数指定可能 |\n\nReturns\n\n成功時:変換された文字または文字列(引数の数に等しい長さの文字列)\n失敗時:VOID\n\nASCII範囲のコードはASCIIエンコーディングとの互換性を持つ。\n\nExample\n\nCHR(65) // \"A\" を返す\nCHR(20282) // \"伺\" を返す\n\nCompatibility\n\n- YAYA: 初版から利用可能\n- AYA: バージョン5.8以降\n\nSee Also\n\n- CHRCODE",
|
|
14491
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CHR/"
|
|
14518
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CHR/",
|
|
14519
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CHR.md"
|
|
14492
14520
|
},
|
|
14493
14521
|
{
|
|
14494
14522
|
"id": "yaya:functions/CHRCODE",
|
|
@@ -14496,7 +14524,8 @@
|
|
|
14496
14524
|
"source": "yaya_docs",
|
|
14497
14525
|
"category": "yaya_function",
|
|
14498
14526
|
"content": "CHRCODE\n\nCategory: 文字列操作\n\nSignature\n\nCHRCODE( string [ , pos ] )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| string | 文字コードを取得したい文字を含むテキスト |\n| pos | (省略可)文字コードを取得する文字位置(0始まり)。省略時は0 |\n\nReturns\n\n成功時:文字コードを表す数値\n失敗時:0\n\nUCS-2の文字コードを返す。ASCII文字(半角英数字)についてはASCIIコードと互換性がある。\n\nExample\n\nCHRCODE('A') // 65 を返す\nCHRCODE('ABC', 2) // 67(文字'C')を返す\nCHRCODE('伺') // 20282 を返す\n\nCompatibility\n\n- YAYA: 初版から利用可能\n- AYA: バージョン5.8以降\n\nSee Also\n\n- CHR",
|
|
14499
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CHRCODE/"
|
|
14527
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CHRCODE/",
|
|
14528
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CHRCODE.md"
|
|
14500
14529
|
},
|
|
14501
14530
|
{
|
|
14502
14531
|
"id": "yaya:functions/CLEARERRORLOG",
|
|
@@ -14504,7 +14533,8 @@
|
|
|
14504
14533
|
"source": "yaya_docs",
|
|
14505
14534
|
"category": "yaya_function",
|
|
14506
14535
|
"content": "CLEARERRORLOG\n\nCategory: デバッグ\n\nSignature\n\nCLEARERRORLOG()\n\nParameters\n\nなし\n\nReturns\n\n空の配列\n\nYAYAの内部処理で蓄積されたエラーおよび警告ログを消去する。実行後、GETERRORLOGが返すエラー配列は空になる。\n\nCompatibility\n\n- YAYA: バージョンTc567-2以降\n\nSee Also\n\n- GETERRORLOG",
|
|
14507
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CLEARERRORLOG/"
|
|
14536
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CLEARERRORLOG/",
|
|
14537
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CLEARERRORLOG.md"
|
|
14508
14538
|
},
|
|
14509
14539
|
{
|
|
14510
14540
|
"id": "yaya:functions/COS",
|
|
@@ -14512,7 +14542,8 @@
|
|
|
14512
14542
|
"source": "yaya_docs",
|
|
14513
14543
|
"category": "yaya_function",
|
|
14514
14544
|
"content": "COS\n\nCategory: 数学関数\n\nSignature\n\nCOS(rad)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| rad | ラジアン単位の角度 |\n\nReturns\n\n成功時:コサイン値を表す実数\n失敗時:0.0\n\nExample\n\n_rad = 60 * 3.14159265358 / 180 // 60° をラジアンに変換\nCOS(_rad) // 0.500000 を返す\n\nCompatibility\n\n- YAYA: 初版から利用可能\n- AYA: バージョン5.8以降\n\nSee Also\n\n- SIN\n- TAN\n- ASIN\n- ACOS\n- ATAN\n- SINH\n- COSH\n- TANH",
|
|
14515
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/COS/"
|
|
14545
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/COS/",
|
|
14546
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/COS.md"
|
|
14516
14547
|
},
|
|
14517
14548
|
{
|
|
14518
14549
|
"id": "yaya:functions/COSH",
|
|
@@ -14520,7 +14551,8 @@
|
|
|
14520
14551
|
"source": "yaya_docs",
|
|
14521
14552
|
"category": "yaya_function",
|
|
14522
14553
|
"content": "COSH\n\nCategory: 数学関数\n\nSignature\n\nCOSH(rad)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| rad | ラジアン単位の角度値 |\n\nReturns\n\n成功時:ハイパボリック・コサイン(双曲線関数)の値を表す実数\n失敗時:0.0\n\nハイパボリック・コサイン(双曲線関数)を返す。引数の単位はラジアン。\n\nExample\n\n_rad = 60 * 3.14159265358 / 180 // 60° をラジアンに変換\nCOSH(_rad) // 約 1.600287 を返す\n\nCompatibility\n\n- YAYA: TC522-1以降\n\nSee Also\n\n- SIN\n- COS\n- TAN\n- ASIN\n- ACOS\n- ATAN\n- SINH\n- TANH",
|
|
14523
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/COSH/"
|
|
14554
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/COSH/",
|
|
14555
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/COSH.md"
|
|
14524
14556
|
},
|
|
14525
14557
|
{
|
|
14526
14558
|
"id": "yaya:functions/CUTSPACE",
|
|
@@ -14528,7 +14560,8 @@
|
|
|
14528
14560
|
"source": "yaya_docs",
|
|
14529
14561
|
"category": "yaya_function",
|
|
14530
14562
|
"content": "CUTSPACE\n\nCategory: 文字列操作\n\nSignature\n\nCUTSPACE(string)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| string | 処理対象の文字列 |\n\nReturns\n\n成功時:文字列の先頭と末尾の空白文字(半角空白、全角空白、タブ)を除去した文字列\n失敗時:VOID\n\n文字列の両端にある空白文字を除去する。内部の空白(単語間)は保持される。\n\nExample\n\nCUTSPACE(' さくら まゆら ') // 「さくら まゆら」を返す\n\nCompatibility\n\n- YAYA: 初版から利用可能\n- AYA: バージョン5.8以降",
|
|
14531
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CUTSPACE/"
|
|
14563
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CUTSPACE/",
|
|
14564
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CUTSPACE.md"
|
|
14532
14565
|
},
|
|
14533
14566
|
{
|
|
14534
14567
|
"id": "yaya:functions/CVAUTO",
|
|
@@ -14536,7 +14569,8 @@
|
|
|
14536
14569
|
"source": "yaya_docs",
|
|
14537
14570
|
"category": "yaya_function",
|
|
14538
14571
|
"content": "CVAUTO\n\nCategory: 型取得/変換\n\nSignature\n\nCVAUTO(_var_)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| var | 変換対象の変数 |\n| strict_convert | (省略可、デフォルト: 0)0以外の場合、変換後の値を文字列に戻したときに元の値と一致する場合のみ変換を行う |\n\nReturns\n\n戻り値なし(変数をその場で変換する)\n\n文字列形式の変数を、整数または実数として解釈できる場合に変換する(Tc571-2)。どちらの型としても解釈できない場合は変更されない。汎用配列変数を渡した場合の動作は未定義。\n\nExample\n\n_val = '3.14159'\nCVAUTO(_val)\nGETTYPE(_val) // 2 を返す(実数型であることを示す)\n\nCompatibility\n\n- YAYA: TC516-901以降\n\nSee Also\n\n- CVREAL\n- CVINT\n- CVSTR\n- CVAUTOEX\n- TOAUTO",
|
|
14539
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CVAUTO/"
|
|
14572
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CVAUTO/",
|
|
14573
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CVAUTO.md"
|
|
14540
14574
|
},
|
|
14541
14575
|
{
|
|
14542
14576
|
"id": "yaya:functions/CVAUTOEX",
|
|
@@ -14544,7 +14578,8 @@
|
|
|
14544
14578
|
"source": "yaya_docs",
|
|
14545
14579
|
"category": "yaya_function",
|
|
14546
14580
|
"content": "CVAUTOEX\n\nCategory: 型取得/変換\n\nSignature\n\nCVAUTOEX(_var_)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| var | 変換対象の変数 |\n\nReturns\n\n戻り値なし(変数をその場で変換する)\n\n文字列形式のテキストを、整数または実数として解釈できる場合に変換し、それ以外は文字列のまま残す。CVAUTOとの違いは、「文字列に変換した結果が元の文字列と一致する場合のみ変換する」点。整数変換を先に試み、次に実数変換を試みる。汎用配列変数を渡した場合の動作は未定義。\n\nExample\n\n// 文字列のまま残る例\n_val = '3.14'\nCVAUTOEX(_val)\nGETTYPE(_val) // \"3\" を出力(文字列型)\n\n// 実数に変換される例\n_val = '3.140000'\nCVAUTOEX(_val)\nGETTYPE(_val) // \"2\" を出力(実数型)\n\nCompatibility\n\n- YAYA: TC571-3以降\n\nSee Also\n\n- CVAUTO\n- CVINT\n- CVREAL\n- CVSTR\n- TOAUTO",
|
|
14547
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CVAUTOEX/"
|
|
14581
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CVAUTOEX/",
|
|
14582
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CVAUTOEX.md"
|
|
14548
14583
|
},
|
|
14549
14584
|
{
|
|
14550
14585
|
"id": "yaya:functions/CVINT",
|
|
@@ -14552,7 +14587,8 @@
|
|
|
14552
14587
|
"source": "yaya_docs",
|
|
14553
14588
|
"category": "yaya_function",
|
|
14554
14589
|
"content": "CVINT\n\nCategory: 型取得/変換\n\nSignature\n\nCVINT(_var_)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| var | 整数型に変換する変数 |\n\nReturns\n\n戻り値なし(変数をその場で変換する)\n\n整数形式の文字列を保持する変数を実際の整数型に変換する。小数部分は切り捨てられる。\n\nExample\n\n_val = '583'\nCVINT(_val)\nGETTYPE(_val) // 1 を返す(整数型)\n\n_val = '583.12'\nCVINT(_val)\nGETTYPE(_val) // 1 を返す(整数型)\n_val // 583 を返す(小数部分は除去される)\n\nCompatibility\n\n- YAYA: 初版から利用可能\n- AYA: バージョン5.8以降\n- Tc574-4 / Tc602-6: 数字の後に a(A)が続く文字列で、a を 10 という桁として読んでしまい '1a' が 20 になっていたのを修正(1 になる)\n\nSee Also\n\n- CVREAL\n- CVSTR\n- CVAUTO",
|
|
14555
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CVINT/"
|
|
14590
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CVINT/",
|
|
14591
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CVINT.md"
|
|
14556
14592
|
},
|
|
14557
14593
|
{
|
|
14558
14594
|
"id": "yaya:functions/CVREAL",
|
|
@@ -14560,7 +14596,8 @@
|
|
|
14560
14596
|
"source": "yaya_docs",
|
|
14561
14597
|
"category": "yaya_function",
|
|
14562
14598
|
"content": "CVREAL\n\nCategory: 型取得/変換\n\nSignature\n\nCVREAL(_var_)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| var | 変換対象の変数。文字列型の実数形式を実数型に変換して格納しなおす。非数値文字列の場合は実数型に変換し \"0.000000\" を格納する。 |\n\nReturns\n\n返り値はありません(VOID)。\n\nExample\n\n_val = '3.1415' // 文字列として代入\nCVREAL(_val)\nGETTYPE(_val) // \"2\" を出力(実数型になった)\n_val // \"3.141500\" を出力(実数型になった)\n\nCompatibility\n\n- YAYA: 初版より対応\n- AYA: 5.8以降\n\nSee Also\n\n- CVINT\n- CVSTR\n- CVAUTO",
|
|
14563
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CVREAL/"
|
|
14599
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CVREAL/",
|
|
14600
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CVREAL.md"
|
|
14564
14601
|
},
|
|
14565
14602
|
{
|
|
14566
14603
|
"id": "yaya:functions/CVSTR",
|
|
@@ -14568,7 +14605,8 @@
|
|
|
14568
14605
|
"source": "yaya_docs",
|
|
14569
14606
|
"category": "yaya_function",
|
|
14570
14607
|
"content": "CVSTR\n\nCategory: 型取得/変換\n\nSignature\n\nCVSTR(_var_)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| var | 変換対象の変数。文字列型に変換して同じ変数に格納しなおす。 |\n\nReturns\n\n返り値はありません(VOID)。\n\nExample\n\n_val = 3.1415 // 実数として格納\nCVSTR(_val)\nGETTYPE(_val) // \"3\" を出力(文字列型になった)\n_val // \"3.141500\" を出力(文字列表現に変換された)\n\nCompatibility\n\n- YAYA: 初版より対応\n- AYA: 5.8以降\n\nSee Also\n\n- CVINT\n- CVREAL\n- CVAUTO",
|
|
14571
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CVSTR/"
|
|
14608
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/CVSTR/",
|
|
14609
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/CVSTR.md"
|
|
14572
14610
|
},
|
|
14573
14611
|
{
|
|
14574
14612
|
"id": "yaya:functions/DICLOAD",
|
|
@@ -14576,7 +14614,8 @@
|
|
|
14576
14614
|
"source": "yaya_docs",
|
|
14577
14615
|
"category": "yaya_function",
|
|
14578
14616
|
"content": "DICLOAD\n\nCategory: メタ操作・特殊関数\n\nSignature\n\nDICLOAD( filename [, code] )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| filename | 読み込む辞書ファイル名 |\n| code | 文字コードID(省略時は基本設定ファイルの設定に従う) |\n\nReturns\n\n- 0: 成功\n- 1: 失敗\n\nDescription\n\n指定した辞書ファイルを動的に読み込みます。\n\n注意事項:\n\n- 辞書に問題がある場合はエラーとなり、何も変更されません。\n- 読み込んだ辞書は次のリクエスト呼び出しまで有効にならず、現在実行中の関数は保護されます。\n- 文字列埋め込み要素のスコープ展開構文は DICLOAD 後には機能しません。読み込んだ辞書の内容をすぐに認識できる EVAL の使用を検討してください。\n- 読み込んだ辞書は DICUNLOAD で解除できますが、制限があります。\n\nCompatibility\n\n- YAYA: Tc556-1以降\n\nSee Also\n\n- DICUNLOAD\n- EVAL",
|
|
14579
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DICLOAD/"
|
|
14617
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DICLOAD/",
|
|
14618
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/DICLOAD.md"
|
|
14580
14619
|
},
|
|
14581
14620
|
{
|
|
14582
14621
|
"id": "yaya:functions/DICUNLOAD",
|
|
@@ -14584,7 +14623,8 @@
|
|
|
14584
14623
|
"source": "yaya_docs",
|
|
14585
14624
|
"category": "yaya_function",
|
|
14586
14625
|
"content": "DICUNLOAD\n\nCategory: メタ操作・特殊関数\n\nSignature\n\nDICUNLOAD( filename )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| filename | アンロードする辞書ファイル名 |\n\nReturns\n\n- 0: 成功\n- 1: 失敗\n\nDescription\n\n指定した辞書ファイルに含まれる関数および globaldefine グループをアンロードします。辞書ファイルに問題がある場合はエラーとなり何も起こりません。他の辞書から使われている関数を含む辞書はアンロードできません。\n\nCompatibility\n\n- YAYA: Tc561-1以降\n\nSee Also\n\n- DICLOAD\n- UNDEFFUNC\n- UNDEFGLOBALDEFINE",
|
|
14587
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DICUNLOAD/"
|
|
14626
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DICUNLOAD/",
|
|
14627
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/DICUNLOAD.md"
|
|
14588
14628
|
},
|
|
14589
14629
|
{
|
|
14590
14630
|
"id": "yaya:functions/DIRECTSSTP",
|
|
@@ -14592,7 +14632,8 @@
|
|
|
14592
14632
|
"source": "yaya_docs",
|
|
14593
14633
|
"category": "yaya_function",
|
|
14594
14634
|
"content": "DIRECTSSTP\n\nCategory: 通信・プロセス間通信\n\nSignature\n\nDIRECTSSTP( hwnd , request [ , charset ] )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| hwnd | DirectSSTPの送信先ウィンドウハンドルを整数値で指定。 |\n| request | 送信するDirectSSTPリクエスト文字列。 |\n| charset | 文字コード。IDまたはテキスト形式で指定。省略時はUTF-8。 |\n\nReturns\n\n- 成功時: DirectSSTPのレスポンス文字列\n- 失敗時: -1\n\nDescription\n\n指定したhwndにDirectSSTPを送信し、結果を返します。\n\n送信先が応答を返さなかった場合(送信先がSSTPの応答を返さないウインドウだった場合など)は、空文字列を返します。\n\nエラー\n| 状況 | 警告 | GETLASTERROR | 返り値 |\n|------|------|------|------|\n| 引数が足りない | W0008 | 8 | -1 |\n| hwnd が整数でない(数字の文字列も不可。TOINT で変換して渡す) | W0009 | 9 | -1 |\n| hwnd が 0、もしくは存在しないウインドウ | W0012 | 12 | -1 |\n| 送信に失敗した、もしくは送信先が5秒以内に応答しなかった | W0013 | 13 | -1 |\n\nCompatibility\n\n- YAYA: Tc572-1以降\n- Tc574-3 / Tc602-4: 送信先からの応答を受け取れず、SSPに送っても約3秒待ったうえで空文字列を返していたのを修正。存在しないウインドウと送信の失敗を警告と -1 で返すようにした",
|
|
14595
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DIRECTSSTP/"
|
|
14635
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DIRECTSSTP/",
|
|
14636
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/DIRECTSSTP.md"
|
|
14596
14637
|
},
|
|
14597
14638
|
{
|
|
14598
14639
|
"id": "yaya:functions/DUMPJSON",
|
|
@@ -14600,7 +14641,8 @@
|
|
|
14600
14641
|
"source": "yaya_docs",
|
|
14601
14642
|
"category": "yaya_function",
|
|
14602
14643
|
"content": "DUMPJSON\nCategory: 型取得/変換\n\nSignature\nDUMPJSON( value [, pretty] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| value | JSON にする値。ハッシュや配列(入れ子を含む)も1つの引数として渡せる |\n| pretty | 1 なら改行とインデントを入れて整形する。省略時は 0(1行にする) |\n\nReturns\n- 成功時: JSON の文字列\n- 引数がないとき: 空文字列\n\nDescription\n値を JSON の文字列にして返す。PARSEJSON の逆の変換になる。\n\n値の対応\n\n| YAYA | JSON |\n|------|------|\n| ハッシュ | オブジェクト。キーは文字列にする(1 は \"1\")。並びはハッシュのキーの順 |\n| 汎用配列 | 配列 |\n| 整数 | 数値。64bit の整数も誤差なく書く |\n| 実数 | 数値。小数点か指数を必ず付ける(1.0、0.1、1e+300) |\n| 文字列 | 文字列 |\n| 空(VOID) | null |\n\n- 整数の 1 / 0 は数値の 1 / 0 になる。true / false にはならない\n- 実数は、読み戻して同じ値になる短い表記にする。NaN と無限大は JSON で表せないので null になる\n- 文字列では \" \\ と制御文字(改行・タブなど)だけをエスケープする。日本語などの非 ASCII の文字や / はそのまま書く\n- 小数点はロケールによらず常に . になる\n\n整形するときは、4つの空白でインデントし、改行は LF にする。空の配列・ハッシュは [] / {} と1つにまとめる。\n\nPARSEJSON で読み戻すと元の値に戻る。ただし、値が整数の実数(1.0)は整数になる。\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数がない | W0008 | 8 |\n\nExample\n_h = IHASH()\n_h[\"name\"] = \"さくら\"\n_h[\"tags\"] = (\"ghost\", \"shell\")\n_h[\"height\"] = 158.5\n\nDUMPJSON(_h)\n// {\"height\":158.5,\"name\":\"さくら\",\"tags\":[\"ghost\",\"shell\"]}\n\nDUMPJSON(_h, 1)\n// {\n// \"height\": 158.5,\n// \"name\": \"さくら\",\n// \"tags\": [\n// \"ghost\",\n// \"shell\"\n// ]\n// }\n\nDUMPJSON((\"a\", 1)) // [\"a\",1]\nDUMPJSON(未定義の変数) // null\n\nCompatibility\n- YAYA: Tc602-1以降\n- Tc602-5: 整数の最小値(-9223372036854775808)が - だけになり、正しい JSON にならなかったのを修正\n\nSee Also\n- FWRITEJSON\n- PARSEJSON\n- DUMPXML",
|
|
14603
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DUMPJSON/"
|
|
14644
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DUMPJSON/",
|
|
14645
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/DUMPJSON.md"
|
|
14604
14646
|
},
|
|
14605
14647
|
{
|
|
14606
14648
|
"id": "yaya:functions/DUMPTOML",
|
|
@@ -14608,7 +14650,8 @@
|
|
|
14608
14650
|
"source": "yaya_docs",
|
|
14609
14651
|
"category": "yaya_function",
|
|
14610
14652
|
"content": "DUMPTOML\nCategory: 型取得/変換\n\nSignature\nDUMPTOML( value [, pretty] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| value | TOML にするハッシュ(入れ子を含む)。TOML の最上位は表なので、ハッシュ以外は渡せない |\n| pretty | 1 なら [表] の見出しを使って整形する、0 なら最上位のキー1つにつき1行にする。省略時は 1 |\n\nReturns\n- 成功時: TOML の文字列\n- 失敗時・引数がないとき: 空文字列\n\nDescription\nハッシュを TOML の文字列にして返す。PARSETOML の逆の変換になる。\n\nDUMPJSON / DUMPXML と違い、pretty の省略時は整形する(1)。\n\n値の対応\n\n| YAYA | TOML |\n|------|------|\n| ハッシュ | 表。キーは英数字・_・- だけならそのまま、それ以外は \"...\" で書く。並びはハッシュのキーの順 |\n| ハッシュだけの汎用配列 | 表の配列(pretty が 1 のとき [[名前]]) |\n| 汎用配列 | 配列 |\n| 整数 | 整数。64bit の整数も誤差なく書く |\n| 実数 | 実数。小数点か指数を必ず付ける(1.0、0.1、1e+300)。NaN は nan、無限大は inf / -inf |\n| 文字列 | 文字列(下記) |\n| 空(VOID) | 書かない(TOML には null が無いため、そのキーごと省く) |\n\n- 整数の 1 / 0 は 1 / 0 になる。true / false にはならない\n- 日時の文字列(FREADTOML で読んだもの)も文字列として \"...\" で書く\n- 配列の要素が空(VOID)のときは表せないのでエラー W0027 になる\n- 小数点はロケールによらず常に . になる\n\n文字列は、ふつうは \"...\" で書き、\" \\ と制御文字をエスケープする。\\ を含み ' と改行を含まないもの(Windows のパスなど)は、読みやすいようエスケープなしの '...' で書く。\n\n整形の形(pretty が 1)\n\n- その表のキーと値 → 下の階層の表([a.b])→ 表の配列([[a.c]])の順に書き、表と表の間には空行を入れる\n- キーと値を持たず、下の階層の表だけを持つ表は見出しを省く([a.b] だけで a も定義される)\n- 改行を含む文字列は複数行の \"\"\"...\"\"\" にする\n- 80 文字を超える配列や、配列・ハッシュを要素に持つ配列は、1要素1行(4つの空白で字下げし、各要素の後にカンマ)にする\n- 改行は LF で、最後の行の後にも改行を付ける\n\npretty が 0 のときは、最上位のキー1つにつき1行とし、下の階層のハッシュはインライン表({ k = v })、表の配列はインライン表の配列にする。\n\nPARSETOML で読み戻すと元の値に戻る(空の値を省いた分を除く)。\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数がない | W0008 | 8 |\n| value がハッシュでない、配列の要素に空(VOID)がある | W0027(原因も出力する) | 27 |\n\nExample\n_n = IHASH()\n_n[\"title\"] = \"設定\"\n_n[\"ghost\"] = IHASH(\"name\", \"さくら\", \"age\", 17)\n_n[\"ghost\"][\"shell\"] = IHASH(\"name\", \"master\")\n\nDUMPTOML(_n)\n// title = \"設定\"\n//\n// [ghost]\n// age = 17\n// name = \"さくら\"\n//\n// [ghost.shell]\n// name = \"master\"\n\nDUMPTOML(_n, 0)\n// ghost = { age = 17, name = \"さくら\", shell = { name = \"master\" } }\n// title = \"設定\"\n\nDUMPTOML((\"a\", 1)) // 空文字列(警告 W0027)\n\nCompatibility\n- YAYA: Tc602-5以降\n\nSee Also\n- FWRITETOML\n- PARSETOML\n- DUMPJSON\n- DUMPYAML",
|
|
14611
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DUMPTOML/"
|
|
14653
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DUMPTOML/",
|
|
14654
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/DUMPTOML.md"
|
|
14612
14655
|
},
|
|
14613
14656
|
{
|
|
14614
14657
|
"id": "yaya:functions/DUMPVAR",
|
|
@@ -14616,7 +14659,8 @@
|
|
|
14616
14659
|
"source": "yaya_docs",
|
|
14617
14660
|
"category": "yaya_function",
|
|
14618
14661
|
"content": "DUMPVAR\n\nCategory: デバッグ\n\nSignature\n\nDUMPVAR()\n\nParameters\n\nNone\n\nReturns\n\n返り値はありません(VOID)。\n\nDescription\n\n変数のダンプをログ出力します。実行するとその時点の全変数の状態をデフォルトのログファイル(通常 ayame.log)に書き出します。スクリプト実行中の特定時点での変数状態を確認するためのデバッグユーティリティです。\n\n出力形式\n\n1行に1変数を、[番号] 変数名 = 値 の形で書き出します。値には型が付きます。\n\n| 型 | 書式 |\n|---|---|\n| 整数・実数・文字列 | (int)5、(double)2.500000、(string)abc |\n| VOID | (nop/void) |\n| 汎用配列 | (array) : に続けて要素を空白で区切る |\n| ハッシュ(Tc600-4以降) | (hash) : に続けて キー=値 を空白で区切る |\n| 入れ子の要素(Tc600-4以降) | 配列は (array)[ ... ]、ハッシュは (hash){ ... } で囲む |\n\n[0] count = (int)3\n[1] list = (array) : (int)1 (string)p\n[2] h = (hash) : (string)a=(int)1 (string)l=(array)[ (int)1 (int)2 ] (string)n=(hash){ (string)x=(double)2.500000 }\n\nCompatibility\n\n- YAYA: Tc529-2以降\n- Tc600-4: ハッシュと入れ子の値を出力するようにした(それまではハッシュが (unknown type)、入れ子の要素が (?UNKNOWN) になっていた)",
|
|
14619
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DUMPVAR/"
|
|
14662
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DUMPVAR/",
|
|
14663
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/DUMPVAR.md"
|
|
14620
14664
|
},
|
|
14621
14665
|
{
|
|
14622
14666
|
"id": "yaya:functions/DUMPXML",
|
|
@@ -14624,7 +14668,8 @@
|
|
|
14624
14668
|
"source": "yaya_docs",
|
|
14625
14669
|
"category": "yaya_function",
|
|
14626
14670
|
"content": "DUMPXML\nCategory: 型取得/変換\n\nSignature\nDUMPXML( element [, pretty] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| element | ルート要素を表すハッシュ(FREADXML が返すのと同じ形) |\n| pretty | 1 なら改行とインデントを入れて整形する。省略時は 0(1行にする) |\n\nReturns\n- 成功時: XML 宣言(<?xml version=\"1.0\" encoding=\"UTF-8\"?>)付きの XML の文字列\n- 失敗時: 空文字列\n\nDescription\n要素のハッシュを XML の文字列にして返す。PARSEXML の逆の変換になる。\n\n要素のハッシュのキーは次のとおり。name 以外は無くてもよい(空でもよい)。\n\n| キー | 値 |\n|------|----|\n| name | タグ名(必須)。文字列 |\n| attr | 属性名 → 属性値 のハッシュ。値は整数・実数・文字列(文字列にして書く) |\n| children | 子要素のハッシュの汎用配列 |\n| text | 要素のテキスト。整数・実数・文字列 |\n\n- テキストは子要素より前に書く。FREADXML で読んだ要素がテキストと子要素の混在したもの(<p>a<b>x</b>c</p>)だと、元の並びには戻らない(<p>ac<b>x</b></p> になる)\n- & < > と、属性値の \" はエスケープする\n- タグ名と属性名は、ASCII の範囲だけ XML の名前の規則(先頭は英字・_・:、2文字目以降は数字・-・. も可)で調べる。日本語などの非 ASCII の文字は使える\n\n整形するときは、4つの空白でインデントし、改行は LF にする。テキストを持つ要素の中でも、2つ目以降の子要素の前には改行とインデントが入る。FREADXML / PARSEXML は要素の間の空白だけのテキストを無視するので、読み戻したときの text には影響しない。\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数がない | W0008 | 8 |\n| 要素がハッシュでない、name が無い・不正、attr がハッシュでない、属性名が不正、属性値や text が配列・ハッシュ、children が配列でない、子要素がハッシュでない | W0027(どこが不正かも出力する) | 27 |\n\nExample\n_item = IHASH(\"name\", \"item\", \"text\", \"りんご\")\n_item[\"attr\"] = IHASH(\"id\", 1)\n_shop = IHASH(\"name\", \"shop\")\n_shop[\"children\"] = IARRAY()\n_shop[\"children\"] ,= _item\n\nDUMPXML(_shop)\n// <?xml version=\"1.0\" encoding=\"UTF-8\"?><shop><item id=\"1\">りんご</item></shop>\n\nDUMPXML(_shop, 1)\n// <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n// <shop>\n// <item id=\"1\">りんご</item>\n// </shop>\n\nDUMPXML(PARSEXML('<a x=\"1\"><b/></a>'))\n// <?xml version=\"1.0\" encoding=\"UTF-8\"?><a x=\"1\"><b/></a>\n\nCompatibility\n- YAYA: Tc602-1以降\n\nSee Also\n- FWRITEXML\n- PARSEXML\n- DUMPJSON",
|
|
14627
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DUMPXML/"
|
|
14671
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DUMPXML/",
|
|
14672
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/DUMPXML.md"
|
|
14628
14673
|
},
|
|
14629
14674
|
{
|
|
14630
14675
|
"id": "yaya:functions/DUMPYAML",
|
|
@@ -14632,7 +14677,8 @@
|
|
|
14632
14677
|
"source": "yaya_docs",
|
|
14633
14678
|
"category": "yaya_function",
|
|
14634
14679
|
"content": "DUMPYAML\nCategory: 型取得/変換\n\nSignature\nDUMPYAML( value [, pretty] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| value | YAML にする値。ハッシュや配列(入れ子を含む)も1つの引数として渡せる |\n| pretty | 1 ならブロック形式(字下げで構造を表す、人が読み書きしやすい形)、0 ならフロー形式の1行にする。省略時は 1 |\n\nReturns\n- 成功時: YAML の文字列\n- 引数がないとき: 空文字列\n\nDescription\n値を YAML の文字列にして返す。PARSEYAML の逆の変換になる。\n\nDUMPJSON / DUMPXML と違い、pretty の省略時は整形する(1)。\n\n値の対応\n\n| YAYA | YAML |\n|------|------|\n| ハッシュ | マッピング。キーは文字列にする(1 は \"1\")。並びはハッシュのキーの順 |\n| 汎用配列 | シーケンス |\n| 整数 | 整数。64bit の整数も誤差なく書く |\n| 実数 | 実数。小数点を必ず付ける(1.0、0.1、1.0e+300)。NaN は .nan、無限大は .inf / -.inf |\n| 文字列 | 文字列(下記) |\n| 空(VOID) | null |\n\n- 整数の 1 / 0 は 1 / 0 になる。true / false にはならない\n- 小数点はロケールによらず常に . になる\n\n文字列は、そのまま書いても読み戻したときに同じ文字列になるものはクォートせずに書き、そうでないものは \"...\" で囲む。次のようなものは \"...\" になる。\n\n- 数値・真偽値・null として読まれるもの(\"123\" \"1.5\" \"true\" \"null\" \"~\")\n- 他の処理系(YAML 1.1)で数値や真偽値として読まれうるもの(\"yes\" \"no\" \"on\" \"off\" \"0x1F\" \"2001-12-14\" \"12:30\")\n- 空文字列、先頭か末尾が空白のもの、記号(- ? : , [ ] { } # & * ! | > ' \" % @ と `)で始まるもの\n- : や # を含むもの、制御文字(タブなど)を含むもの\n\n\"...\" の中では \" \\ と制御文字だけをエスケープする(改行は \\n)。日本語などの非 ASCII の文字はそのまま書く。\n\n整形の形(pretty が 1)\n\n- 2つの空白でインデントし、改行は LF にする。最後の行の後にも改行を付ける\n- シーケンスはキーの下に字下げして - で並べる。シーケンスの要素のハッシュ・配列は - の後に続けて書く\n- 空の配列・ハッシュは [] / {} と書く\n- 改行を含む文字列はブロックスカラー(|)にする。末尾に改行が無いものは |-、2つ以上あるものは |+ になる。ただし、最初の行が空白で始まるもの、空白だけの行があるもの、CR などの制御文字を含むものは \"...\" にする\n\npretty が 0 のときはフロー形式の1行({a: 1, b: [x, y]})にし、最後に改行を付けない。\n\nPARSEYAML で読み戻すと元の値に戻る(どちらの形でも)。\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数がない | W0008 | 8 |\n\nExample\n_h = IHASH()\n_h[\"name\"] = \"さくら\"\n_h[\"tags\"] = (\"ghost\", \"shell\")\n_h[\"height\"] = 158.5\n\nDUMPYAML(_h)\n// height: 158.5\n// name: さくら\n// tags:\n// - ghost\n// - shell\n\nDUMPYAML(_h, 0)\n// {height: 158.5, name: さくら, tags: [ghost, shell]}\n\nDUMPYAML((\"a\", 1)) // \"- a\" + 改行 + \"- 1\" + 改行\nDUMPYAML(\"123\", 0) // \"123\"(数値と区別するためクォートされる)\nDUMPYAML(未定義の変数, 0) // null\n\nCompatibility\n- YAYA: Tc602-5以降\n\nSee Also\n- FWRITEYAML\n- PARSEYAML\n- DUMPJSON\n- DUMPTOML",
|
|
14635
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DUMPYAML/"
|
|
14680
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/DUMPYAML/",
|
|
14681
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/DUMPYAML.md"
|
|
14636
14682
|
},
|
|
14637
14683
|
{
|
|
14638
14684
|
"id": "yaya:functions/ERASE",
|
|
@@ -14640,7 +14686,8 @@
|
|
|
14640
14686
|
"source": "yaya_docs",
|
|
14641
14687
|
"category": "yaya_function",
|
|
14642
14688
|
"content": "ERASE\n\nCategory: 文字列操作\n\nSignature\n\nERASE( src, pos, len )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| src | 削除対象の文字列 |\n| pos | 削除開始位置(0が先頭)。負の値を指定すると末尾からのオフセットとして扱われる。 |\n| len | 削除する文字数。文字列の総文字数を超えた場合は空文字列を返す。 |\n\nReturns\n\n削除後の文字列。削除長が文字列全体を超える場合は空文字列を返す。\n\nExample\n\n_str = 'さくらまゆらねここ'\nERASE( _str, 2, 6 ) // 「さくこ」を返す\n\nCompatibility\n\n- YAYA: 初版より対応\n- AYA: 5.8以降\n- Tc539-3以降: pos に負の値を指定できるようになった\n\nSee Also\n\n- ERASEVAR",
|
|
14643
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ERASE/"
|
|
14689
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ERASE/",
|
|
14690
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ERASE.md"
|
|
14644
14691
|
},
|
|
14645
14692
|
{
|
|
14646
14693
|
"id": "yaya:functions/ERASEVAR",
|
|
@@ -14648,7 +14695,8 @@
|
|
|
14648
14695
|
"source": "yaya_docs",
|
|
14649
14696
|
"category": "yaya_function",
|
|
14650
14697
|
"content": "ERASEVAR\n\nCategory: メタ操作・特殊関数\n\nSignature\n\nERASEVAR( name [, name ...] )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| name | 削除する変数名(文字列で指定)。複数指定可能。 |\n\nReturns\n\n返り値はありません(VOID)。\n\nDescription\n\n変数を消去します。変数名は文字列として指定する必要があります。\n\nERASEVAR(\"i\") // 正しい例:変数 i を削除\nERASEVAR(\"i\",\"j\",\"k\") // 正しい例:複数の変数を一度に削除\nERASEVAR(i) // 誤った例:変数名は文字列リテラルで指定すること\n\nセーブデータに残す必要のないグローバル変数の消去などに利用できます。\n\nCompatibility\n\n- YAYA: 初版より対応\n- TC532-1以降: 複数変数の同時削除に対応\n- AYA: 5.8以降\n\nSee Also\n\n- ERASE\n- EVAL",
|
|
14651
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ERASEVAR/"
|
|
14698
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ERASEVAR/",
|
|
14699
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ERASEVAR.md"
|
|
14652
14700
|
},
|
|
14653
14701
|
{
|
|
14654
14702
|
"id": "yaya:functions/EVAL",
|
|
@@ -14656,7 +14704,8 @@
|
|
|
14656
14704
|
"source": "yaya_docs",
|
|
14657
14705
|
"category": "yaya_function",
|
|
14658
14706
|
"content": "EVAL\n\nCategory: メタ操作・特殊関数\n\nSignature\n\nEVAL( string )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| string | YAYA スクリプトとして実行するテキスト文字列。式ひとつか、文の並び(Tc574-6 / Tc602-9以降) |\n\nReturns\n\n- 成功時: 実行した結果。代入だけで出力がないときは VOID(返り値なし)\n- 解析に失敗したとき: 引数の文字列をそのまま返す\n\nDescription\n\n引数の文字列を YAYA スクリプトとして実行します。式の展開や実行時の関数名合成などに使えます。\n\n式ひとつ\n\n文字列が式ひとつなら、その式を評価した値を返します。代入の式は呼び出し元の変数に代入されます。\n\n_x = EVAL('1 + 2') // 3\nEVAL('_name = \"Emily\"') // 呼び出し元のローカル変数 _name に代入される\n\n文の並び(Tc574-6 / Tc602-9以降)\n\nクォートの外に ;、{、}、改行のどれかがあるか、先頭の語が return if while for foreach switch void parallel のどれかであれば、文の並びとして実行します。関数の本体の { } の中に書くのと同じように書けます。\n\n_r = EVAL('_a = 1; _b = _a + 2; _b') // 3\n\n_r = EVAL('if _hour < 12 { \"おはよう\" } else { \"こんにちは\" }')\n\n_r = EVAL('_s = 0; foreach _list; _v { _s += _v }; _s')\n\nヒアドキュメントなどで改行を含む文字列を渡せば、辞書に書くのと同じ形で書けます。改行は ; と同じく文の区切りになり、// や /* */ のコメント、行末の / による行の結合も使えます。\n\n_code = <<'\n_s = 0\nfor _i = 1; _i <= 10; _i++ {\n\t_s += _i\n}\n_s\n'>>\n_r = EVAL(_code) // 55\n\n返り値は関数の返り値と同じ規則で決まります。出力になる式が複数あればその中から選ばれ、-- で出力を連結でき、return を書けばそこで実行を終えてその値を返します。\n\n文の並びは、呼び出し元の { } の中にブロックをひとつ書いたのと同じように実行されます。\n\n- 呼び出し元のローカル変数(_argv や _argc を含む)は読み書きできる\n- 中で新しく作ったローカル変数は、EVAL が終わると消える\n- break / continue / return は EVAL の中で完結し、呼び出し元のループや関数には影響しない\n\nFoo\n{\n\t_count = 1\n\t_r = EVAL('_count += 10; _tmp = _count * 2; _tmp')\n\t// _r は 22、_count は 11、_tmp はここでは存在しない\n}\n\n関数の定義や #define などのプリプロセッサは書けません。関数を定義したいときは APPEND_RUNTIME_DIC を使います。\n\nクォートの中の ; { } や改行は区切りとして扱いません。EVAL('\"a;b\"') や、改行を含む文字列を \" で囲んで埋め込み要素を展開する使い方は、これまでどおり式ひとつとして評価されます。\n\nExample\n\nEVAL(\"i=1\")\n\nEVAL(\"i=%(CHR(34))test%(CHR(34))\")\n\nEVAL(\"%(CHR(34))%(CHR(37))(foo)%(CHR(34))\")\n\nEVAL('_n = 0; while _n < 3 { _n++ }; _n') // 3\n\nCompatibility\n\n- YAYA: 初版より対応\n- AYA: 5.8以降\n- Tc574-6 / Tc602-9: 文の並び(; や改行で区切った複数の文や、if/for などの制御文)を実行できるようにした(それまでは式ひとつだけで、文の並びを渡すと解析に失敗して引数の文字列がそのまま返っていた)\n\nSee Also\n\n- ISEVALUABLE\n- APPEND_RUNTIME_DIC",
|
|
14659
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/EVAL/"
|
|
14707
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/EVAL/",
|
|
14708
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/EVAL.md"
|
|
14660
14709
|
},
|
|
14661
14710
|
{
|
|
14662
14711
|
"id": "yaya:functions/EXECUTE",
|
|
@@ -14664,7 +14713,8 @@
|
|
|
14664
14713
|
"source": "yaya_docs",
|
|
14665
14714
|
"category": "yaya_function",
|
|
14666
14715
|
"content": "EXECUTE\n\nCategory: メタ操作・特殊関数\n\nSignature\n\nEXECUTE( path [, option] )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | 起動するファイルまたはアプリケーションのパス。相対パスは信頼性が低いため、絶対パスの使用を推奨。 |\n| option | アプリケーションに渡す引数(省略可)。URLをブラウザで開く場合などに使用。 |\n\nReturns\n\n- 成功時: 0以上の整数(OS依存)\n- 失敗時: -1\n\nDescription\n\nコマンド文字列をコマンドプロセッサに引き渡して外部アプリケーションやファイルを起動します。C言語の system() 関数を改良したもので、アプリケーションの終了を待たずに処理を返します。\n\nExample\n\n_val = EXECUTE('IEXPLORE.EXE','http://www.yahoo.co.jp/')\n\nYahoo のホームページを Internet Explorer で開きます。\n\nCompatibility\n\n- YAYA: 初版より対応\n\nSee Also\n\n- EXECUTE_WAIT",
|
|
14667
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/EXECUTE/"
|
|
14716
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/EXECUTE/",
|
|
14717
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/EXECUTE.md"
|
|
14668
14718
|
},
|
|
14669
14719
|
{
|
|
14670
14720
|
"id": "yaya:functions/EXECUTE_WAIT",
|
|
@@ -14672,7 +14722,8 @@
|
|
|
14672
14722
|
"source": "yaya_docs",
|
|
14673
14723
|
"category": "yaya_function",
|
|
14674
14724
|
"content": "EXECUTE_WAIT\n\nCategory: メタ操作・特殊関数\n\nSignature\n\nEXECUTE_WAIT( path [, option] )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | 実行するファイルまたはアプリケーションのパス。相対パスは信頼性が低いため、絶対パスの使用を推奨。 |\n| option | アプリケーションに渡す引数(省略可)。URLをブラウザで開く場合などに使用。 |\n\nReturns\n\n- 成功時: 0以上の整数(OS依存)\n- 失敗時: -1\n\nDescription\n\nコマンド文字列をOSのコマンドプロセッサに引き渡して外部アプリケーションやファイルを実行します。EXECUTE と異なり、アプリケーションの終了を待ってから処理を返します(同期実行)。C言語の system() 関数に相当します。\n\nExample\n\n_val = EXECUTE_WAIT('CL.EXE','HELLOWORLD.C')\n\nC コンパイラで HELLOWORLD.C をコンパイルし、完了を待ちます。\n\nCompatibility\n\n- YAYA: TC532-1以降\n\nSee Also\n\n- EXECUTE",
|
|
14675
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/EXECUTE_WAIT/"
|
|
14725
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/EXECUTE_WAIT/",
|
|
14726
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/EXECUTE_WAIT.md"
|
|
14676
14727
|
},
|
|
14677
14728
|
{
|
|
14678
14729
|
"id": "yaya:functions/FATTRIB",
|
|
@@ -14680,7 +14731,8 @@
|
|
|
14680
14731
|
"source": "yaya_docs",
|
|
14681
14732
|
"category": "yaya_function",
|
|
14682
14733
|
"content": "FATTRIB\n\nCategory: ファイル操作\n\nSignature\n\nFATTRIB( path )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | 情報を取得するファイルまたはディレクトリのパス。フルパス・相対パスともに使用可能。 |\n\nReturns\n\n11要素の汎用配列を返す。失敗した場合は -1 を返す。\n\n| インデックス | 内容 |\n|-------------|------|\n| [0] | アーカイブ属性フラグ |\n| [1] | 圧縮属性フラグ |\n| [2] | ディレクトリ属性フラグ |\n| [3] | 隠しファイル属性フラグ |\n| [4] | 通常ファイル属性フラグ |\n| [5] | オフライン属性フラグ |\n| [6] | 読み取り専用属性フラグ |\n| [7] | システム属性フラグ |\n| [8] | 一時ファイル属性フラグ |\n| [9] | 作成日時(iノード更新日時)エポック秒(1970/1/1基準) |\n| [10] | 最終更新日時エポック秒(1970/1/1基準) |\n\nExample\n\n_attrib = FATTRIB('hoge.txt')\n_attrib[10] // 最終更新日時(エポック秒)\nGETTIME(_attrib[10]) // 読みやすい形式に変換\n\nCompatibility\n\n- YAYA: 初版より対応\n- AYA: 5.8以降(ただし5.8より前のバージョンでは [9]〜[10] は使用不可)\n\nSee Also\n\n- FSIZE\n- GETTIME",
|
|
14683
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FATTRIB/"
|
|
14734
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FATTRIB/",
|
|
14735
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FATTRIB.md"
|
|
14684
14736
|
},
|
|
14685
14737
|
{
|
|
14686
14738
|
"id": "yaya:functions/FCHARSET",
|
|
@@ -14688,7 +14740,8 @@
|
|
|
14688
14740
|
"source": "yaya_docs",
|
|
14689
14741
|
"category": "yaya_function",
|
|
14690
14742
|
"content": "FCHARSET\n\nCategory: ファイル操作\n\nSignature\n\nFCHARSET( code )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| code | 設定する文字コードID |\n\nReturns\n\n返り値はありません(VOID)。\n\nDescription\n\nファイルの読み書きに使用する文字コードを指定します。FOPEN の前に呼び出す必要があります。ファイルごとに文字コードを変更でき、文字コードは FOPEN が呼ばれた時点で決定されます。設定はゴーストの現在のセッション中は維持されますが、終了後にリセットされます。FCHARSET を呼ばない場合のデフォルト文字コードは、基本設定ファイルの charset.file または charset の設定に従います。\n\nCompatibility\n\n- YAYA: 初版より対応\n- AYA: 5.8以降\n\nSee Also\n\n- FOPEN\n- FCLOSE\n- FATTRIB",
|
|
14691
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FCHARSET/"
|
|
14743
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FCHARSET/",
|
|
14744
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FCHARSET.md"
|
|
14692
14745
|
},
|
|
14693
14746
|
{
|
|
14694
14747
|
"id": "yaya:functions/FCLOSE",
|
|
@@ -14696,7 +14749,8 @@
|
|
|
14696
14749
|
"source": "yaya_docs",
|
|
14697
14750
|
"category": "yaya_function",
|
|
14698
14751
|
"content": "FCLOSE\n\nCategory: ファイル操作\n\nSignature\n\nFCLOSE( path )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | FOPEN で指定した yaya.dll からの相対ファイルパス |\n\nReturns\n\n返り値はありません(VOID)。\n\nDescription\n\nFOPEN で開いたファイルを閉じます。\n\nCompatibility\n\n- YAYA: 初版より対応\n- AYA: 5.8以降\n\nSee Also\n\n- FOPEN",
|
|
14699
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FCLOSE/"
|
|
14752
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FCLOSE/",
|
|
14753
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FCLOSE.md"
|
|
14700
14754
|
},
|
|
14701
14755
|
{
|
|
14702
14756
|
"id": "yaya:functions/FCOPY",
|
|
@@ -14704,7 +14758,8 @@
|
|
|
14704
14758
|
"source": "yaya_docs",
|
|
14705
14759
|
"category": "yaya_function",
|
|
14706
14760
|
"content": "FCOPY\n\nCategory: ファイル操作\n\nSignature\n\nFCOPY( path, dir )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | コピー元のファイル名。フルパスまたは相対パス(DLLロード位置基準)。 |\n| dir | コピー先のディレクトリ名 |\n\nReturns\n\n- 1: 成功\n- 0: 失敗\n\nCompatibility\n\n- YAYA: 初版より対応\n- AYA: 5.8以降\n\nSee Also\n\n- FMOVE\n- FRENAME\n- FDEL",
|
|
14707
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FCOPY/"
|
|
14761
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FCOPY/",
|
|
14762
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FCOPY.md"
|
|
14708
14763
|
},
|
|
14709
14764
|
{
|
|
14710
14765
|
"id": "yaya:functions/FDEL",
|
|
@@ -14712,7 +14767,8 @@
|
|
|
14712
14767
|
"source": "yaya_docs",
|
|
14713
14768
|
"category": "yaya_function",
|
|
14714
14769
|
"content": "FDEL\n\nCategory: ファイル操作\n\nSignature\n\nFDEL( path )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | 削除するファイルのパス。フルパスまたは相対パス(DLLロード位置基準)。 |\n\nReturns\n\n- 1: 成功\n- 0: 失敗\n\nCompatibility\n\n- YAYA: 初版より対応\n- AYA: 5.8以降\n\nSee Also\n\n- FCOPY\n- FMOVE\n- FRENAME",
|
|
14715
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FDEL/"
|
|
14770
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FDEL/",
|
|
14771
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FDEL.md"
|
|
14716
14772
|
},
|
|
14717
14773
|
{
|
|
14718
14774
|
"id": "yaya:functions/FDIGEST",
|
|
@@ -14720,7 +14776,8 @@
|
|
|
14720
14776
|
"source": "yaya_docs",
|
|
14721
14777
|
"category": "yaya_function",
|
|
14722
14778
|
"content": "FDIGEST\n\nCategory: ファイル操作\n\nSignature\n\nFDIGEST(path, type)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | ダイジェスト値を計算するファイルのパス。フルパス指定可。相対パスはDLLのロード位置を基準とする |\n| type | ハッシュアルゴリズムの種類。\"CRC32\"(32ビットCRC)、\"MD5\"、\"SHA-1\"/\"SHA1\"のいずれか |\n\nReturns\n\n- 成功時: ダイジェスト値を16進数文字列で返す\n- 失敗時(ファイルが存在しない・値の生成に失敗した場合): -1\n\nCompatibility\n\n- YAYA: Tc527-1 で初回リリース。Tc530-1 で CRC32 サポートを追加\n\nSee Also\n\n- STRDIGEST",
|
|
14723
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FDIGEST/"
|
|
14779
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FDIGEST/",
|
|
14780
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FDIGEST.md"
|
|
14724
14781
|
},
|
|
14725
14782
|
{
|
|
14726
14783
|
"id": "yaya:functions/FENUM",
|
|
@@ -14728,7 +14785,8 @@
|
|
|
14728
14785
|
"source": "yaya_docs",
|
|
14729
14786
|
"category": "yaya_function",
|
|
14730
14787
|
"content": "FENUM\n\nCategory: ファイル操作\n\nSignature\n\nFENUM( path [ , delim ] )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | 列挙するディレクトリのパス。フルパス指定可。相対パスはDLLのロード位置を基準とする |\n| delim | 区切り文字列(省略時はカンマ) |\n\nReturns\n\n- 成功時: ファイル名とディレクトリ名を区切り文字で連結した文字列。ディレクトリ名にはバックスラッシュのプレフィックスが付く\n- 失敗時: VOID(空)\n\nCompatibility\n\n- YAYA: 初回リリースから利用可能\n- AYA: バージョン 5.8 以降",
|
|
14731
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FENUM/"
|
|
14788
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FENUM/",
|
|
14789
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FENUM.md"
|
|
14732
14790
|
},
|
|
14733
14791
|
{
|
|
14734
14792
|
"id": "yaya:functions/FLOOR",
|
|
@@ -14736,7 +14794,8 @@
|
|
|
14736
14794
|
"source": "yaya_docs",
|
|
14737
14795
|
"category": "yaya_function",
|
|
14738
14796
|
"content": "FLOOR\n\nCategory: 数学関数\n\nSignature\n\nFLOOR(val)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| val | 切り捨てる実数 |\n\nReturns\n\n- 成功時: 引数以下の最大の整数(実数型)。C言語の floor() と同様の動作\n- 失敗時: 0.0\n\n負の数の場合、ゼロ方向ではなく負の方向に丸められることに注意(例: -1.75 → -2.000000)。\n\nExample\n\n_val = 1.75\nFLOOR(_val) // Returns 1.000000\n\n_val = -1.75\nFLOOR(_val) // Returns -2.000000 (not -1.000000)\n\nCompatibility\n\n- YAYA: 初回リリースから利用可能\n- AYA: バージョン 5.8 以降\n\nSee Also\n\n- CEIL\n- ROUND",
|
|
14739
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FLOOR/"
|
|
14797
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FLOOR/",
|
|
14798
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FLOOR.md"
|
|
14740
14799
|
},
|
|
14741
14800
|
{
|
|
14742
14801
|
"id": "yaya:functions/FMOVE",
|
|
@@ -14744,7 +14803,8 @@
|
|
|
14744
14803
|
"source": "yaya_docs",
|
|
14745
14804
|
"category": "yaya_function",
|
|
14746
14805
|
"content": "FMOVE\n\nCategory: ファイル操作\n\nSignature\n\nFMOVE( path , dir )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | 移動元のファイル名。フルパス指定可。相対パスはDLLのロード位置を基準とする |\n| dir | 移動先のディレクトリ名 |\n\nReturns\n\n- 成功時: 1\n- 失敗時: 0\n\nCompatibility\n\n- YAYA: 初回リリースから利用可能\n- AYA: バージョン 5.8 以降\n\nSee Also\n\n- FCOPY\n- FRENAME\n- FDEL",
|
|
14747
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FMOVE/"
|
|
14806
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FMOVE/",
|
|
14807
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FMOVE.md"
|
|
14748
14808
|
},
|
|
14749
14809
|
{
|
|
14750
14810
|
"id": "yaya:functions/FOPEN",
|
|
@@ -14752,7 +14812,8 @@
|
|
|
14752
14812
|
"source": "yaya_docs",
|
|
14753
14813
|
"category": "yaya_function",
|
|
14754
14814
|
"content": "FOPEN\n\nCategory: ファイル操作\n\nSignature\n\nFOPEN(path, option)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | ファイル名またはフルパス。相対パスはDLLのロードディレクトリを基準とする |\n| option | ファイルを開くモードを指定する文字列(下記参照) |\n\nテキストアクセスモード\n\n| モード | 別名 | 動作 |\n|--------|------|------|\n| \"r\" | \"read\" | 読み取り専用。ファイルが存在しない場合はエラー |\n| \"w\" | \"write\" | 書き込み。既存ファイルは切り詰め |\n| \"a\" | \"append\" | 追記。ファイルが存在しない場合は新規作成 |\n\nバイナリアクセスモード\n\n| モード | 別名 | 動作 |\n|--------|------|------|\n| \"rb\" | \"read_binary\" | バイナリ読み取り専用 |\n| \"wb\" | \"write_binary\" | バイナリ書き込み。既存ファイルは切り詰め |\n| \"ab\" | \"write_binary_append\" | バイナリ追記 |\n\nランダムアクセスモード\n\n| モード | 別名 | 動作 |\n|--------|------|------|\n| \"r+\" | \"read_random\" | テキスト読み書き |\n| \"w+\" | \"write_random\" | テキスト読み書き。既存ファイルは切り詰め |\n| \"a+\" | \"append_random\" | テキスト読み書き(追記) |\n| \"rb+\" | \"read_binary_random\" | バイナリ読み書き |\n| \"wb+\" | \"write_binary_random\" | バイナリ読み書き。既存ファイルは切り詰め |\n| \"ab+\" | \"append_binary_random\" | バイナリ読み書き(追記) |\n\nReturns\n\n- 1: 成功\n- 0: 失敗\n- 2: ファイルはすでに開いている\n\nCompatibility\n\n- YAYA: 初回リリースから利用可能(テキストアクセスのみ)\n- AYA: バージョン 5.8 以降(テキストアクセスのみ)\n- バイナリ・ランダムアクセスは TC529-2 以降で追加\n\nSee Also\n\n- FCHARSET\n- FCLOSE\n- FSEEK\n- FTELL\n- FREAD",
|
|
14755
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FOPEN/"
|
|
14815
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FOPEN/",
|
|
14816
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FOPEN.md"
|
|
14756
14817
|
},
|
|
14757
14818
|
{
|
|
14758
14819
|
"id": "yaya:functions/FREAD",
|
|
@@ -14760,7 +14821,8 @@
|
|
|
14760
14821
|
"source": "yaya_docs",
|
|
14761
14822
|
"category": "yaya_function",
|
|
14762
14823
|
"content": "FREAD\n\nCategory: ファイル操作\n\nSignature\n\nFREAD(path)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | FOPENで指定したファイルの相対パス(yaya.dll からの相対パス) |\n\nReturns\n\n- 成功時: 読み取った1行の文字列(CR・LF等の行末文字は除去される)。FCHARSETで指定した文字コードからYAYAの内部エンコーディングに変換される\n- ファイル終端に達した場合: -1\n- 失敗時: 空文字列\n\n事前に FOPEN でファイルを開いておく必要がある。\n\nCompatibility\n\n- YAYA: 初回リリースから利用可能\n- AYA: バージョン 5.8 以降\n\nSee Also\n\n- FWRITE\n- FREADBIN\n- FOPEN\n- FREADENCODE\n- FWRITE2\n- FCHARSET",
|
|
14763
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREAD/"
|
|
14824
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREAD/",
|
|
14825
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FREAD.md"
|
|
14764
14826
|
},
|
|
14765
14827
|
{
|
|
14766
14828
|
"id": "yaya:functions/FREADBIN",
|
|
@@ -14768,7 +14830,8 @@
|
|
|
14768
14830
|
"source": "yaya_docs",
|
|
14769
14831
|
"category": "yaya_function",
|
|
14770
14832
|
"content": "FREADBIN\n\nCategory: ファイル操作\n\nSignature\n\nFREADBIN( path , size [ , char ] )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | FOPENで開いたファイルのファイル名 |\n| size | 読み取るバイト数。0 を指定するとファイル全体を読み取る |\n| char | ヌルバイト(0x00)を置換する文字(省略時はスペース) |\n\nReturns\n\n- 成功時: 読み取ったデータの文字列\n- ファイル終端に達した場合: -1\n- 失敗時: 空文字列\n\n文字コード変換を行わずにバイナリデータをそのまま読み取る。行末変換を避けるため、事前に FOPEN でバイナリモードを指定することが推奨される。ヌルバイト(0x00)は指定した文字に置換される。\n\nCompatibility\n\n- YAYA: Tc516-901 以降\n- 注意: Tc540-3 まで、0x80 以上のバイトがキャストエラーにより 0xFF80 番台に誤変換されるバグが存在した\n\nSee Also\n\n- FREAD\n- FWRITEBIN",
|
|
14771
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREADBIN/"
|
|
14833
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREADBIN/",
|
|
14834
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FREADBIN.md"
|
|
14772
14835
|
},
|
|
14773
14836
|
{
|
|
14774
14837
|
"id": "yaya:functions/FREADENCODE",
|
|
@@ -14776,7 +14839,8 @@
|
|
|
14776
14839
|
"source": "yaya_docs",
|
|
14777
14840
|
"category": "yaya_function",
|
|
14778
14841
|
"content": "FREADENCODE\n\nCategory: ファイル操作\n\nSignature\n\nFREADENCODE(path, size [, type])\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | FOPENで指定したファイル名 |\n| size | 読み取るバイト数。0 を指定するとファイル全体を読み取る |\n| type | エンコード種別。\"base64\"、\"url\"、\"form\" のいずれか。省略時は \"base64\"(詳細は STRENCODE 参照) |\n\nReturns\n\n- 成功時: エンコードされた文字列\n- ファイル終端に達した場合: -1\n- 失敗時: 空文字列\n\nファイルをBase64またはURLエンコードしながら読み取る。バイナリモードで開いていない場合は行コード変換が適用される。事前に FOPEN でファイルを開いておく必要がある。\n\nCompatibility\n\n- YAYA: Tc535-1 以降\n\nSee Also\n\n- FREAD\n- FREADBIN\n- FOPEN\n- STRENCODE",
|
|
14779
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREADENCODE/"
|
|
14842
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREADENCODE/",
|
|
14843
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FREADENCODE.md"
|
|
14780
14844
|
},
|
|
14781
14845
|
{
|
|
14782
14846
|
"id": "yaya:functions/FREADJSON",
|
|
@@ -14784,7 +14848,8 @@
|
|
|
14784
14848
|
"source": "yaya_docs",
|
|
14785
14849
|
"category": "yaya_function",
|
|
14786
14850
|
"content": "FREADJSON\nCategory: ファイル操作\n\nSignature\nFREADJSON( path [, charset] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | 読み込む JSON ファイルのパス(yaya.dll からの相対パス、または絶対パス) |\n| charset | ファイルの文字コード(省略可)。文字列(\"UTF-8\" \"Shift_JIS\" など)または数値で指定する。省略時は UTF-8 |\n\nReturns\n- 成功時: JSON を変換した値(下記の 値の対応)\n- 失敗時: 空(VOID)\n\nDescription\nJSON ファイルを丸ごと読み込んで解析し、ハッシュ・配列などの値にして返す。FOPEN で開いておく必要はない。\n\nJSON の解析には parson を使っている。\n\n- 先頭の UTF-8 の BOM は無視する\n- /* */ と // のコメントを書ける(JSON の規格外だが、設定ファイルなどで使えるよう許している)\n- 最上位はオブジェクトや配列でなくてもよい(123 や \"abc\" だけのファイルも読める)\n\n値の対応\n\n| JSON | YAYA |\n|------|------|\n| オブジェクト | ハッシュ |\n| 配列 | 汎用配列(要素に配列やハッシュを含む入れ子になる) |\n| 文字列 | 文字列 |\n| 数値(整数の値) | 整数 |\n| 数値(それ以外) | 実数 |\n| true / false | 整数 1 / 0 |\n| null | 空(VOID) |\n\n- 数値は内部で実数として解析するため、1.0 のように小数点があっても値が整数なら整数になる。また、2^53 を超える整数は誤差を含むことがある。整数の範囲(-2^63 以上 2^63 未満)を超える値は実数になる\n- オブジェクトのキーの並びは保たれない。ハッシュのキーの順(数値 < 文字列)になる(HASH_KEYS を参照)\n- \"1\" と \"01\" のように、YAYA のハッシュで同じキーとみなされないものは別のキーのまま残る。\"1\" のような正規形の整数文字列のキーは h[1] でも h[\"1\"] でも引ける\n- null の値のキーもハッシュに残る。HASH_EXIST は 1 を返す\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数がない | W0008 | 8 |\n| path が文字列でない | W0009 | 9 |\n| charset が不正 | W0012 / W0009 | 12 / 9 |\n| ファイルを開けない | W0025 | 25 |\n| JSON として解析できない | W0026 | 26 |\n\nExample\ndata.json:\n{\n \"name\": \"さくら\",\n \"age\": 17,\n \"tags\": [\"ghost\", \"shell\"],\n \"profile\": { \"height\": 158.5, \"visible\": true, \"memo\": null }\n}\n\n_j = FREADJSON(\"data.json\")\n_j[\"name\"] // さくら\n_j[\"tags\"][1] // shell\n_j[\"profile\"][\"height\"] // 実数の 158.5\n_j[\"profile\"][\"visible\"] // 1\n\nforeach _j[\"tags\"]; _t {\n // _t に \"ghost\"、\"shell\" が順に入る\n}\n\nCompatibility\n- YAYA: Tc601-1以降\n- Tc602-1: 小数点が , のロケール(ドイツ語など)の環境で、小数を含む JSON の解析に失敗していたのを修正\n\nSee Also\n- PARSEJSON\n- FWRITEJSON\n- FREADXML\n- 値の入れ子と多次元代入",
|
|
14787
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREADJSON/"
|
|
14851
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREADJSON/",
|
|
14852
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FREADJSON.md"
|
|
14788
14853
|
},
|
|
14789
14854
|
{
|
|
14790
14855
|
"id": "yaya:functions/FREADTOML",
|
|
@@ -14792,7 +14857,8 @@
|
|
|
14792
14857
|
"source": "yaya_docs",
|
|
14793
14858
|
"category": "yaya_function",
|
|
14794
14859
|
"content": "FREADTOML\nCategory: ファイル操作\n\nSignature\nFREADTOML( path [, charset] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | 読み込む TOML ファイルのパス(yaya.dll からの相対パス、または絶対パス) |\n| charset | ファイルの文字コード(省略可)。文字列(\"UTF-8\" \"Shift_JIS\" など)または数値で指定する。省略時は UTF-8(TOML の規格では UTF-8 と決まっている) |\n\nReturns\n- 成功時: TOML を変換したハッシュ(下記の 値の対応)\n- 失敗時: 空(VOID)\n\nDescription\nTOML ファイルを丸ごと読み込んで解析し、ハッシュにして返す。FOPEN で開いておく必要はない。\n\nTOML の解析は YAYA が自前で行う。TOML v1.0.0 に対応している。v1.1 で加わった、インライン表の中の改行と末尾のカンマ、\\e \\xHH のエスケープも受け付ける。\n\n- 先頭の UTF-8 の BOM は無視する。改行は CRLF / LF のどちらでもよい\n- 最上位は常にハッシュになる。空のファイルや、コメントだけのファイルは空のハッシュになる\n- 同じキーや表を2回定義する、ドットのキーで作った表を [表] で定義し直す、インライン表に後から足す、などの規格で禁じられていることはエラーにする\n\n値の対応\n\n| TOML | YAYA |\n|------|------|\n| 表([table]・インライン表 { }・ドットのキー a.b = 1) | ハッシュ |\n| 表の配列([[array]]) | ハッシュの汎用配列 |\n| 配列 | 汎用配列(要素に配列やハッシュを含む入れ子になる) |\n| 文字列(\"...\" '...' \"\"\"...\"\"\" '''...''') | 文字列 |\n| 整数(42 1_000 0xDEAD 0o755 0b1101) | 整数 |\n| 実数(3.14 5e+22 inf nan) | 実数 |\n| true / false | 整数 1 / 0 |\n| 日時(1979-05-27T07:32:00Z、1979-05-27、07:32:00 など) | 書かれたとおりの文字列 |\n\n- 整数の範囲(-2^63 以上 2^63 未満)を超える整数はエラーにする\n- キーの並びは保たれない。ハッシュのキーの順になる(HASH_KEYS を参照)\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数がない | W0008 | 8 |\n| path が文字列でない | W0009 | 9 |\n| charset が不正 | W0012 / W0009 | 12 / 9 |\n| ファイルを開けない | W0025 | 25 |\n| TOML として解析できない | W0026(行番号と原因も出力する) | 26 |\n\nExample\nconfig.toml:\n# ゴーストの設定\ntitle = \"設定\"\nupdated = 2026-09-27T12:00:00+09:00\n\n[ghost]\nname = \"さくら\"\nage = 17\nvisible = true\ntags = [\"ghost\", \"shell\"]\npath = 'C:\\ssp\\ghost'\n\n[[friends]]\nname = \"うにゅう\"\n\n[[friends]]\nname = \"まゆら\"\n\n_t = FREADTOML(\"config.toml\")\n_t[\"title\"] // 設定\n_t[\"updated\"] // 文字列の 2026-09-27T12:00:00+09:00\n_t[\"ghost\"][\"name\"] // さくら\n_t[\"ghost\"][\"visible\"] // 1\n_t[\"ghost\"][\"tags\"][1] // shell\n_t[\"ghost\"][\"path\"] // C:\\ssp\\ghost\n_t[\"friends\"][1][\"name\"] // まゆら\n\nforeach _t[\"friends\"]; _f {\n // _f に {name: うにゅう}、{name: まゆら} のハッシュが順に入る\n}\n\nCompatibility\n- YAYA: Tc602-5以降\n\nSee Also\n- PARSETOML\n- FWRITETOML\n- FREADJSON\n- FREADYAML\n- 値の入れ子と多次元代入",
|
|
14795
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREADTOML/"
|
|
14860
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREADTOML/",
|
|
14861
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FREADTOML.md"
|
|
14796
14862
|
},
|
|
14797
14863
|
{
|
|
14798
14864
|
"id": "yaya:functions/FREADXML",
|
|
@@ -14800,7 +14866,8 @@
|
|
|
14800
14866
|
"source": "yaya_docs",
|
|
14801
14867
|
"category": "yaya_function",
|
|
14802
14868
|
"content": "FREADXML\nCategory: ファイル操作\n\nSignature\nFREADXML( path [, charset] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | 読み込む XML ファイルのパス(yaya.dll からの相対パス、または絶対パス) |\n| charset | ファイルの文字コード(省略可)。文字列(\"UTF-8\" \"Shift_JIS\" など)または数値で指定する。省略時は下記のとおり自動で決める |\n\nReturns\n- 成功時: ルート要素を表すハッシュ(下記の 要素の形)\n- 失敗時: 空(VOID)\n\nDescription\nXML ファイルを丸ごと読み込んで解析し、ルート要素をハッシュにして返す。FOPEN で開いておく必要はない。\n\nXML の解析には TinyXML-2 を使っている。\n\ncharset を省略したときの文字コードは次の順に決める。\n\n1. 先頭に UTF-8 の BOM があれば UTF-8\n2. XML 宣言(<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>)の encoding。Windows-31J CP932 も Shift_JIS として扱う\n3. どちらも無い、または encoding が YAYA の知らない文字コードなら UTF-8\n\ncharset を指定したときは XML 宣言の encoding を無視する。\n\n要素の形\n\n要素は、次の4つのキーを持つハッシュになる。キーは中身が空でも必ずある。\n\n| キー | 値 |\n|------|----|\n| name | タグ名(名前空間の接頭辞があれば ns:tag のまま) |\n| attr | 属性名 → 属性値 のハッシュ。値はすべて文字列 |\n| children | 子要素のハッシュの汎用配列(出現順) |\n| text | 直下のテキスト(CDATA を含む)を順に連結した文字列 |\n\n- 実体参照(& あ など)は展開済みになる\n- テキストの前後の空白や改行はそのまま残る。要素と要素の間の空白だけの部分は text に入らない\n- 子要素とテキストが混在する場合、テキストと子要素の前後関係は失われる(<p>a<b>x</b>c</p> の text は ac)\n- コメント、処理命令、DOCTYPE、XML 宣言は無視する。ルート要素より外にあるものも返らない\n- 属性の並びは保たれない。ハッシュのキーの順になる\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数がない | W0008 | 8 |\n| path が文字列でない | W0009 | 9 |\n| charset が不正 | W0012 / W0009 | 12 / 9 |\n| ファイルを開けない | W0025 | 25 |\n| XML として解析できない | W0026(エラーの内容と行番号も出力する) | 26 |\n\nExample\nshop.xml:\n<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n<shop name=\"A\">\n <item id=\"1\">りんご</item>\n <item id=\"2\">バナナ</item>\n</shop>\n\n_x = FREADXML(\"shop.xml\")\n_x[\"name\"] // shop\n_x[\"attr\"][\"name\"] // A\n_x[\"children\"][1][\"name\"] // item\n_x[\"children\"][1][\"attr\"][\"id\"] // 2\n_x[\"children\"][1][\"text\"] // バナナ\n\nforeach _x[\"children\"]; _item {\n // _item[\"attr\"][\"id\"] と _item[\"text\"] を順に扱える\n}\n\nCompatibility\n- YAYA: Tc601-1以降\n\nSee Also\n- PARSEXML\n- FWRITEXML\n- FREADJSON\n- 値の入れ子と多次元代入",
|
|
14803
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREADXML/"
|
|
14869
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREADXML/",
|
|
14870
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FREADXML.md"
|
|
14804
14871
|
},
|
|
14805
14872
|
{
|
|
14806
14873
|
"id": "yaya:functions/FREADYAML",
|
|
@@ -14808,7 +14875,8 @@
|
|
|
14808
14875
|
"source": "yaya_docs",
|
|
14809
14876
|
"category": "yaya_function",
|
|
14810
14877
|
"content": "FREADYAML\nCategory: ファイル操作\n\nSignature\nFREADYAML( path [, charset] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | 読み込む YAML ファイルのパス(yaya.dll からの相対パス、または絶対パス) |\n| charset | ファイルの文字コード(省略可)。文字列(\"UTF-8\" \"Shift_JIS\" など)または数値で指定する。省略時は UTF-8 |\n\nReturns\n- 成功時: YAML を変換した値(下記の 値の対応)\n- 失敗時: 空(VOID)\n\nDescription\nYAML ファイルを丸ごと読み込んで解析し、ハッシュ・配列などの値にして返す。FOPEN で開いておく必要はない。\n\nYAML の解析は YAYA が自前で行う。設定ファイルなどでよく使われる範囲(下記の 対応している書き方)に対応したもので、YAML の仕様をすべて満たしてはいない。\n\n- 先頭の UTF-8 の BOM は無視する。改行は CRLF / LF のどちらでもよい\n- 空のファイルや、コメントだけのファイルは空(VOID)になる。エラーにはならない\n\n対応している書き方\n\n| 書き方 | 例 |\n|--------|----|\n| ブロック形式のマッピング・シーケンス | key: value、- item。key: の下に同じ桁で - item を並べる書き方も可 |\n| フロー形式 | [1, 2]、{a: 1, b: 2}。入れ子や、複数行にわたる書き方も可 |\n| クォートなしの文字列 | 複数行にわたってもよい(改行は空白になり、空行は改行になる) |\n| クォート付きの文字列 | '...'('' で ')、\"...\"(\\n \\t \\\" \\\\ \\x41 あ \\U0001F600 などのエスケープ) |\n| ブロックスカラー | |(改行をそのまま残す)、>(改行を空白にする)。末尾の改行の扱い |- |+、字下げの指定 |2 も可 |\n| コメント | # から行末まで(値の後に書くときは # の前に空白が必要) |\n| アンカーとエイリアス | &name を付けた値を *name で参照する(値を複製する) |\n| マージキー | <<: *name や <<: [*a, *b] でマッピングを取り込む。明示したキーと、先に書いたものが優先 |\n| 文書の区切り | 先頭の ---(と、その前の %YAML などのディレクティブ)、末尾の ... |\n| タグ | !!str(と !)は文字列にする。!!int !!float !!bool !!null はクォートされていても型を決める。ほかのタグは無視する |\n\n次のものには対応していない。書かれていると W0026 になる。\n\n- 1つのファイルに複数の文書(2つ目の ---)\n- 複合キー(? で始まるキー、キーにフロー形式を書いたもの)\n- 字下げにタブを使ったもの(値の中のタブは使える)\n\n値の対応\n\n型は YAML 1.2 の Core Schema の規則で決める。\n\n| YAML | YAYA |\n|------|------|\n| マッピング | ハッシュ。キーは常に文字列 |\n| シーケンス | 汎用配列(要素に配列やハッシュを含む入れ子になる) |\n| 整数(123 -4 0o17 0x1F) | 整数。10進で整数の範囲を超えるものは実数 |\n| 実数(1.5 1e3 .5 .inf -.inf .nan) | 実数 |\n| true / false(True TRUE なども) | 整数 1 / 0 |\n| null / ~ / 値なし | 空(VOID) |\n| それ以外・クォート付き・ブロックスカラー | 文字列 |\n\n- YAML 1.1 の処理系とは次の点が違う。yes no on off は文字列、017 は 10 進の 17、1_000 は文字列、2001-12-14 のような日付も文字列になる\n- マッピングのキーの並びは保たれない。ハッシュのキーの順になる(HASH_KEYS を参照)。1 のような正規形の整数のキーは h[1] でも h[\"1\"] でも引ける\n- 同じキーが2回書かれていたら、後に書いたほうになる\n- 深い入れ子(256 段を超えるもの)と、エイリアスの複製が合計 100 万要素を超えるものはエラーにする(悪意のあるファイルでメモリを使い果たさないため)\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数がない | W0008 | 8 |\n| path が文字列でない | W0009 | 9 |\n| charset が不正 | W0012 / W0009 | 12 / 9 |\n| ファイルを開けない | W0025 | 25 |\n| YAML として解析できない、対応していない書き方 | W0026(行番号と原因も出力する) | 26 |\n\nExample\nconfig.yaml:\n# ゴーストの設定\nname: さくら\nage: 17\nheight: 158.5\nvisible: true\nmemo: ~\ntags: [ghost, shell]\ntalk:\n greeting: |\n こんにちは。\n 今日もいい天気ですね。\n random:\n - おはよう\n - こんばんは\ndefaults: &defaults\n volume: 80\n speed: 2\nvoice:\n <<: *defaults\n speed: 3\n\n_y = FREADYAML(\"config.yaml\")\n_y[\"name\"] // さくら\n_y[\"tags\"][1] // shell\n_y[\"height\"] // 実数の 158.5\n_y[\"visible\"] // 1\n_y[\"memo\"] // 空(VOID)\n_y[\"talk\"][\"greeting\"] // \"こんにちは。\" + 改行 + \"今日もいい天気ですね。\" + 改行\n_y[\"talk\"][\"random\"][0] // おはよう\n_y[\"voice\"][\"volume\"] // 80(defaults から取り込んだもの)\n_y[\"voice\"][\"speed\"] // 3\n\nCompatibility\n- YAYA: Tc602-5以降\n\nSee Also\n- PARSEYAML\n- FWRITEYAML\n- FREADJSON\n- FREADTOML\n- 値の入れ子と多次元代入",
|
|
14811
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREADYAML/"
|
|
14878
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FREADYAML/",
|
|
14879
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FREADYAML.md"
|
|
14812
14880
|
},
|
|
14813
14881
|
{
|
|
14814
14882
|
"id": "yaya:functions/FRENAME",
|
|
@@ -14816,7 +14884,8 @@
|
|
|
14816
14884
|
"source": "yaya_docs",
|
|
14817
14885
|
"category": "yaya_function",
|
|
14818
14886
|
"content": "FRENAME\n\nCategory: ファイル操作\n\nSignature\n\nFRENAME( from , to )\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| from | 変更前のファイル名。フルパス指定可。相対パスはDLLのロード位置を基準とする |\n| to | 変更後のファイル名 |\n\nReturns\n\n- 成功時: 1\n- 失敗時: 0\n\nCompatibility\n\n- YAYA: 初回リリースから利用可能\n- AYA: バージョン 5.8 以降\n\nSee Also\n\n- FCOPY\n- FMOVE\n- FDEL",
|
|
14819
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FRENAME/"
|
|
14887
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FRENAME/",
|
|
14888
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FRENAME.md"
|
|
14820
14889
|
},
|
|
14821
14890
|
{
|
|
14822
14891
|
"id": "yaya:functions/FSEEK",
|
|
@@ -14824,7 +14893,8 @@
|
|
|
14824
14893
|
"source": "yaya_docs",
|
|
14825
14894
|
"category": "yaya_function",
|
|
14826
14895
|
"content": "FSEEK\n\nCategory: ファイル操作\n\nSignature\n\nFSEEK(path, offset, origin)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | FOPENで指定したファイル名 |\n| offset | 移動するバイト数 |\n| origin | 移動の起点を示す文字列。SEEK_CUR または current(現在位置)、SEEK_END または end(ファイル終端)、SEEK_SET または start(ファイル先頭) |\n\nReturns\n\n- 成功時: 1\n- 失敗時: 0\n\n非バイナリモードでは改行コードの自動変換により FSEEK/FTELL が期待通りに動作しない場合がある。これらの関数を使用する場合は FOPEN でバイナリモードを指定することを推奨する。\n\nSee Also\n\n- FTELL\n- FOPEN",
|
|
14827
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FSEEK/"
|
|
14896
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FSEEK/",
|
|
14897
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FSEEK.md"
|
|
14828
14898
|
},
|
|
14829
14899
|
{
|
|
14830
14900
|
"id": "yaya:functions/FSIZE",
|
|
@@ -14832,7 +14902,8 @@
|
|
|
14832
14902
|
"source": "yaya_docs",
|
|
14833
14903
|
"category": "yaya_function",
|
|
14834
14904
|
"content": "FSIZE\n\nCategory: ファイル操作\n\nSignature\n\nFSIZE(path)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | サイズを取得するファイルのパス。フルパス指定可。相対パスはDLLのロード位置を基準とする |\n\nReturns\n\n- 成功時: ファイルサイズ(バイト数)を表す非負の整数\n- 失敗時: -1\n\nCompatibility\n\n- YAYA: 初回リリースから利用可能\n- AYA: バージョン 5.8 以降\n\nSee Also\n\n- FATTRIB\n- FSEEK\n- FTELL",
|
|
14835
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FSIZE/"
|
|
14905
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FSIZE/",
|
|
14906
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FSIZE.md"
|
|
14836
14907
|
},
|
|
14837
14908
|
{
|
|
14838
14909
|
"id": "yaya:functions/FSTATUS",
|
|
@@ -14840,7 +14911,8 @@
|
|
|
14840
14911
|
"source": "yaya_docs",
|
|
14841
14912
|
"category": "yaya_function",
|
|
14842
14913
|
"content": "FSTATUS\n\nCategory: ファイル操作\n\nSignature\n\nFSTATUS(path)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | FOPENで指定したファイル名 |\n\nReturns\n\n直前のファイルI/O操作(FOPEN・FREAD・FWRITE・FSEEK・FTELLなど)の結果ステータスを返す。\n\n| 戻り値 | 意味 |\n|--------|------|\n| 0 | 正常終了(エラーなし) |\n| -1 | エラー発生 |\n| 1 | ファイル末尾(EOF)に達した |\n\nAvailability\n\nTc573-3 以降\n\nSee Also\n\n- FOPEN\n- FSEEK\n- FTELL",
|
|
14843
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FSTATUS/"
|
|
14914
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FSTATUS/",
|
|
14915
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FSTATUS.md"
|
|
14844
14916
|
},
|
|
14845
14917
|
{
|
|
14846
14918
|
"id": "yaya:functions/FTELL",
|
|
@@ -14848,7 +14920,8 @@
|
|
|
14848
14920
|
"source": "yaya_docs",
|
|
14849
14921
|
"category": "yaya_function",
|
|
14850
14922
|
"content": "FTELL\n\nCategory: ファイル操作\n\nSignature\n\nFTELL(path)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| path | FOPENで指定したファイル名 |\n\nReturns\n\n- 成功時: ファイル先頭からのバイトオフセット(現在のファイル位置)\n- 失敗時: -1\n\n非バイナリモードでは改行コードの自動変換により FSEEK/FTELL が期待通りに動作しない場合がある。これらの関数を使用する場合は FOPEN でバイナリモードを指定することを推奨する。\n\nSee Also\n\n- FSEEK\n- FOPEN",
|
|
14851
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FTELL/"
|
|
14923
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FTELL/",
|
|
14924
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FTELL.md"
|
|
14852
14925
|
},
|
|
14853
14926
|
{
|
|
14854
14927
|
"id": "yaya:functions/FUNCDECL_ERASE",
|
|
@@ -14856,7 +14929,8 @@
|
|
|
14856
14929
|
"source": "yaya_docs",
|
|
14857
14930
|
"category": "yaya_function",
|
|
14858
14931
|
"content": "FUNCDECL_ERASE\n\nCategory: メタ操作・特殊関数\n\nSignature\n\nFUNCDECL_ERASE(variable_name, function_name)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| variable_name | 監視対象の変数名 |\n| function_name | 変数削除時に実行する関数名。空文字列('' または \"\")を指定すると登録解除 |\n\nReturns\n\n- 成功時: 1\n- 失敗時: 0\n\n変数が削除されたとき、指定した関数が自動的に呼び出される。呼び出される関数の引数は以下の通り:\n\n- _argv[0]: 変数名\n- _argv[1]: 変数の現在の値\n\n呼び出された関数の戻り値はシステムによって無視される。\n\nCompatibility\n\n- YAYA: Tc565-1 以降\n\nSee Also\n\n- FUNCDECL_WRITE\n- FUNCDECL_READ",
|
|
14859
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FUNCDECL_ERASE/"
|
|
14932
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FUNCDECL_ERASE/",
|
|
14933
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FUNCDECL_ERASE.md"
|
|
14860
14934
|
},
|
|
14861
14935
|
{
|
|
14862
14936
|
"id": "yaya:functions/FUNCDECL_READ",
|
|
@@ -14864,7 +14938,8 @@
|
|
|
14864
14938
|
"source": "yaya_docs",
|
|
14865
14939
|
"category": "yaya_function",
|
|
14866
14940
|
"content": "FUNCDECL_READ\n\nCategory: メタ操作・特殊関数\n\nSignature\n\nFUNCDECL_READ(variable_name, function_name)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| variable_name | 監視対象の変数名 |\n| function_name | 変数読み取り時に実行する関数名。空文字列('')を指定すると登録解除 |\n\nReturns\n\n- 成功時: 1\n- 失敗時: 0\n\n変数が読み取られるたびに、指定した関数が自動的に呼び出される(変数の読み取り時に自動的に実行される関数を指定します)。呼び出される関数の引数は以下の通り:\n\n- _argv[0]: 変数名\n- _argv[1]: 変数の現在の値\n\n呼び出された関数は、実際に取得する値を返す必要がある(現在の値と異なる値を返すことも可能)。\n\n値が汎用配列やハッシュのときは、_argv[1] が入れ子の配列やハッシュになる(_argv の要素数は 2 のまま)。Tc600-3 より前は、配列の値の先頭要素だけが _argv[1] に入っていた。\n\nCompatibility\n\n- YAYA: Tc565-1 以降\n- Tc600-3: 配列やハッシュの値を入れ子のまま渡すようにした\n\nSee Also\n\n- FUNCDECL_WRITE\n- FUNCDECL_ERASE",
|
|
14867
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FUNCDECL_READ/"
|
|
14941
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FUNCDECL_READ/",
|
|
14942
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FUNCDECL_READ.md"
|
|
14868
14943
|
},
|
|
14869
14944
|
{
|
|
14870
14945
|
"id": "yaya:functions/FUNCDECL_WRITE",
|
|
@@ -14872,7 +14947,8 @@
|
|
|
14872
14947
|
"source": "yaya_docs",
|
|
14873
14948
|
"category": "yaya_function",
|
|
14874
14949
|
"content": "FUNCDECL_WRITE\n\nCategory: メタ操作・特殊関数\n\nSignature\n\nFUNCDECL_WRITE(variable_name, function_name)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| variable_name | 監視対象の変数名 |\n| function_name | 変数書き込み時に実行する関数名。空文字列(\"\" または '')を指定すると登録解除 |\n\nReturns\n\n- 成功時: 1\n- 失敗時: 0\n\n指定した変数に書き込みが行われるたびに、登録した関数が自動的に呼び出される。呼び出される関数の引数は以下の通り:\n\n- _argv[0]: 変数名\n- _argv[1]: 代入される新しい値(= の右辺)\n- _argv[2]: 変数の以前の値\n\n呼び出された関数は、変数に実際に書き込まれる値を返す必要がある(_argv[1] と異なる値を返すことも可能)。\n\n値が汎用配列やハッシュのときは、_argv[1] _argv[2] の要素が入れ子の配列やハッシュになる(_argv の要素数は 3 のまま)。Tc600-3 より前は、配列の値が正しく渡らず(_argv[1] _argv[2] が空になる)、戻り値をそのまま返すと変数が空になっていた。\n\n添字への代入(a[0] = v)では呼び出されない。\n\nCompatibility\n\n- YAYA: Tc565-1 以降\n- Tc600-3: 配列やハッシュの値を入れ子のまま渡すようにした\n\nSee Also\n\n- FUNCDECL_READ\n- FUNCDECL_ERASE",
|
|
14875
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FUNCDECL_WRITE/"
|
|
14950
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FUNCDECL_WRITE/",
|
|
14951
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FUNCDECL_WRITE.md"
|
|
14876
14952
|
},
|
|
14877
14953
|
{
|
|
14878
14954
|
"id": "yaya:functions/FUNCTIONEX",
|
|
@@ -14880,7 +14956,8 @@
|
|
|
14880
14956
|
"source": "yaya_docs",
|
|
14881
14957
|
"category": "yaya_function",
|
|
14882
14958
|
"content": "FUNCTIONEX\nCategory: 外部ライブラリ\n\nSignature\nFUNCTIONEX( 'path' , 'Argument0', 'Argument1', ... )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | yaya.dllからの相対パスで、呼び出したいSAORIユニバーサルモジュールのパスを指定する |\n| Argument* | SAORIモジュールへの引数。SAORI-basicの場合は第1引数にproxy.dllのパス、第2引数にSAORI-basicのパス、以降にSAORI-basicへの引数を指定する |\n\nReturns\n- SAORI-universalの場合: Resultの値を返す。同時にvalueex配列にSAORI-universalのValueデータが格納される\n- SAORI-basicの場合: 標準出力を返す\n\nDescription\nSAORIモジュール(外部プラグイン)を実行する関数。\n\nSAORI-universalとSAORI-basicの両方に対応している。SAORI-universalの場合、戻り値としてResultが返されるとともに、valueex配列にValueデータが格納される。\n\nSAORIの具体的な使い方については、Tips「SAORIの使い方」を参照のこと。\n\nCompatibility\nYAYAの初期バージョンから使用可能。\n\nSee Also\n- SAORIの使い方",
|
|
14883
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FUNCTIONEX/"
|
|
14959
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FUNCTIONEX/",
|
|
14960
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FUNCTIONEX.md"
|
|
14884
14961
|
},
|
|
14885
14962
|
{
|
|
14886
14963
|
"id": "yaya:functions/FWRITE",
|
|
@@ -14888,7 +14965,8 @@
|
|
|
14888
14965
|
"source": "yaya_docs",
|
|
14889
14966
|
"category": "yaya_function",
|
|
14890
14967
|
"content": "FWRITE\nCategory: ファイル操作\n\nSignature\nFWRITE( path, string )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | FOPENで開いたファイルのパス(yaya.dllからの相対パス) |\n| string | 書き込む文字列 |\n\nReturns\nなし(VOID)\n\nDescription\nファイルに1行書き込む関数。事前にFOPENでファイルを開いておく必要がある。\n\n文字コードはYAYA内部形式からFCHARSETで指定した形式に変換して書き込む。行末には自動的に改行文字が付加される。\n\n改行文字を付加せずに書き込む場合はFWRITE2を使用すること。\n\nCompatibility\n- YAYA: 初期バージョンから使用可能\n- AYA: バージョン5.8以降\n\nSee Also\n- FWRITE2\n- FREAD\n- FOPEN\n- FCHARSET",
|
|
14891
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITE/"
|
|
14968
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITE/",
|
|
14969
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FWRITE.md"
|
|
14892
14970
|
},
|
|
14893
14971
|
{
|
|
14894
14972
|
"id": "yaya:functions/FWRITE2",
|
|
@@ -14896,7 +14974,8 @@
|
|
|
14896
14974
|
"source": "yaya_docs",
|
|
14897
14975
|
"category": "yaya_function",
|
|
14898
14976
|
"content": "FWRITE2\nCategory: ファイル操作\n\nSignature\nFWRITE2( path, string )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | FOPENで開いたファイルのパス(yaya.dllからの相対パス) |\n| string | 書き込む文字列 |\n\nReturns\nなし(VOID)\n\nDescription\nファイルに1行書き込む関数。事前にFOPENでファイルを開いておく必要がある。\n\n文字コードはYAYA内部形式からFCHARSETで指定した形式に変換して書き込む。FWRITEと異なり、行末に改行文字は付加されない。\n\n改行文字を自動付加したい場合はFWRITEを使用すること。\n\nCompatibility\n- YAYA: 初期バージョンから使用可能\n- AYA: バージョン5.8以降\n\nSee Also\n- FWRITE\n- FREAD\n- FWRITEBIN\n- FOPEN",
|
|
14899
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITE2/"
|
|
14977
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITE2/",
|
|
14978
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FWRITE2.md"
|
|
14900
14979
|
},
|
|
14901
14980
|
{
|
|
14902
14981
|
"id": "yaya:functions/FWRITEBIN",
|
|
@@ -14904,7 +14983,8 @@
|
|
|
14904
14983
|
"source": "yaya_docs",
|
|
14905
14984
|
"category": "yaya_function",
|
|
14906
14985
|
"content": "FWRITEBIN\nCategory: ファイル操作\n\nSignature\nFWRITEBIN( path, string [, char] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | FOPENで指定したファイル名 |\n| string | 書き込む文字列 |\n| char | バイト値0x00の代替文字(省略時は半角スペース) |\n\nReturns\nなし\n\nDescription\n文字コード変換を行わずにデータを書き込む関数。事前にFOPENでファイルを開いておく必要がある。\n\nバイナリモードで開いていない場合は改行コード変換が発生する。\n\ncharに指定した文字は、YAYAが文字列中にnullバイトを持てないという制限により、バイト値0に変換される。\n\nCompatibility\nTc516-901以降\n\nSee Also\n- FWRITE\n- FREADBIN\n- FOPEN",
|
|
14907
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITEBIN/"
|
|
14986
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITEBIN/",
|
|
14987
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FWRITEBIN.md"
|
|
14908
14988
|
},
|
|
14909
14989
|
{
|
|
14910
14990
|
"id": "yaya:functions/FWRITEDECODE",
|
|
@@ -14912,7 +14992,8 @@
|
|
|
14912
14992
|
"source": "yaya_docs",
|
|
14913
14993
|
"category": "yaya_function",
|
|
14914
14994
|
"content": "FWRITEDECODE\nCategory: ファイル操作\n\nSignature\nFWRITEDECODE( path, string [, type] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | FOPENで指定したファイル名 |\n| string | 書き込むエンコードされた文字列 |\n| type | デコード方式: \"base64\", \"url\", \"form\" のいずれか(省略時はbase64) |\n\nReturns\nなし\n\nDescription\nbase64またはURLエンコードからデコードしながらデータを書き込む関数。FREADENCODEの逆操作を行う。\n\n事前にFOPENでファイルを開いておく必要がある。バイナリアクセスのため改行コード変換は行われず、0x00(nullバイト)も書き込める。\n\nCompatibility\nTc554-1以降\n\n注意: Tc554-1ではtype引数を省略できない実装バグが存在する。\n\nSee Also\n- FWRITE\n- FREADENCODE\n- STRDECODE",
|
|
14915
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITEDECODE/"
|
|
14995
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITEDECODE/",
|
|
14996
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FWRITEDECODE.md"
|
|
14916
14997
|
},
|
|
14917
14998
|
{
|
|
14918
14999
|
"id": "yaya:functions/FWRITEJSON",
|
|
@@ -14920,7 +15001,8 @@
|
|
|
14920
15001
|
"source": "yaya_docs",
|
|
14921
15002
|
"category": "yaya_function",
|
|
14922
15003
|
"content": "FWRITEJSON\nCategory: ファイル操作\n\nSignature\nFWRITEJSON( path, value [, charset [, pretty]] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | 書き込むファイルのパス(yaya.dll からの相対パス、または絶対パス) |\n| value | JSON にする値。ハッシュや配列(入れ子を含む)も1つの引数として渡せる |\n| charset | ファイルの文字コード(省略可)。文字列(\"UTF-8\" \"Shift_JIS\" など)または数値で指定する。省略時、または空文字列のときは UTF-8(BOM なし) |\n| pretty | 1 なら改行とインデントを入れて整形する。省略時は 1(整形する) |\n\nReturns\n- 成功時: 1\n- 失敗時: 0\n\nDescription\n値を JSON にしてファイルに書き込む。ファイルが既にあれば上書きする。FOPEN で開いておく必要はない。\n\n値の対応と整形の形は DUMPJSON と同じ。整形したときはファイルの末尾に改行(LF)を付ける。\n\n書き込んだファイルは FREADJSON で読み戻せる(UTF-8 以外で書いたときは同じ charset を指定する)。\n\nディレクトリは作らない。存在しないディレクトリの中には書き込めない。\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数が足りない | W0008 | 8 |\n| path が文字列でない | W0009 | 9 |\n| charset が不正 | W0012 / W0009 | 12 / 9 |\n| ファイルを開けない | W0025 | 25 |\n| 文字コードを変換できない | W0027 | 27 |\n| 書き込みに失敗した | W0013 | 13 |\n\nExample\n_conf = IHASH()\n_conf[\"volume\"] = 80\n_conf[\"friends\"] = (\"うにゅう\", \"まゆら\")\n\nFWRITEJSON(\"config.json\", _conf)\n// config.json:\n// {\n// \"friends\": [\n// \"うにゅう\",\n// \"まゆら\"\n// ],\n// \"volume\": 80\n// }\n\nFWRITEJSON(\"config.min.json\", _conf, \"\", 0) // UTF-8 で1行に\n\nCompatibility\n- YAYA: Tc602-1以降\n\nSee Also\n- DUMPJSON\n- FREADJSON\n- FWRITEXML",
|
|
14923
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITEJSON/"
|
|
15004
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITEJSON/",
|
|
15005
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FWRITEJSON.md"
|
|
14924
15006
|
},
|
|
14925
15007
|
{
|
|
14926
15008
|
"id": "yaya:functions/FWRITETOML",
|
|
@@ -14928,7 +15010,8 @@
|
|
|
14928
15010
|
"source": "yaya_docs",
|
|
14929
15011
|
"category": "yaya_function",
|
|
14930
15012
|
"content": "FWRITETOML\nCategory: ファイル操作\n\nSignature\nFWRITETOML( path, value [, charset [, pretty]] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | 書き込むファイルのパス(yaya.dll からの相対パス、または絶対パス) |\n| value | TOML にするハッシュ(入れ子を含む) |\n| charset | ファイルの文字コード(省略可)。文字列(\"UTF-8\" \"Shift_JIS\" など)または数値で指定する。省略時、または空文字列のときは UTF-8(BOM なし)。TOML の規格では UTF-8 と決まっているので、ふつうは省略する |\n| pretty | 1 なら [表] の見出しを使って整形する、0 なら最上位のキー1つにつき1行にする。省略時は 1 |\n\nReturns\n- 成功時: 1\n- 失敗時: 0\n\nDescription\nハッシュを TOML にしてファイルに書き込む。ファイルが既にあれば上書きする。FOPEN で開いておく必要はない。\n\n値の対応と整形の形は DUMPTOML と同じ。\n\n書き込んだファイルは FREADTOML で読み戻せる。\n\nディレクトリは作らない。存在しないディレクトリの中には書き込めない。\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数が足りない | W0008 | 8 |\n| path が文字列でない | W0009 | 9 |\n| charset が不正 | W0012 / W0009 | 12 / 9 |\n| value がハッシュでない、配列の要素に空(VOID)がある | W0027(原因も出力する) | 27 |\n| ファイルを開けない | W0025 | 25 |\n| 文字コードを変換できない | W0027 | 27 |\n| 書き込みに失敗した | W0013 | 13 |\n\nExample\n_conf = IHASH()\n_conf[\"volume\"] = 80\n_conf[\"friends\"] = (\"うにゅう\", \"まゆら\")\n_conf[\"memo\"] = \"1行目\" + CHR(10) + \"2行目\"\n\nFWRITETOML(\"config.toml\", _conf)\n// config.toml:\n// friends = [\"うにゅう\", \"まゆら\"]\n// memo = \"\"\"\n// 1行目\n// 2行目\"\"\"\n// volume = 80\n\nCompatibility\n- YAYA: Tc602-5以降\n\nSee Also\n- DUMPTOML\n- FREADTOML\n- FWRITEJSON\n- FWRITEYAML",
|
|
14931
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITETOML/"
|
|
15013
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITETOML/",
|
|
15014
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FWRITETOML.md"
|
|
14932
15015
|
},
|
|
14933
15016
|
{
|
|
14934
15017
|
"id": "yaya:functions/FWRITEXML",
|
|
@@ -14936,7 +15019,8 @@
|
|
|
14936
15019
|
"source": "yaya_docs",
|
|
14937
15020
|
"category": "yaya_function",
|
|
14938
15021
|
"content": "FWRITEXML\nCategory: ファイル操作\n\nSignature\nFWRITEXML( path, element [, charset [, pretty]] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | 書き込むファイルのパス(yaya.dll からの相対パス、または絶対パス) |\n| element | ルート要素を表すハッシュ(FREADXML が返すのと同じ形) |\n| charset | ファイルの文字コード(省略可)。文字列(\"UTF-8\" \"Shift_JIS\" など)または数値で指定する。省略時、または空文字列のときは UTF-8(BOM なし) |\n| pretty | 1 なら改行とインデントを入れて整形する。省略時は 1(整形する) |\n\nReturns\n- 成功時: 1\n- 失敗時: 0\n\nDescription\n要素のハッシュを XML にしてファイルに書き込む。ファイルが既にあれば上書きする。FOPEN で開いておく必要はない。\n\n要素のハッシュの形、エスケープ、整形の形は DUMPXML と同じ。先頭には charset に合わせた XML 宣言を付ける。\n\n| charset | XML 宣言の encoding |\n|---------|------|\n| UTF-8(省略時) | UTF-8 |\n| Shift_JIS | Shift_JIS |\n| EUC-JP | EUC-JP |\n| ISO-2022-JP | ISO-2022-JP |\n| BIG5 | Big5 |\n| GB2312 | GB2312 |\n| EUC-KR | EUC-KR |\n| default(OS の文字コード) | OS のコードページから決める(932 なら Shift_JIS) |\n\n書き込んだファイルは、XML 宣言の encoding を見るので、FREADXML で charset を指定せずに読み戻せる。\n\nディレクトリは作らない。存在しないディレクトリの中には書き込めない。\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数が足りない | W0008 | 8 |\n| path が文字列でない | W0009 | 9 |\n| charset が不正 | W0012 / W0009 | 12 / 9 |\n| 要素のハッシュが不正(DUMPXML を参照) | W0027 | 27 |\n| ファイルを開けない | W0025 | 25 |\n| 書き込みに失敗した | W0013 | 13 |\n\nExample\n_x = FREADXML(\"shop.xml\")\n_x[\"children\"][0][\"text\"] = \"みかん\"\n\nFWRITEXML(\"shop.xml\", _x, \"Shift_JIS\")\n// shop.xml:\n// <?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n// <shop name=\"A\">\n// <item id=\"1\">みかん</item>\n// <item id=\"2\">バナナ</item>\n// </shop>\n\nCompatibility\n- YAYA: Tc602-1以降\n\nSee Also\n- DUMPXML\n- FREADXML\n- FWRITEJSON",
|
|
14939
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITEXML/"
|
|
15022
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITEXML/",
|
|
15023
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FWRITEXML.md"
|
|
14940
15024
|
},
|
|
14941
15025
|
{
|
|
14942
15026
|
"id": "yaya:functions/FWRITEYAML",
|
|
@@ -14944,7 +15028,8 @@
|
|
|
14944
15028
|
"source": "yaya_docs",
|
|
14945
15029
|
"category": "yaya_function",
|
|
14946
15030
|
"content": "FWRITEYAML\nCategory: ファイル操作\n\nSignature\nFWRITEYAML( path, value [, charset [, pretty]] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | 書き込むファイルのパス(yaya.dll からの相対パス、または絶対パス) |\n| value | YAML にする値。ハッシュや配列(入れ子を含む)も1つの引数として渡せる |\n| charset | ファイルの文字コード(省略可)。文字列(\"UTF-8\" \"Shift_JIS\" など)または数値で指定する。省略時、または空文字列のときは UTF-8(BOM なし) |\n| pretty | 1 ならブロック形式、0 ならフロー形式の1行にする。省略時は 1 |\n\nReturns\n- 成功時: 1\n- 失敗時: 0\n\nDescription\n値を YAML にしてファイルに書き込む。ファイルが既にあれば上書きする。FOPEN で開いておく必要はない。\n\n値の対応と整形の形は DUMPYAML と同じ。ブロック形式のときはファイルの末尾に改行(LF)を付ける。\n\n書き込んだファイルは FREADYAML で読み戻せる(UTF-8 以外で書いたときは同じ charset を指定する)。\n\nディレクトリは作らない。存在しないディレクトリの中には書き込めない。\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数が足りない | W0008 | 8 |\n| path が文字列でない | W0009 | 9 |\n| charset が不正 | W0012 / W0009 | 12 / 9 |\n| ファイルを開けない | W0025 | 25 |\n| 文字コードを変換できない | W0027 | 27 |\n| 書き込みに失敗した | W0013 | 13 |\n\nExample\n_conf = IHASH()\n_conf[\"volume\"] = 80\n_conf[\"friends\"] = (\"うにゅう\", \"まゆら\")\n_conf[\"memo\"] = \"1行目\" + CHR(10) + \"2行目\"\n\nFWRITEYAML(\"config.yaml\", _conf)\n// config.yaml:\n// friends:\n// - うにゅう\n// - まゆら\n// memo: |-\n// 1行目\n// 2行目\n// volume: 80\n\nFWRITEYAML(\"config.flow.yaml\", _conf, \"\", 0)\n// {friends: [うにゅう, まゆら], memo: \"1行目\\n2行目\", volume: 80}\n\nCompatibility\n- YAYA: Tc602-5以降\n\nSee Also\n- DUMPYAML\n- FREADYAML\n- FWRITEJSON\n- FWRITETOML",
|
|
14947
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITEYAML/"
|
|
15031
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/FWRITEYAML/",
|
|
15032
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/FWRITEYAML.md"
|
|
14948
15033
|
},
|
|
14949
15034
|
{
|
|
14950
15035
|
"id": "yaya:functions/GETCALLSTACK",
|
|
@@ -14952,7 +15037,8 @@
|
|
|
14952
15037
|
"source": "yaya_docs",
|
|
14953
15038
|
"category": "yaya_function",
|
|
14954
15039
|
"content": "GETCALLSTACK\nCategory: デバッグ\n\nSignature\nGETCALLSTACK\nGETCALLSTACK()\n\nParameters\nなし\n\nReturns\nコールスタックの汎用配列。各要素はユーザー定義関数の関数名(文字列)。\n\nDescription\nユーザー定義関数の呼び出し履歴(コールスタック)を取得する関数。各要素が関数名を表す汎用配列として返される。\n\nCompatibility\nYAYAの初期バージョンから使用可能。",
|
|
14955
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETCALLSTACK/"
|
|
15040
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETCALLSTACK/",
|
|
15041
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETCALLSTACK.md"
|
|
14956
15042
|
},
|
|
14957
15043
|
{
|
|
14958
15044
|
"id": "yaya:functions/GETDELIM",
|
|
@@ -14960,7 +15046,8 @@
|
|
|
14960
15046
|
"source": "yaya_docs",
|
|
14961
15047
|
"category": "yaya_function",
|
|
14962
15048
|
"content": "GETDELIM\nCategory: 配列操作\n\nSignature\nGETDELIM( var )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| var | デリミタを調べたい単純配列変数 |\n\nReturns\n指定した変数に設定されているデリミタ文字列。\n\nDescription\n変数に設定されているデリミタ(単純配列の区切り文字)を取得する関数。デフォルトのデリミタはカンマ(,)。\n\nSETDELIMで変更されたデリミタを確認するために使用する。\n\nCompatibility\n- YAYA: 初期バージョンから使用可能\n- AYA: バージョン5.8以降\n\nSee Also\n- SETDELIM",
|
|
14963
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETDELIM/"
|
|
15049
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETDELIM/",
|
|
15050
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETDELIM.md"
|
|
14964
15051
|
},
|
|
14965
15052
|
{
|
|
14966
15053
|
"id": "yaya:functions/GETENV",
|
|
@@ -14968,7 +15055,8 @@
|
|
|
14968
15055
|
"source": "yaya_docs",
|
|
14969
15056
|
"category": "yaya_function",
|
|
14970
15057
|
"content": "GETENV\nCategory: システム情報\n\nSignature\nGETENV( [name] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| name | 取得したい環境変数名(文字列) |\n\nReturns\n- 成功: 環境変数の内容(文字列)\n- 失敗: 空文字列\n\nDescription\nOSの環境変数を名前で取得する関数。指定した環境変数が存在しない場合は空文字列を返す。\n\nなお、環境変数の設定関数は不用意に触ると危険なため、現状実装予定はない。\n\nCompatibility\nTc552-1以降",
|
|
14971
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETENV/"
|
|
15058
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETENV/",
|
|
15059
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETENV.md"
|
|
14972
15060
|
},
|
|
14973
15061
|
{
|
|
14974
15062
|
"id": "yaya:functions/GETERRORLOG",
|
|
@@ -14976,7 +15064,8 @@
|
|
|
14976
15064
|
"source": "yaya_docs",
|
|
14977
15065
|
"category": "yaya_function",
|
|
14978
15066
|
"content": "GETERRORLOG\nCategory: デバッグ\n\nSignature\nGETERRORLOG()\n\nParameters\nなし\n\nReturns\nエラーログの文字列配列(最大20件、新しいものから順)\n\nDescription\nYAYA内部で発生したエラーや警告を含む配列を取得する関数。ログのフォーマットはデバッグツール「Tama」やエラーログ出力機能の出力と同じ形式。\n\n辞書エラーにより緊急ロードが発動した場合でも、緊急機能が動作する前に保持していたエラーログが維持されるため、異常時のエラー出力が可能。\n\nExample\n// エラーログをパースしてファイル名・行番号・エラー種別・エラーコード・メッセージに分割する例\n_logs = GETERRORLOG()\nforeach _logs ; _log\n _log = RE_REPLACE(_log, '(\\[.+?\\])\\s', '$1\\t')\n _parts = SPLIT(_log, '\\t')\n _filename = _parts[0]\n _lineno = _parts[1]\n _type = _parts[2]\n _code = _parts[3]\n _message = _parts[4]\nendforeach\n\nCompatibility\nTc555-1以降\n\nSee Also\n- CLEARERRORLOG\n- 基礎設定",
|
|
14979
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETERRORLOG/"
|
|
15067
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETERRORLOG/",
|
|
15068
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETERRORLOG.md"
|
|
14980
15069
|
},
|
|
14981
15070
|
{
|
|
14982
15071
|
"id": "yaya:functions/GETFUNCINFO",
|
|
@@ -14984,7 +15073,8 @@
|
|
|
14984
15073
|
"source": "yaya_docs",
|
|
14985
15074
|
"category": "yaya_function",
|
|
14986
15075
|
"content": "GETFUNCINFO\nCategory: メタ操作・特殊関数\n\nSignature\nGETFUNCINFO( name )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| name | 情報を取得したい関数名(必須) |\n\nReturns\n- 成功: 汎用配列\n - インデックス0: 関数が定義されているファイルのフルパス\n - インデックス1: 開始行番号\n - インデックス2: 終了行番号\n- 失敗: -1\n\nDescription\n現在読み込んでいる辞書の(ユーザー)関数の情報を取得する関数。\n\n関数が定義されているファイルのパスと、その開始・終了行番号を取得できる。デバッグ用途で、ある関数がどのファイルのどこに定義されているかを動的に調べる際に有用。\n\nExample\n// デバッグモード時に関数の定義位置を表示する例(Taromati2より)\nif _debug_mode\n _info = GETFUNCINFO('MyFunction')\n if _info != -1\n \"定義ファイル: %(_info[0])\"\n \"開始行: %(_info[1])\"\n endif\nendif\n\nCompatibility\nYAYA: Tc558-1以降\n\nSee Also\n- GETFUNCLIST",
|
|
14987
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETFUNCINFO/"
|
|
15076
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETFUNCINFO/",
|
|
15077
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETFUNCINFO.md"
|
|
14988
15078
|
},
|
|
14989
15079
|
{
|
|
14990
15080
|
"id": "yaya:functions/GETFUNCLIST",
|
|
@@ -14992,7 +15082,8 @@
|
|
|
14992
15082
|
"source": "yaya_docs",
|
|
14993
15083
|
"category": "yaya_function",
|
|
14994
15084
|
"content": "GETFUNCLIST\nCategory: メタ操作・特殊関数\n\nSignature\nGETFUNCLIST( [prefix] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| prefix | (省略可)この文字列で始まる関数名のみを返す。省略した場合はすべての関数を返す |\n\nReturns\n- 成功: 関数名の汎用配列\n- 失敗: IARRAY\n\nDescription\n現在読み込んでいる辞書の関数一覧を返す関数。\n\nprefixを指定すると、その文字列で始まる関数名のみがフィルタリングされて返される。省略した場合はすべての関数が返される。\n\nExample\n// すべての関数を列挙する例\n_funclist = GETFUNCLIST()\nforeach _funclist ; _func\n \"%(\\_func)\"\nendforeach\n\n// \"On\"で始まる関数のみを取得する例\n_on_funcs = GETFUNCLIST('On')\n\n// RE_GREPで特定パターンの関数をフィルタリングする例\n_all = GETFUNCLIST()\n_filtered = RE_GREP(_all, '^On.*Event$')\n\nCompatibility\nYAYAの初期バージョンから使用可能\n\nSee Also\n- GETVARLIST\n- GETSYSTEMFUNCLIST",
|
|
14995
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETFUNCLIST/"
|
|
15085
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETFUNCLIST/",
|
|
15086
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETFUNCLIST.md"
|
|
14996
15087
|
},
|
|
14997
15088
|
{
|
|
14998
15089
|
"id": "yaya:functions/GETLASTERROR",
|
|
@@ -15000,7 +15091,8 @@
|
|
|
15000
15091
|
"source": "yaya_docs",
|
|
15001
15092
|
"category": "yaya_function",
|
|
15002
15093
|
"content": "GETLASTERROR\nCategory: デバッグ\n\nSignature\nGETLASTERROR\nGETLASTERROR()\n\nParameters\nなし\n\nReturns\n直近のシステム関数呼び出しのエラーコード(整数)。エラーがない場合は0。\n\nDescription\n直近に実行したシステム関数呼び出しのエラーコードを返す関数。\n\nError Codes\n| コード | 意味 |\n|--------|------|\n| 0 | エラーなし |\n| 8 | 引数が不足している |\n| 9 | 引数の値が不正 |\n| 10 | 空文字列は処理できない |\n| 11 | 結果を格納できる変数がない |\n| 12 | 範囲外または不正な値 |\n| 13 | 処理が失敗した |\n| 14 | 外部ライブラリが読み込まれていない |\n| 15 | ファイルが開かれていない |\n| 16 | 正規表現の構文エラーまたは複雑すぎる |\n| 17 | 正規表現処理中の未定義エラー |\n| 18 | 変数が期待される箇所に非変数の引数が渡された |\n\nExample\nSETLASTERROR(0)\n// システム関数を呼び出す\nif !GETLASTERROR {\n \"エラーが発生しました。\"\n}\n\nCompatibility\n- YAYA: 初期バージョンから使用可能\n- AYA: バージョン5.8以降\n\nSee Also\n- SETLASTERROR",
|
|
15003
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETLASTERROR/"
|
|
15094
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETLASTERROR/",
|
|
15095
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETLASTERROR.md"
|
|
15004
15096
|
},
|
|
15005
15097
|
{
|
|
15006
15098
|
"id": "yaya:functions/GETMEMINFO",
|
|
@@ -15008,7 +15100,8 @@
|
|
|
15008
15100
|
"source": "yaya_docs",
|
|
15009
15101
|
"category": "yaya_function",
|
|
15010
15102
|
"content": "GETMEMINFO\nCategory: システム情報\n\nSignature\nGETMEMINFO()\n\nParameters\nなし(引数はありません)\n\nReturns\n動作環境のメモリ情報を格納した汎用配列(5要素):\n\n| インデックス | 内容 |\n|------------|------|\n| 0 | 物理メモリ使用率 |\n| 1 | 物理メモリ総量 |\n| 2 | 物理メモリ空き容量 |\n| 3 | 仮想メモリ+物理メモリの総量 |\n| 4 | 仮想メモリ+物理メモリの空き容量 |\n\nDescription\n動作環境のメモリ情報を取得する関数。\n\nCompatibility\n- YAYA: 初期バージョンから使用可能\n- AYA: バージョン5.8以降",
|
|
15011
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETMEMINFO/"
|
|
15103
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETMEMINFO/",
|
|
15104
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETMEMINFO.md"
|
|
15012
15105
|
},
|
|
15013
15106
|
{
|
|
15014
15107
|
"id": "yaya:functions/GETSECCOUNT",
|
|
@@ -15016,7 +15109,8 @@
|
|
|
15016
15109
|
"source": "yaya_docs",
|
|
15017
15110
|
"category": "yaya_function",
|
|
15018
15111
|
"content": "GETSECCOUNT\nCategory: システム情報\n\nSignature\nGETSECCOUNT( [yyyy|datetext [, mm [, dd [, wd [, HH [, MM [, SS]]]]]]] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| yyyy | 西暦年(4桁) |\n| mm | 月(1〜12) |\n| dd | 日 |\n| wd | 曜日(0を指定。どんな値でも無視される) |\n| HH | 時 |\n| MM | 分 |\n| SS | 秒 |\n| datetext | 代替指定: 'Sun, 06 Nov 1994 08:49:37 GMT' 形式の日付文字列 |\n\nReturns\nEPOCH(1970/1/1 00:00:00 UTC)から指定日時(または現在日時)までの経過秒数(数値)\n\nDescription\nEPOCHから現在時刻または指定日時までの経過秒数を返す関数。C言語のtime()関数に相当する。\n\n- 引数をすべて省略した場合は現在時刻を使用する\n- 一部を省略した場合、省略した値は現在時刻の値で補完される\n- 値は通常の日付範囲外でもよい(例: 月に13を指定すると翌年の1月になる)\n- 日付文字列にタイムゾーン情報が含まれている場合はそれをパースする\n\nExample\n// 2006年14月25日 15:56:40 のEPOCH秒を取得し、GETTIMEで日付に変換する例\n// (月14 = 翌年2月)\n_array = GETTIME(GETSECCOUNT(2006, 14, 25, 0, 15, 56, 40))\n\"%(\\_array[1])月%(\\_array[2])日\"\n// 結果: \"2007年2月25日\" のように表示される\n\nCompatibility\nYAYAの初期バージョンから使用可能\n\nSee Also\n- GETTIME",
|
|
15019
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETSECCOUNT/"
|
|
15112
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETSECCOUNT/",
|
|
15113
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETSECCOUNT.md"
|
|
15020
15114
|
},
|
|
15021
15115
|
{
|
|
15022
15116
|
"id": "yaya:functions/GETSETTING",
|
|
@@ -15024,7 +15118,8 @@
|
|
|
15024
15118
|
"source": "yaya_docs",
|
|
15025
15119
|
"category": "yaya_function",
|
|
15026
15120
|
"content": "GETSETTING\nCategory: メタ操作・特殊関数\n\nSignature\nGETSETTING( string )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 取得したい情報の識別子(後述の文字列または基礎設定のエントリ名) |\n\nReturns\n- 成功: 要求した情報(文字列)\n- 失敗: 空文字列\n\nDescription\n動作中の文に設定されている情報を返す関数。\n\nstringには以下の識別子(文字列)または後方互換のための数値(0〜4)を指定できる。また、基礎設定のエントリ名を指定することも可能。\n\nInformation Types\n| 識別子 | 旧数値 | 取得されるデータ | 例 |\n|--------|--------|----------------|-----|\n| coreinfo.version | 0 | YAYAのバージョン番号 | \"Tc522-1\" |\n| (数値1) | 1 | 現在の文字コードID | 0 |\n| coreinfo.path | 2 | ディレクトリの絶対パス | \"c:\\hogehoge\\\" |\n| coreinfo.name | 3 | DLL名 | \"YAYA\" |\n| coreinfo.author | 4 | DLL作者 | \"umeici/The Maintenance Shop\" |\n| coreinfo.savefile | — | セーブファイルのパス | \"d:/ghost/konno_yayame/...\" |\n| coreinfo.mode | — | 実行モード | \"normal\" または \"emergency\" |\n\nCompatibility\n- YAYA: 初期バージョンから使用可能。coreinfo.modeはTc556-2で追加\n- AYA: バージョン5.8以降(数値引数0〜4のみ対応)\n\nSee Also\n- SETSETTING\n- 基礎設定",
|
|
15027
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETSETTING/"
|
|
15121
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETSETTING/",
|
|
15122
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETSETTING.md"
|
|
15028
15123
|
},
|
|
15029
15124
|
{
|
|
15030
15125
|
"id": "yaya:functions/GETSTRBYTES",
|
|
@@ -15032,7 +15127,8 @@
|
|
|
15032
15127
|
"source": "yaya_docs",
|
|
15033
15128
|
"category": "yaya_function",
|
|
15034
15129
|
"content": "GETSTRBYTES\nCategory: 文字列操作\n\nSignature\nGETSTRBYTES( string [ , code ] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | バイト数を計算する対象の文字列 |\n| code | 文字コードID(省略時は0)。エンコードを指定してバイト数を計算する |\n\nReturns\n- 成功時: 文字列を格納するのに必要なバイト数(整数)\n- 失敗時: 0\n\nDescription\n「文字列を格納するのに必要なバイト数」を計算する関数。文字エンコードごとのメモリ使用量を調べることができる。\n\nCompatibility\n- YAYA: 初期から利用可能\n- AYA: 5.8以降\n\nSee Also\n- GETSETTING\n- GETSYSTEMFUNCLIST",
|
|
15035
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETSTRBYTES/"
|
|
15130
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETSTRBYTES/",
|
|
15131
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETSTRBYTES.md"
|
|
15036
15132
|
},
|
|
15037
15133
|
{
|
|
15038
15134
|
"id": "yaya:functions/GETSYSTEMFUNCLIST",
|
|
@@ -15040,7 +15136,8 @@
|
|
|
15040
15136
|
"source": "yaya_docs",
|
|
15041
15137
|
"category": "yaya_function",
|
|
15042
15138
|
"content": "GETSYSTEMFUNCLIST\nCategory: メタ操作・特殊関数\n\nSignature\nGETSYSTEMFUNCLIST( [ prefix ] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| prefix | (省略可)指定した文字列で始まるシステム関数名のみを返す。省略時は全システム関数を返す |\n\nReturns\n- 成功時: システム関数名の汎用配列\n- 失敗時: IARRAY\n\nDescription\nシステム関数のリストを返す。prefix を指定すると、その文字列で始まるシステム関数名のみが返される。省略した場合は全システム関数のリストが返される。\n\nCompatibility\n- YAYA: Tc557-1以降\n\nSee Also\n- GETVARLIST\n- GETFUNCLIST",
|
|
15043
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETSYSTEMFUNCLIST/"
|
|
15139
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETSYSTEMFUNCLIST/",
|
|
15140
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETSYSTEMFUNCLIST.md"
|
|
15044
15141
|
},
|
|
15045
15142
|
{
|
|
15046
15143
|
"id": "yaya:functions/GETTICKCOUNT",
|
|
@@ -15048,7 +15145,8 @@
|
|
|
15048
15145
|
"source": "yaya_docs",
|
|
15049
15146
|
"category": "yaya_function",
|
|
15050
15147
|
"content": "GETTICKCOUNT\nCategory: システム情報\n\nSignature\nGETTICKCOUNT( [ flag ] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| flag | 現在は実質的な意味を持たない。歴史的には0以外の値を指定すると GetTickCount() >> 31 の第32ビット値を返し、長時間計測に使われていた |\n\nReturns\nOSが起動してからの経過時間(ミリ秒単位)\n\nDescription\nOSが起動してからの経過時間をミリ秒単位で返す。\n\nWindows XP以前では約24日20時間で0にリセットされる。Vista以降や他のOSではその制約はない。\n\nCompatibility\n- YAYA: 初期から利用可能\n- AYA 5.8: 利用可能\n\nSee Also\n- GETTIME\n- GETSYSTEMFUNCLIST",
|
|
15051
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETTICKCOUNT/"
|
|
15148
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETTICKCOUNT/",
|
|
15149
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETTICKCOUNT.md"
|
|
15052
15150
|
},
|
|
15053
15151
|
{
|
|
15054
15152
|
"id": "yaya:functions/GETTIME",
|
|
@@ -15056,7 +15154,8 @@
|
|
|
15056
15154
|
"source": "yaya_docs",
|
|
15057
15155
|
"category": "yaya_function",
|
|
15058
15156
|
"content": "GETTIME\nCategory: システム情報\n\nSignature\nGETTIME( [ sec ] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| sec | (省略可)EPOCH(1970年1月1日 00:00:00 UTC)からの経過秒数(整数)。省略時は現在のシステム時刻を返す |\n\nReturns\n以下の構造を持つ汎用配列:\n\n| インデックス | 値 | 詳細 |\n|------------|---|------|\n| 0 | 年 | 西暦 |\n| 1 | 月 | 月 |\n| 2 | 日 | 日 |\n| 3 | 曜日 | 0〜6(0=日曜日) |\n| 4 | 時 | 24時間表記 |\n| 5 | 分 | 分 |\n| 6 | 秒 | 秒 |\n| 7 | 年内経過日数 | 年始からの経過日数 |\n| 8 | 夏時間フラグ | 0=標準時 / 1=夏時間 |\n\nDescription\n現在の日付・時刻情報を取得する。C言語の localtime 関数と同等の動作をする。\n\nsec を指定した場合はその秒数をEPOCHからの経過時間として解釈し、対応する日時情報を返す。GETSECCOUNTと組み合わせることで、例えば10日後の日付を計算するといった用途に使える。\n\nCompatibility\n- YAYA: 初期から利用可能\n - Tc542-1以降: 年内経過日数(インデックス7)と夏時間フラグ(インデックス8)が追加\n- AYA 5.8: 引数なしのみサポート\n\nSee Also\n- GETSECCOUNT\n- GETTICKCOUNT\n- GETTYPE",
|
|
15059
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETTIME/"
|
|
15157
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETTIME/",
|
|
15158
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETTIME.md"
|
|
15060
15159
|
},
|
|
15061
15160
|
{
|
|
15062
15161
|
"id": "yaya:functions/GETTYPE",
|
|
@@ -15064,7 +15163,8 @@
|
|
|
15064
15163
|
"source": "yaya_docs",
|
|
15065
15164
|
"category": "yaya_function",
|
|
15066
15165
|
"content": "GETTYPE\nCategory: 型取得/変換\n\nSignature\nGETTYPE( var )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| var | 型を調べる値・変数・式 |\n\nReturns\n- 0: 内部エラー(失敗)\n- 1: 整数\n- 2: 浮動小数点数\n- 3: 文字列\n- 4: 汎用配列\n- 5: ハッシュ(Tc600-3以降)\n\nDescription\n指定した値のデータ型を取得する。\n\n「要素数1の汎用配列は、その最初の(唯一の)要素の型を返します」という後方互換性のための動作がある。要素数1の汎用配列の型を正確に調べたい場合は GETTYPEEX を使用することが推奨される。\n\nCompatibility\n- YAYA: 初期から利用可能\n- AYA: 5.8以降\n- Tc600-3: ハッシュのとき 5 を返すようになった\n\nSee Also\n- GETTYPEEX\n- IHASH",
|
|
15067
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETTYPE/"
|
|
15166
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETTYPE/",
|
|
15167
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETTYPE.md"
|
|
15068
15168
|
},
|
|
15069
15169
|
{
|
|
15070
15170
|
"id": "yaya:functions/GETTYPEEX",
|
|
@@ -15072,7 +15172,8 @@
|
|
|
15072
15172
|
"source": "yaya_docs",
|
|
15073
15173
|
"category": "yaya_function",
|
|
15074
15174
|
"content": "GETTYPEEX\nCategory: 型取得/変換\n\nSignature\nGETTYPEEX( var )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| var | 型を調べる変数の名前(文字列として渡す) |\n\nReturns\n- 0: 内部エラー(失敗)\n- 1: 整数\n- 2: 実数\n- 3: 文字列\n- 4: 汎用配列\n- 5: ハッシュ(Tc600-3以降)\n\nDescription\n指定した変数のデータ型を取得する。GETTYPE との主な違いは、引数に変数そのものではなく変数名を文字列として渡す点にある。\n\n要素数1の汎用配列についても正確に型を返すため、GETTYPE では後方互換動作により正しく判定できないケースでこちらを使用する。\n\nCompatibility\n- YAYA: Tc537-3以降\n- Tc600-3: ハッシュのとき 5 を返すようになった\n\nSee Also\n- GETTYPE\n- GETVARLIST",
|
|
15075
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETTYPEEX/"
|
|
15175
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETTYPEEX/",
|
|
15176
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETTYPEEX.md"
|
|
15076
15177
|
},
|
|
15077
15178
|
{
|
|
15078
15179
|
"id": "yaya:functions/GETVARLIST",
|
|
@@ -15080,7 +15181,8 @@
|
|
|
15080
15181
|
"source": "yaya_docs",
|
|
15081
15182
|
"category": "yaya_function",
|
|
15082
15183
|
"content": "GETVARLIST\nCategory: メタ操作・特殊関数\n\nSignature\nGETVARLIST( [ prefix ] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| prefix | (省略可)指定した文字列で始まる変数名のみを返す。省略時は全変数を返す |\n\nReturns\n- 成功時: 変数名の汎用配列\n- 失敗時: IARRAY\n\nDescription\n現在保持している変数のリストを返す。prefix を指定すると、その文字列で始まる変数名のみが返される。\n\nExample\n// 指定したプレフィックスを持つ全変数を削除する関数\nERASEALLVARBEGINAS\n{\n _prefix = _argv[0]\n _varlist = GETVARLIST(_prefix)\n foreach _varlist ; _v\n {\n ERASEVAR(_v)\n }\n}\n\n// 正規表現にマッチする全変数を削除する関数\nERASEALLVARINRE\n{\n _varlist = GETVARLIST\n foreach _varlist ; _v\n {\n if RE_MATCH(_v, _argv[0])\n {\n ERASEVAR(_v)\n }\n }\n}\n\nCompatibility\n- YAYA: 初期から利用可能\n\nSee Also\n- GETFUNCLIST",
|
|
15083
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETVARLIST/"
|
|
15184
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/GETVARLIST/",
|
|
15185
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/GETVARLIST.md"
|
|
15084
15186
|
},
|
|
15085
15187
|
{
|
|
15086
15188
|
"id": "yaya:functions/HAN2ZEN",
|
|
@@ -15088,7 +15190,8 @@
|
|
|
15088
15190
|
"source": "yaya_docs",
|
|
15089
15191
|
"category": "yaya_function",
|
|
15090
15192
|
"content": "HAN2ZEN\nCategory: 文字列操作\n\nSignature\nHAN2ZEN( src [ , type ] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| src | 変換対象の文字列 |\n| type | (省略可)変換する文字種をカンマ区切りで指定。省略時は全種類を変換する |\n\ntype に指定できる値:\n| 値 | 対象 |\n|----|------|\n| number | 数字(0〜9) |\n| alphabet | アルファベット |\n| symbol | 記号など |\n| kana | カタカナ・句読点等 |\n\nReturns\n- 成功時: 変換後の文字列\n- 失敗時: VOID\n\nDescription\n文字列内の半角英文字・数字・カタカナを全角に変換する。type で変換対象の文字種を絞り込むことができる。\n\nExample\n_result = HAN2ZEN('2007ABC', 'number,alphabet')\n// 結果: \"2007ABC\"\n\nCompatibility\n- YAYA: TC513-901以降\n\nSee Also\n- ZEN2HAN\n- TRANSLATE",
|
|
15091
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HAN2ZEN/"
|
|
15193
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HAN2ZEN/",
|
|
15194
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/HAN2ZEN.md"
|
|
15092
15195
|
},
|
|
15093
15196
|
{
|
|
15094
15197
|
"id": "yaya:functions/HASH_EXIST",
|
|
@@ -15096,7 +15199,8 @@
|
|
|
15096
15199
|
"source": "yaya_docs",
|
|
15097
15200
|
"category": "yaya_function",
|
|
15098
15201
|
"content": "HASH_EXIST\nCategory: ハッシュ操作\n\nSignature\nHASH_EXIST( key, hash )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| key | 調べるキー |\n| hash | ハッシュ |\n\nReturns\n- 1: キーがある\n- 0: キーが無い\n\nDescription\nハッシュにキーがあるかどうかを返す。引数の順はキー、ハッシュの順(ASEARCH と同じ)なので注意。\n\nh[キー] はキーが無くても空文字列を返すので、「値が空文字列」と「キーが無い」を区別したいときにこの関数を使う。\n\nキーの一致は ハッシュのキーの規則 に従う。key が配列やハッシュのときは警告 W0009 を出す。\n\nExample\n_h = IHASH(\"a\", \"\", 1, \"x\")\nHASH_EXIST(\"a\", _h) // 1\nHASH_EXIST(\"b\", _h) // 0\nHASH_EXIST(\"1\", _h) // 1 (1 と \"1\" は同じキー)\n\nCompatibility\n- YAYA: Tc600-3以降\n\nSee Also\n- HASH_KEYS\n- HASH_SIZE\n- IHASH",
|
|
15099
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HASH_EXIST/"
|
|
15202
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HASH_EXIST/",
|
|
15203
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/HASH_EXIST.md"
|
|
15100
15204
|
},
|
|
15101
15205
|
{
|
|
15102
15206
|
"id": "yaya:functions/HASH_KEYS",
|
|
@@ -15104,7 +15208,8 @@
|
|
|
15104
15208
|
"source": "yaya_docs",
|
|
15105
15209
|
"category": "yaya_function",
|
|
15106
15210
|
"content": "HASH_KEYS\nCategory: ハッシュ操作\n\nSignature\nHASH_KEYS( hash )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| hash | ハッシュ |\n\nReturns\nキーの汎用配列。キーの順に並ぶ。\n\nDescription\nハッシュのキーを汎用配列で返す。並びは挿入した順ではなく、キーの順(数値 < 文字列)になる。\n\n引数がハッシュでないときは警告 W0009 を出す。\n\nExample\n_h = IHASH(\"b\", 1, \"a\", 2, 10, 3, 9, 4)\nHASH_KEYS(_h) // 9,10,a,b\n\nCompatibility\n- YAYA: Tc600-3以降\n\nSee Also\n- HASH_VALUES\n- IHASH",
|
|
15107
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HASH_KEYS/"
|
|
15211
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HASH_KEYS/",
|
|
15212
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/HASH_KEYS.md"
|
|
15108
15213
|
},
|
|
15109
15214
|
{
|
|
15110
15215
|
"id": "yaya:functions/HASH_SIZE",
|
|
@@ -15112,7 +15217,8 @@
|
|
|
15112
15217
|
"source": "yaya_docs",
|
|
15113
15218
|
"category": "yaya_function",
|
|
15114
15219
|
"content": "HASH_SIZE\nCategory: ハッシュ操作\n\nSignature\nHASH_SIZE( hash )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| hash | ハッシュ |\n\nReturns\n要素数(整数)\n\nDescription\nハッシュの要素数を返す。\n\n引数がハッシュでないときは警告 W0009 を出す。\n\nExample\n_h = IHASH(\"a\", 1, \"b\", 2)\nHASH_SIZE(_h) // 2\n\nCompatibility\n- YAYA: Tc600-3以降\n\nSee Also\n- ARRAYSIZE\n- IHASH",
|
|
15115
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HASH_SIZE/"
|
|
15220
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HASH_SIZE/",
|
|
15221
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/HASH_SIZE.md"
|
|
15116
15222
|
},
|
|
15117
15223
|
{
|
|
15118
15224
|
"id": "yaya:functions/HASH_SPLIT",
|
|
@@ -15120,7 +15226,8 @@
|
|
|
15120
15226
|
"source": "yaya_docs",
|
|
15121
15227
|
"category": "yaya_function",
|
|
15122
15228
|
"content": "HASH_SPLIT\nCategory: ハッシュ操作\n\nSignature\nHASH_SPLIT( str, sep1, sep2 )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| str | 分割する文字列 |\n| sep1 | 要素の区切り |\n| sep2 | キーと値の区切り |\n\nReturns\nハッシュ\n\nDescription\n文字列を sep1 で要素に分け、各要素を sep2 でキーと値に分けてハッシュを作る。\n\n- 空の要素は飛ばす\n- sep2 を含まない要素は、キーだけの要素になる(値は VOID)\n- キーが空の要素(=x など)は捨てる\n- 最初の sep2 で分ける。d=4=5 はキー d、値 4=5 になる\n- sep1 か sep2 が空文字列のときは警告 W0010 を出し、空のハッシュを返す\n\nExample\n_h = HASH_SPLIT(\"a=1,b=2,,c,=x,d=4=5\", \",\", \"=\")\n// a=1,b=2,c=,d=4=5 (要素数 4)\n\nCompatibility\n- YAYA: Tc600-3以降\n\nSee Also\n- IHASH\n- SPLIT",
|
|
15123
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HASH_SPLIT/"
|
|
15229
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HASH_SPLIT/",
|
|
15230
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/HASH_SPLIT.md"
|
|
15124
15231
|
},
|
|
15125
15232
|
{
|
|
15126
15233
|
"id": "yaya:functions/HASH_VALUES",
|
|
@@ -15128,7 +15235,8 @@
|
|
|
15128
15235
|
"source": "yaya_docs",
|
|
15129
15236
|
"category": "yaya_function",
|
|
15130
15237
|
"content": "HASH_VALUES\nCategory: ハッシュ操作\n\nSignature\nHASH_VALUES( hash )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| hash | ハッシュ |\n\nReturns\n値の汎用配列。キーの順に並ぶ。\n\nDescription\nハッシュの値を汎用配列で返す。並びは HASH_KEYS と同じキーの順になる。\n\n値が配列のときは、その配列を1つの要素として含む(入れ子の配列になる)。そのため、戻り値の要素数はハッシュの要素数と同じになる。\n\n引数がハッシュでないときは警告 W0009 を出す。\n\nExample\n_h = IHASH(\"a\", 1)\n_h[\"b\"] = (1, 2)\n_v = HASH_VALUES(_h)\nARRAYSIZE(_v) // 2\n_v[1] // 配列 (1,2)\nTOSTR(_v) // \"1,1,2\"\n\nCompatibility\n- YAYA: Tc600-3以降\n\nSee Also\n- HASH_KEYS\n- IHASH\n- 値の入れ子と多次元代入",
|
|
15131
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HASH_VALUES/"
|
|
15238
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HASH_VALUES/",
|
|
15239
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/HASH_VALUES.md"
|
|
15132
15240
|
},
|
|
15133
15241
|
{
|
|
15134
15242
|
"id": "yaya:functions/HEXSTRTOI",
|
|
@@ -15136,7 +15244,8 @@
|
|
|
15136
15244
|
"source": "yaya_docs",
|
|
15137
15245
|
"category": "yaya_function",
|
|
15138
15246
|
"content": "HEXSTRTOI\nCategory: 文字列操作\n\nSignature\nHEXSTRTOI( string )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 変換対象の16進数値文字列 |\n\nReturns\n- 成功時: 変換後の数値(整数)\n- 失敗時: 0\n\nDescription\n16進数値文字列を整数へ変換する。先頭に 0x プレフィックスがある場合は無視する。\n\nExample\n_hex = '1E'\n_i = HEXSTRTOI( _hex )\n// _i は 30(16進数 1E = 10進数 30)\n\nCompatibility\n- YAYA: 初期から利用可能\n - Tc547-1以降: 先頭の 0x プレフィックスを処理可能\n- AYA: 5.8以降\n\nSee Also\n- BINSTRTOI\n- TOHEXSTR",
|
|
15139
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HEXSTRTOI/"
|
|
15247
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/HEXSTRTOI/",
|
|
15248
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/HEXSTRTOI.md"
|
|
15140
15249
|
},
|
|
15141
15250
|
{
|
|
15142
15251
|
"id": "yaya:functions/IARRAY",
|
|
@@ -15144,7 +15253,8 @@
|
|
|
15144
15253
|
"source": "yaya_docs",
|
|
15145
15254
|
"category": "yaya_function",
|
|
15146
15255
|
"content": "IARRAY\nCategory: 配列操作\n\nSignature\nIARRAY\nIARRAY()\n\nParameters\nなし\n\nReturns\n空の汎用配列\n\nDescription\n空の汎用配列を返す。\n\n主な用途は以下の2つ:\n\n1. 配列の初期化\n\n初期化せずに ,= で要素を追加すると、インデックス0に不要な空文字列要素が生成される。IARRAYで初期化することでこれを防ぐことができる。\n\n2. 要素の削除\n\n配列要素にIARRAYを代入することで、その要素を完全に削除し、後続の要素をシフトすることができる(空文字列を残さない)。\n\nExample\n// 初期化なしの場合(望ましくない結果)\n_myarray ,= \"hoge\"\n_myarray ,= \"hogehoge\"\n// 結果: (\"\",\"hoge\",\"hogehoge\")\n\n// IARRAYで初期化した場合\n_myarray = IARRAY\n_myarray ,= \"hoge\"\n_myarray ,= \"hogehoge\"\n// 結果: (\"hoge\",\"hogehoge\")\n\n// 要素の削除\n_myarray = (\"hoge\",\"hogehoge\")\n_myarray[0] = IARRAY\n// 結果: (\"hogehoge\") — 要素が削除されてシフト\n\nCompatibility\n- YAYA: 初期から利用可能\n- AYA: 5.8以降",
|
|
15147
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/IARRAY/"
|
|
15256
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/IARRAY/",
|
|
15257
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/IARRAY.md"
|
|
15148
15258
|
},
|
|
15149
15259
|
{
|
|
15150
15260
|
"id": "yaya:functions/IHASH",
|
|
@@ -15152,7 +15262,8 @@
|
|
|
15152
15262
|
"source": "yaya_docs",
|
|
15153
15263
|
"category": "yaya_function",
|
|
15154
15264
|
"content": "IHASH\nCategory: ハッシュ操作\n\nSignature\nIHASH( [key1, value1, key2, value2, ...] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| keyn | キー |\n| valuen | keyn に対応する値 |\n\nReturns\nハッシュ。引数が無ければ空のハッシュ。\n\nDescription\nキーと値を交互に並べてハッシュを作る。\n\n- 引数の汎用配列は、ほかの関数と同じく展開される。IHASH(\"x\", (1,2,3)) は IHASH(\"x\",1,2,3) と同じになり、x=1、2=3 の2要素になる。ハッシュの値に配列を入れたいときは、作ったあとで要素に代入する(_h[\"x\"] = (1,2,3))\n- 引数にハッシュを渡すと、展開されずにそのままキーや値になる(入れ子)\n- 引数の数が奇数のときは警告 W0020 を出し、最後のキーの値は VOID になる\n- 同じキーとみなされるものが2回以上出てきたときは、最初のキーと値が残る\n\nキーの一致と並び順の規則は ハッシュ を参照。\n\nExample\n_h = IHASH(\"name\", \"さくら\", \"age\", 16)\n_h[\"name\"] // \"さくら\"\n\n_e = IHASH() // 空のハッシュ\n_e[\"k\"] = (1, 2, 3) // 値に配列を入れる\n\nIHASH(9, \"i9\", \"9\", \"s9\") // 9 と \"9\" は同じキーなので 9=i9 だけ\n\nCompatibility\n- YAYA: Tc600-3以降\n\nSee Also\n- HASH_SPLIT\n- HASH_KEYS\n- HASH_VALUES\n- HASH_EXIST\n- HASH_SIZE\n- IARRAY",
|
|
15155
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/IHASH/"
|
|
15265
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/IHASH/",
|
|
15266
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/IHASH.md"
|
|
15156
15267
|
},
|
|
15157
15268
|
{
|
|
15158
15269
|
"id": "yaya:functions/INSERT",
|
|
@@ -15160,7 +15271,8 @@
|
|
|
15160
15271
|
"source": "yaya_docs",
|
|
15161
15272
|
"category": "yaya_function",
|
|
15162
15273
|
"content": "INSERT\nCategory: 文字列操作\n\nSignature\nINSERT( src , pos , insert )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| src | 挿入先の元の文字列 |\n| pos | 挿入位置(0=先頭) |\n| insert | 挿入する文字列 |\n\nReturns\n- 成功時: 挿入後の文字列\n- エラー時: VOID\n\nDescription\n文字列 src の pos で指定した位置に、文字列 insert を挿入する。位置0は文字列の先頭を表す。\n\nCompatibility\n- YAYA: 初期から利用可能\n- AYA: 5.8以降",
|
|
15163
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/INSERT/"
|
|
15274
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/INSERT/",
|
|
15275
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/INSERT.md"
|
|
15164
15276
|
},
|
|
15165
15277
|
{
|
|
15166
15278
|
"id": "yaya:functions/ISEVALUABLE",
|
|
@@ -15168,7 +15280,8 @@
|
|
|
15168
15280
|
"source": "yaya_docs",
|
|
15169
15281
|
"category": "yaya_function",
|
|
15170
15282
|
"content": "ISEVALUABLE\nCategory: メタ操作・特殊関数\n\nSignature\nISEVALUABLE( string )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | YAYAスクリプトとして実行する文字列 |\n\nReturns\n- 1: 文字列をEVALで評価・実行できる(構文的に正しい)\n- 0: 文字列を評価できない(検証失敗)\n\nDescription\n指定した文字列をYAYAスクリプトとしてEVAL関数で実行できるかどうかを検証する関数。\n\nEVALで任意の文字列を実行する前にこの関数で事前検証することで、不正なコード文字列による実行時エラーを防ぐことができる。\n\n文の並び(; や改行で区切った複数の文や、if/for などの制御文)も、EVALと同じ規則で判定して検証する(Tc574-6 / Tc602-9以降)。\n\nISEVALUABLE('1 + 2') // 1\nISEVALUABLE('_a = 1; if _a { 2 }') // 1\nISEVALUABLE('_a = 1; if { 2') // 0\n\nCompatibility\n- YAYA: Tc562-1以降\n- Tc574-6 / Tc602-9: EVALが文の並びを実行できるようになったのに合わせて、文の並びも検証できるようにした\n\nSee Also\n- EVAL\n- APPEND_RUNTIME_DIC",
|
|
15171
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ISEVALUABLE/"
|
|
15283
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ISEVALUABLE/",
|
|
15284
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ISEVALUABLE.md"
|
|
15172
15285
|
},
|
|
15173
15286
|
{
|
|
15174
15287
|
"id": "yaya:functions/ISFUNC",
|
|
@@ -15176,7 +15289,8 @@
|
|
|
15176
15289
|
"source": "yaya_docs",
|
|
15177
15290
|
"category": "yaya_function",
|
|
15178
15291
|
"content": "ISFUNC\nCategory: 型取得/変換\n\nSignature\nISFUNC( string )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 存在を確認する関数名(文字列) |\n\nReturns\n- 0: 関数が存在しない\n- 1: ユーザー定義関数が存在する\n- 2: システム関数が存在する\n\nDescription\n指定した名前の関数がシステム内に存在するかどうかを確認する。ユーザー定義関数かシステム関数かも区別して返す。\n\nExample\n// \"DebugMenu\" 関数が存在する場合のみデバッグメニューを追加\nif ( ISFUNC(\"DebugMenu\") )\n{\n AYATEMPLATE.MenuItem( \"【デバッグメニュー】\",\"DebugMenu\")\n}\n\nデバッグモードの状態確認と組み合わせて、デバッグ用関数の存在チェックをすることも可能。これにより、開発ツールを含まないゴースト配布版でも問題なく動作させることができる。\n\nCompatibility\n- YAYA: 初期から利用可能\n- AYA: 5.8以降\n\nSee Also\n- ISVAR",
|
|
15179
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ISFUNC/"
|
|
15292
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ISFUNC/",
|
|
15293
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ISFUNC.md"
|
|
15180
15294
|
},
|
|
15181
15295
|
{
|
|
15182
15296
|
"id": "yaya:functions/ISGLOBALDEFINE",
|
|
@@ -15184,7 +15298,8 @@
|
|
|
15184
15298
|
"source": "yaya_docs",
|
|
15185
15299
|
"category": "yaya_function",
|
|
15186
15300
|
"content": "ISGLOBALDEFINE\nCategory: メタ操作・特殊関数\n\nSignature\nISGLOBALDEFINE( define )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| define | #globaldefine で定義されているか確認する名前 |\n\nReturns\n- 1: 定義が存在する\n- 0: 定義が存在しない\n\nDescription\n#globaldefine ディレクティブで定義された名前が存在するかどうかを確認する。\n\nCompatibility\n- YAYA: Tc562-1以降\n\nSee Also\n- SETGLOBALDEFINE",
|
|
15187
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ISGLOBALDEFINE/"
|
|
15301
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ISGLOBALDEFINE/",
|
|
15302
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ISGLOBALDEFINE.md"
|
|
15188
15303
|
},
|
|
15189
15304
|
{
|
|
15190
15305
|
"id": "yaya:functions/ISINTSTR",
|
|
@@ -15192,7 +15307,8 @@
|
|
|
15192
15307
|
"source": "yaya_docs",
|
|
15193
15308
|
"category": "yaya_function",
|
|
15194
15309
|
"content": "ISINTSTR\nCategory: 文字列操作\n\nSignature\nISINTSTR( string )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 整数として解釈できるか検証する文字列 |\n\nReturns\n- 1: 文字列を整数として解釈できる\n- 0: 文字列を整数として解釈できない\n\nDescription\n指定した文字列が整数として解釈できるかどうかを検証する。ISREALSTRと対になる関数で、整数と浮動小数点数の文字列表現を区別するのに役立つ。\n\nCompatibility\n- YAYA: 初期から利用可能\n- AYA: 5.8以降\n\nSee Also\n- ISREALSTR",
|
|
15195
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ISINTSTR/"
|
|
15310
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ISINTSTR/",
|
|
15311
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ISINTSTR.md"
|
|
15196
15312
|
},
|
|
15197
15313
|
{
|
|
15198
15314
|
"id": "yaya:functions/ISREALSTR",
|
|
@@ -15200,7 +15316,8 @@
|
|
|
15200
15316
|
"source": "yaya_docs",
|
|
15201
15317
|
"category": "yaya_function",
|
|
15202
15318
|
"content": "ISREALSTR\nCategory: 文字列操作\n\nSignature\nISREALSTR(string)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 判定対象の文字列 |\n\nReturns\n- 1: 実数として解釈可能\n- 0: 実数として解釈不可能\n\nDescription\n与えられた文字列が実数として解釈可能かどうかを判定します。\n\nCompatibility\n- YAYA: 初期バージョンより使用可能\n- AYA: バージョン5.8以降で使用可能\n\nSee Also\n- ISINTSTR\n- ISVAR",
|
|
15203
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ISREALSTR/"
|
|
15319
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ISREALSTR/",
|
|
15320
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ISREALSTR.md"
|
|
15204
15321
|
},
|
|
15205
15322
|
{
|
|
15206
15323
|
"id": "yaya:functions/ISVAR",
|
|
@@ -15208,7 +15325,8 @@
|
|
|
15208
15325
|
"source": "yaya_docs",
|
|
15209
15326
|
"category": "yaya_function",
|
|
15210
15327
|
"content": "ISVAR\nCategory: 型取得/変換\n\nSignature\nISVAR(string)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 存在を確認する変数名の文字列 |\n\nReturns\n- 0: 変数が存在しない\n- 1: グローバル変数が存在する\n- 2: ローカル変数が存在する\n\nDescription\n指定した名前の変数が存在するかどうかを確認します。\n\nCompatibility\n- YAYA: 初期バージョンより使用可能\n- AYA: バージョン5.8以降で使用可能\n\nSee Also\n- ISFUNC",
|
|
15211
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ISVAR/"
|
|
15328
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ISVAR/",
|
|
15329
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ISVAR.md"
|
|
15212
15330
|
},
|
|
15213
15331
|
{
|
|
15214
15332
|
"id": "yaya:functions/LETTONAME",
|
|
@@ -15216,7 +15334,8 @@
|
|
|
15216
15334
|
"source": "yaya_docs",
|
|
15217
15335
|
"category": "yaya_function",
|
|
15218
15336
|
"content": "LETTONAME\nCategory: メタ操作・特殊関数\n\nSignature\nLETTONAME(name, val)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| name | 代入先の変数名を表す文字列 |\n| val | 代入する値 |\n\nReturns\nVOID(戻り値なし)\n\nDescription\nnameで指定された文字列の変数名に、valで指定された値を代入します。実行時に変数名を動的に決定して値を代入する際に使用します。\n\nExample\n// ループを使った動的変数代入\nfor _i = 0 ; _i < 5 ; _i ++ {\n LETTONAME('var' + _i , _i + 100)\n}\n// var0〜var4にそれぞれ100〜104が代入される\n\n// 配列の代入(正しい書き方)\nLETTONAME(_varname, ('abc', 12))\n\n// 配列変数を経由した代入(正しい書き方)\n_array = ('abc', 12)\nLETTONAME(_varname, _array)\n\n// 誤った書き方(最初の値しか代入されない)\nLETTONAME(_varname, 'abc', 12)\n\nCompatibility\n- YAYA: 初期バージョンより使用可能\n- AYA: バージョン5.8以降で使用可能\n\nSee Also\n- ISVAR",
|
|
15219
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LETTONAME/"
|
|
15337
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LETTONAME/",
|
|
15338
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LETTONAME.md"
|
|
15220
15339
|
},
|
|
15221
15340
|
{
|
|
15222
15341
|
"id": "yaya:functions/LICENSE",
|
|
@@ -15224,7 +15343,8 @@
|
|
|
15224
15343
|
"source": "yaya_docs",
|
|
15225
15344
|
"category": "yaya_function",
|
|
15226
15345
|
"content": "LICENSE\nCategory: メタ操作・特殊関数\n\nSignature\nLICENSE()\nLICENSE\n\nParameters\nなし\n\nReturns\nYAYAのライセンス文字列を格納した汎用配列。各エントリは改行で区切られる。\n\nDescription\nYAYAのライセンス文字列を返します。YAYA 本体に続けて、組み込んでいるライブラリ(MT19937、parson、TinyXML-2)のライセンス文も含みます。\n\nCompatibility\n- YAYA: Tc530-1以降で使用可能\n- Tc601-1: parson と TinyXML-2 のライセンス文を追加した\n\nSee Also\n- LETTONAME\n- LINT.GetFuncUsedBy",
|
|
15227
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LICENSE/"
|
|
15346
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LICENSE/",
|
|
15347
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LICENSE.md"
|
|
15228
15348
|
},
|
|
15229
15349
|
{
|
|
15230
15350
|
"id": "yaya:functions/LINT.GetFuncUsedBy",
|
|
@@ -15232,7 +15352,8 @@
|
|
|
15232
15352
|
"source": "yaya_docs",
|
|
15233
15353
|
"category": "yaya_function",
|
|
15234
15354
|
"content": "LINT.GetFuncUsedBy\nCategory: デバッグ\n\nSignature\nLINT.GetFuncUsedBy(function_name)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| function_name | 解析対象の関数名 |\n\nReturns\n- 成功: 指定関数内で使用されている関数名(ユーザー定義関数・システム関数両方)の汎用配列\n- 候補なし: 空の汎用配列\n- エラー: -1\n\nDescription\n指定した関数内で使用しているすべての関数名(ユーザー定義関数・システム関数を含む)を列挙し、汎用配列で返します。コードの依存関係解析や開発時の検査に使用するLint系ユーティリティ関数です。\n\n関数名は重複を除去し、名前順に並べて返されます。埋め込み式 %(式) を含む文字列があると、展開に内部的に使われる TOSTR も含まれます。制約の詳細は LINT系関数の仕様と制約 を参照してください。\n\nCompatibility\n- YAYA: Tc568-1以降で使用可能\n\nSee Also\n- LINT.GetUserDefFuncUsedBy\n- LINT.GetGlobalVarUsedBy\n- LINT.GetLocalVarUsedBy\n- LINT.GetGlobalVarLetted\n- LINT.GetLocalVarLetted\n- LINT.GetVarRefs",
|
|
15235
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetFuncUsedBy/"
|
|
15355
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetFuncUsedBy/",
|
|
15356
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LINT.GetFuncUsedBy.md"
|
|
15236
15357
|
},
|
|
15237
15358
|
{
|
|
15238
15359
|
"id": "yaya:functions/LINT.GetGlobalVarLetted",
|
|
@@ -15240,7 +15361,8 @@
|
|
|
15240
15361
|
"source": "yaya_docs",
|
|
15241
15362
|
"category": "yaya_function",
|
|
15242
15363
|
"content": "LINT.GetGlobalVarLetted\nCategory: デバッグ\n\nSignature\nLINT.GetGlobalVarLetted(function_name)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| function_name | 解析対象の関数名 |\n\nReturns\n- 成功: 指定関数内で代入されているグローバル変数名の汎用配列\n- 候補なし: 空の汎用配列\n- エラー: -1\n\nDescription\n指定した関数内でグローバル変数への代入(let)が行われている箇所を列挙し、汎用配列で返します。読み取りのみの箇所は列挙されません。読み取りも含めて列挙する場合は LINT.GetGlobalVarUsedBy を使用してください。\n\n変数名は重複を除去し、名前順に並べて返されます。\n\n以下も代入として列挙されます。\n- 複合代入(+= -= など)と ++ --\n- 配列要素への代入(G_a[0] = 1 は G_a)(Tc574-1以降)\n- foreach _list ; G_v のループ変数 G_v(Tc574-1以降)\n- foreach _list ; G_k, G_v の2つのループ変数 G_k G_v(Tc600-3以降)\n\n制約の詳細は LINT系関数の仕様と制約 を参照してください。\n\nCompatibility\n- YAYA: Tc568-1以降で使用可能\n- Tc574-1: 配列要素への代入と foreach のループ変数を列挙するように変更\n- Tc600-3: 2変数の foreach のループ変数を両方とも列挙\n\nSee Also\n- LINT.GetFuncUsedBy\n- LINT.GetUserDefFuncUsedBy\n- LINT.GetGlobalVarUsedBy\n- LINT.GetLocalVarUsedBy\n- LINT.GetLocalVarLetted\n- LINT.GetVarRefs",
|
|
15243
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetGlobalVarLetted/"
|
|
15364
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetGlobalVarLetted/",
|
|
15365
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LINT.GetGlobalVarLetted.md"
|
|
15244
15366
|
},
|
|
15245
15367
|
{
|
|
15246
15368
|
"id": "yaya:functions/LINT.GetGlobalVarUsedBy",
|
|
@@ -15248,7 +15370,8 @@
|
|
|
15248
15370
|
"source": "yaya_docs",
|
|
15249
15371
|
"category": "yaya_function",
|
|
15250
15372
|
"content": "LINT.GetGlobalVarUsedBy\nCategory: デバッグ\n\nSignature\nLINT.GetGlobalVarUsedBy(function_name)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| function_name | 解析対象の関数名 |\n\nReturns\n- 成功: 指定関数内で使用されているグローバル変数名の汎用配列\n- 候補なし: 空の汎用配列\n- エラー: -1\n\nDescription\n指定した関数内で使用しているグローバル変数名を列挙し、汎用配列で返します。代入・読み取り両方の使用箇所が対象となります。\n\n変数名は重複を除去し、名前順に並べて返されます。そのため LINT.GetGlobalVarLetted と組み合わせても「代入されているが読まれていない変数」は判別できません。制約の詳細は LINT系関数の仕様と制約 を参照してください。\n\nCompatibility\n- YAYA: Tc568-1以降で使用可能\n\nSee Also\n- LINT.GetFuncUsedBy\n- LINT.GetUserDefFuncUsedBy\n- LINT.GetLocalVarUsedBy\n- LINT.GetGlobalVarLetted\n- LINT.GetLocalVarLetted\n- LINT.GetVarRefs",
|
|
15251
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetGlobalVarUsedBy/"
|
|
15373
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetGlobalVarUsedBy/",
|
|
15374
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LINT.GetGlobalVarUsedBy.md"
|
|
15252
15375
|
},
|
|
15253
15376
|
{
|
|
15254
15377
|
"id": "yaya:functions/LINT.GetLocalVarLetted",
|
|
@@ -15256,7 +15379,8 @@
|
|
|
15256
15379
|
"source": "yaya_docs",
|
|
15257
15380
|
"category": "yaya_function",
|
|
15258
15381
|
"content": "LINT.GetLocalVarLetted\nCategory: デバッグ\n\nSignature\nLINT.GetLocalVarLetted(function_name)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| function_name | 解析対象の関数名 |\n\nReturns\n- 成功: 指定関数内でローカル変数への代入が行われている変数名の汎用配列。ネストしたスコープへの出入りは { / } で表現される\n- 候補なし({ } のみの場合も含む): 空の汎用配列\n- エラー: -1\n\nDescription\n指定した関数内でローカル変数への代入(let)が行われている箇所を列挙し、汎用配列で返します。読み取りのみの箇所は列挙されません。代入と読み取りの両方を列挙するには LINT.GetLocalVarUsedBy を使用してください。\n\n変数名は代入が行われた順に返され、ネストしたスコープ(波括弧ブロック)への出入りは { および } で示されます。\n\n以下も代入として列挙されます。\n- 複合代入(+= -= など)と ++ --\n- 配列要素への代入(_a[0] = 1 は _a)(Tc574-1以降)\n- foreach _list ; _v のループ変数 _v(Tc574-1以降)\n- foreach _list ; _k, _v の2つのループ変数 _k _v(Tc600-3以降)\n\ncase 構文が内部で生成するローカル変数(_CaSe_ExPr_PrEfIx_ で始まる名前)は列挙されません(Tc574-1以降)。\n\n制約の詳細は LINT系関数の仕様と制約 を参照してください。\n\nCompatibility\n- YAYA: Tc568-1以降で使用可能\n- Tc574-1: 配列要素への代入と foreach のループ変数を列挙するように変更。case の内部変数を除外\n- Tc600-3: 2変数の foreach のループ変数を両方とも列挙\n\nSee Also\n- LINT.GetLocalVarUsedBy\n- LINT.GetGlobalVarLetted\n- LINT.GetGlobalVarUsedBy\n- LINT.GetUserDefFuncUsedBy\n- LINT.GetFuncUsedBy\n- LINT.GetVarRefs",
|
|
15259
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetLocalVarLetted/"
|
|
15382
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetLocalVarLetted/",
|
|
15383
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LINT.GetLocalVarLetted.md"
|
|
15260
15384
|
},
|
|
15261
15385
|
{
|
|
15262
15386
|
"id": "yaya:functions/LINT.GetLocalVarUsedBy",
|
|
@@ -15264,7 +15388,8 @@
|
|
|
15264
15388
|
"source": "yaya_docs",
|
|
15265
15389
|
"category": "yaya_function",
|
|
15266
15390
|
"content": "LINT.GetLocalVarUsedBy\nCategory: デバッグ\n\nSignature\nLINT.GetLocalVarUsedBy(function_name)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| function_name | 解析対象の関数名 |\n\nReturns\n- 成功: 指定関数内で使用されているローカル変数名の汎用配列。ネストしたスコープへの出入りは { / } で表現される\n- 候補なし({ } のみの場合も含む): 空の汎用配列\n- エラー: -1\n\nDescription\n指定した関数内で使用しているローカル変数名を列挙し、汎用配列で返します。代入・読み取り両方の使用箇所が対象となります。\n\n変数名は使用された順に返され、ネストしたスコープ(波括弧ブロック)への出入りは { および } で示されます。\n\nTc574-1以降では、同じステートメント内の代入先の変数(foreach のループ変数を含む)は、そのステートメントの最後に並びます。代入は右辺の評価後に行われるためです。\n\n_z = _z + 1 // → _z(読み), _z(代入)\n_a[0] = _b // → _b, _a\n\ncase 構文が内部で生成するローカル変数(_CaSe_ExPr_PrEfIx_ で始まる名前)は列挙されません(Tc574-1以降)。\n\n戻り値には読みと代入の区別がありません。制約の詳細は LINT系関数の仕様と制約 を参照してください。\n\nCompatibility\n- YAYA: Tc568-1以降で使用可能\n- Tc574-1: 同一ステートメント内で代入先を最後に並べるように変更。case の内部変数を除外\n\nSee Also\n- LINT.GetFuncUsedBy\n- LINT.GetUserDefFuncUsedBy\n- LINT.GetGlobalVarUsedBy\n- LINT.GetGlobalVarLetted\n- LINT.GetLocalVarLetted\n- LINT.GetVarRefs",
|
|
15267
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetLocalVarUsedBy/"
|
|
15391
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetLocalVarUsedBy/",
|
|
15392
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LINT.GetLocalVarUsedBy.md"
|
|
15268
15393
|
},
|
|
15269
15394
|
{
|
|
15270
15395
|
"id": "yaya:functions/LINT.GetUserDefFuncUsedBy",
|
|
@@ -15272,7 +15397,8 @@
|
|
|
15272
15397
|
"source": "yaya_docs",
|
|
15273
15398
|
"category": "yaya_function",
|
|
15274
15399
|
"content": "LINT.GetUserDefFuncUsedBy\nCategory: デバッグ\n\nSignature\nLINT.GetUserDefFuncUsedBy(function_name)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| function_name | 解析対象の関数名 |\n\nReturns\n- 成功: 指定関数内で使用されているユーザー定義関数名の汎用配列\n- 候補なし: 空の汎用配列\n- エラー: -1\n\nDescription\n指定した関数内で使用しているユーザー定義関数名を列挙し、汎用配列で返します。システム関数は含まれません(システム関数も含めて列挙する場合は LINT.GetFuncUsedBy を使用してください)。\n\n関数名は重複を除去し、名前順に並べて返されます。EVAL などで文字列から呼び出される関数は含まれません。制約の詳細は LINT系関数の仕様と制約 を参照してください。\n\nCompatibility\n- YAYA: Tc568-1以降で使用可能\n\nSee Also\n- LINT.GetFuncUsedBy\n- LINT.GetGlobalVarUsedBy\n- LINT.GetLocalVarUsedBy\n- LINT.GetGlobalVarLetted\n- LINT.GetLocalVarLetted\n- LINT.GetVarRefs",
|
|
15275
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetUserDefFuncUsedBy/"
|
|
15400
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetUserDefFuncUsedBy/",
|
|
15401
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LINT.GetUserDefFuncUsedBy.md"
|
|
15276
15402
|
},
|
|
15277
15403
|
{
|
|
15278
15404
|
"id": "yaya:functions/LINT.GetVarRefs",
|
|
@@ -15280,7 +15406,8 @@
|
|
|
15280
15406
|
"source": "yaya_docs",
|
|
15281
15407
|
"category": "yaya_function",
|
|
15282
15408
|
"content": "LINT.GetVarRefs\nCategory: デバッグ\n\nSignature\nLINT.GetVarRefs(function_name)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| function_name | 解析対象の関数名 |\n\nReturns\n- 成功: 1件ごとに kind,category,name,access,line,depth,context の7項目をカンマで区切った文字列の汎用配列\n- エラー: -1\n\nDescription\n指定した関数内の変数・関数の出現と、ブロック(波括弧)の出入りを、出現ごとに1件ずつ列挙して汎用配列で返します。LINT.GetLocalVarUsedBy などと異なり、読み・書きの区別、行番号、ブロックの種類、出現した構文の種類が含まれます。\n\n各要素はカンマ区切りなので、簡易配列としてそのまま項目を取り出せます。\n\n_refs = LINT.GetVarRefs('OnTest')\nforeach _refs ; _r {\n\t_kind = _r[0]\n\t_name = _r[2]\n\t_line = TOINT(_r[4])\n}\n\n項目\n\n| 番号 | 項目 | 値 |\n|------|------|-----|\n| 0 | kind | var(変数) / func(関数) / {(ブロック開始) / }(ブロック終了) |\n| 1 | category | var のとき local / global、func のとき user / system、{ } のときブロックの種類 |\n| 2 | name | 変数名・関数名({ } では空) |\n| 3 | access | var のとき r(読み) / w(代入) / rw(読み書き)、func のとき call({ } では空) |\n| 4 | line | 辞書ファイル中の行番号 |\n| 5 | depth | ブロックの入れ子の深さ(関数本体が1) |\n| 6 | context | 出現したステートメントの種類({ } では空) |\n\naccess\n\n| 値 | 対象 |\n|----|------|\n| r | 代入先以外のすべての出現 |\n| w | = := の代入先、配列要素への = の代入先(_a[0] = 1 の _a)、foreach のループ変数(2変数の foreach では両方。Tc600-3以降) |\n| rw | += -= *= /= %= ,= とその := 形、++ -- の対象(配列要素への複合代入を含む) |\n\n代入は右辺の評価後に行われるため、同じステートメント内では代入先(w / rw)が最後に並びます。\n\n_z = _z + 1\n// var,local,_z,r,10,1,subst\n// var,local,_z,w,10,1,subst\n\nブロックの種類({ } の category)\n\n| 値 | 対象 |\n|----|------|\n| function | 関数本体 |\n| if / elseif / else | if 構文 |\n| while | while 構文 |\n| for | for 構文 |\n| foreach | foreach 構文 |\n| switch | switch 構文 |\n| case | case 構文 |\n| when / others | case 構文内の when / others |\n| plain | 上記以外(単独の { } や、switch の各ブロックなど) |\n\n} には、対応する { と同じ種類と深さが入ります。\n\ncontext\n\n| 値 | 対象 |\n|----|------|\n| output | 出力する数式 |\n| subst | 代入を含む数式 |\n| if / elseif / while / switch | 各構文の条件式 |\n| for-init / for-cond / for-step | for a ; b ; c の a / b / c |\n| foreach / foreach-var | foreach a ; b の a / b(foreach a ; k, v では k と v がどちらも foreach-var。Tc600-3以降) |\n| case / when | case の式 / when の条件 |\n| parallel / void / return | 各構文の式 |\n\n例えば if _c = 1 は、context が if で access が w の件として現れます。\n\n列挙されないもの\n\n- case 構文が内部で生成するローカル変数(_CaSe_ExPr_PrEfIx_ で始まる名前)\n- 変数・関数を含まないステートメント(break / continue / return(式なし) / --、リテラルだけの出力など)\n- when のラベル(リテラル)\n\n制約の詳細は LINT系関数の仕様と制約 を参照してください。\n\nCompatibility\n- YAYA: Tc574-1以降で使用可能\n\nSee Also\n- LINT.GetFuncUsedBy\n- LINT.GetUserDefFuncUsedBy\n- LINT.GetGlobalVarUsedBy\n- LINT.GetGlobalVarLetted\n- LINT.GetLocalVarUsedBy\n- LINT.GetLocalVarLetted",
|
|
15283
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetVarRefs/"
|
|
15409
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LINT.GetVarRefs/",
|
|
15410
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LINT.GetVarRefs.md"
|
|
15284
15411
|
},
|
|
15285
15412
|
{
|
|
15286
15413
|
"id": "yaya:functions/LOADLIB",
|
|
@@ -15288,7 +15415,8 @@
|
|
|
15288
15415
|
"source": "yaya_docs",
|
|
15289
15416
|
"category": "yaya_function",
|
|
15290
15417
|
"content": "LOADLIB\nCategory: 外部ライブラリ\n\nSignature\nLOADLIB(path)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | 読み込むDLLのパス。YAYAのディレクトリからの相対パス、または絶対パスで指定する |\n\nReturns\n- 1: 読み込み成功\n- 2: すでに読み込み済み\n- 0: 読み込み失敗\n\nDescription\n外部ライブラリ(DLL)ファイルを読み込みます。初回呼び出し時のみLoadLibraryを実行し、ロード関数を呼び出します。読み込む外部DLLはYAYAと同じインターフェース(load/unload/request関数のエクスポート)を持つ必要があります。\n\nCompatibility\n- YAYA: 初期バージョンより使用可能\n- AYA: バージョン5.8以降で使用可能\n\nSee Also\n- REQUESTLIB\n- UNLOADLIB",
|
|
15291
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LOADLIB/"
|
|
15418
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LOADLIB/",
|
|
15419
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LOADLIB.md"
|
|
15292
15420
|
},
|
|
15293
15421
|
{
|
|
15294
15422
|
"id": "yaya:functions/LOG",
|
|
@@ -15296,7 +15424,8 @@
|
|
|
15296
15424
|
"source": "yaya_docs",
|
|
15297
15425
|
"category": "yaya_function",
|
|
15298
15426
|
"content": "LOG\nCategory: 数学関数\n\nSignature\nLOG(val)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| val | 自然対数を求める実数値 |\n\nReturns\n- 成功: valの自然対数(実数)\n- 失敗: 0.0\n\nDescription\n自然対数(底e)を返します。\n\nCompatibility\n- YAYA: 初期バージョンより使用可能\n- AYA: バージョン5.8以降で使用可能\n\nSee Also\n- LOG10",
|
|
15299
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LOG/"
|
|
15427
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LOG/",
|
|
15428
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LOG.md"
|
|
15300
15429
|
},
|
|
15301
15430
|
{
|
|
15302
15431
|
"id": "yaya:functions/LOG10",
|
|
@@ -15304,7 +15433,8 @@
|
|
|
15304
15433
|
"source": "yaya_docs",
|
|
15305
15434
|
"category": "yaya_function",
|
|
15306
15435
|
"content": "LOG10\nCategory: 数学関数\n\nSignature\nLOG10(val)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| val | 常用対数を求める実数値 |\n\nReturns\n- 成功: valの常用対数(底10、実数)\n- 失敗: 0.0\n\nDescription\n常用対数(底10)を返します。\n\nCompatibility\n- YAYA: 初期バージョンより使用可能\n- AYA: バージョン5.8以降で使用可能\n\nSee Also\n- LOG",
|
|
15307
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LOG10/"
|
|
15436
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LOG10/",
|
|
15437
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LOG10.md"
|
|
15308
15438
|
},
|
|
15309
15439
|
{
|
|
15310
15440
|
"id": "yaya:functions/LOGGING",
|
|
@@ -15312,7 +15442,8 @@
|
|
|
15312
15442
|
"source": "yaya_docs",
|
|
15313
15443
|
"category": "yaya_function",
|
|
15314
15444
|
"content": "LOGGING\nCategory: デバッグ\n\nSignature\nLOGGING(var)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| var | ログに書き込む値。任意の型を指定可能 |\n\nReturns\nVOID(戻り値なし)\n\nDescription\n指定した値をログファイルに書き込み、同時にデバッグツール「玉」にも表示します。任意のデータ型を受け付けます。\n\n単純配列は各値をカンマで結合した形式で出力されます。\n\n出力形式\n\n引数が複数あるときや配列を渡したときは、各値をカンマで区切って1行に書き出します。文字列は \" で囲みます。\n\nLOGGING('a', 1, 2.5) // \"a\",1,2.500000\n\n値が配列やハッシュを含むとき(Tc602-8以降)は、配列を ( )、ハッシュを { } で囲み、ハッシュの要素は キー=値 の形で書き出します。入れ子の内側も同じ規則で書き出すので、どこまでが内側なのかがわかります。\n\n_h = PARSEJSON('{\"l\":[1,2],\"m\":{\"x\":\"a\"}}')\nLOGGING(_h) // {\"l\"=(1,2),\"m\"={\"x\"=\"a\"}}\nLOGGING(PARSEJSON('[[1,[2,\"s\"]],3]')) // (1,(2,\"s\")),3\n\nいちばん外側の配列は引数として展開されるので、括弧で囲まれません。\n\nCompatibility\n- YAYA: 初期バージョンより使用可能\n- AYA: バージョン5.8以降で使用可能\n- Tc602-8: 入れ子の配列を ( )、ハッシュを { } で囲んで出力するようにした(それまでは内側も , や = でつながれ、ハッシュのキーや値の文字列は \" で囲まれなかった)\n\nSee Also\n- GETERRORLOG\n- CLEARERRORLOG\n- GETLASTERROR\n- SETLASTERROR",
|
|
15315
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LOGGING/"
|
|
15445
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LOGGING/",
|
|
15446
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LOGGING.md"
|
|
15316
15447
|
},
|
|
15317
15448
|
{
|
|
15318
15449
|
"id": "yaya:functions/LSO",
|
|
@@ -15320,7 +15451,8 @@
|
|
|
15320
15451
|
"source": "yaya_docs",
|
|
15321
15452
|
"category": "yaya_function",
|
|
15322
15453
|
"content": "LSO\nCategory: メタ操作・特殊関数\n\nSignature\nLSO\nLSO()\n\nParameters\nなし\n\nReturns\n直前のセレクション操作で選択された位置を示す数値。\n\nDescription\n\"last Selection Order\" の略。直前に実行されたセレクション操作の選択位置を数値で返します。\n\nLSO は選択操作の直後に呼び出す必要があります。コード内の別の場所に置くと、意図しない別のセレクション結果を取得してしまう可能性があるため注意が必要です。\n\n出力ファイナライザが存在する場合、LSO はすべての組み合わせ結果にわたって動作します。例えばネストしたセレクションは複数の出力(0〜5の範囲など)を生成し、LSO の値は各組み合わせに対応します。\n\nCompatibility\n- YAYA: 初期バージョンより使用可能\n- AYA: バージョン5.8以降で使用可能\n\nSee Also\n- ANY",
|
|
15323
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LSO/"
|
|
15454
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/LSO/",
|
|
15455
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/LSO.md"
|
|
15324
15456
|
},
|
|
15325
15457
|
{
|
|
15326
15458
|
"id": "yaya:functions/MKDIR",
|
|
@@ -15328,7 +15460,8 @@
|
|
|
15328
15460
|
"source": "yaya_docs",
|
|
15329
15461
|
"category": "yaya_function",
|
|
15330
15462
|
"content": "MKDIR\nCategory: ファイル操作\n\nSignature\nMKDIR(path)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | 作成するディレクトリのパス |\n\nReturns\n- 成功: 1\n- 失敗: 0\n\nDescription\nディレクトリを作成します。フルパスの指定に対応しています。相対パスの場合、基準点はDLLの位置になります。\n\n制限事項: 一階層づつしか作成できません。存在しない複数階層のネストを一度に指定するとエラーになります。\n\nCompatibility\n- YAYA: 初期リリースから使用可能\n- AYA: バージョン5.8から使用可能\n\nSee Also\n- RMDIR",
|
|
15331
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/MKDIR/"
|
|
15463
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/MKDIR/",
|
|
15464
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/MKDIR.md"
|
|
15332
15465
|
},
|
|
15333
15466
|
{
|
|
15334
15467
|
"id": "yaya:functions/OUTPUTNUM",
|
|
@@ -15336,7 +15469,8 @@
|
|
|
15336
15469
|
"source": "yaya_docs",
|
|
15337
15470
|
"category": "yaya_function",
|
|
15338
15471
|
"content": "OUTPUTNUM\nCategory: メタ操作・特殊関数\n\nSignature\nOUTPUTNUM(function_name)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| function_name | 調べる対象の関数名(文字列) |\n\nReturns\n対象関数が出力する選択候補数(整数)\n\nDescription\n指定した関数が出力する選択候補数を返します。対象関数を空の引数リストで呼び出すことで、出力候補数を取得します。関数の択一選択の仕組みについては関数の選択方式を参照してください。\n\nCompatibility\n- YAYA: バージョンTc569-1以降で使用可能\n\nSee Also\n- 関数の選択方式",
|
|
15339
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/OUTPUTNUM/"
|
|
15472
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/OUTPUTNUM/",
|
|
15473
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/OUTPUTNUM.md"
|
|
15340
15474
|
},
|
|
15341
15475
|
{
|
|
15342
15476
|
"id": "yaya:functions/PARSEHEADER",
|
|
@@ -15344,7 +15478,8 @@
|
|
|
15344
15478
|
"source": "yaya_docs",
|
|
15345
15479
|
"category": "yaya_function",
|
|
15346
15480
|
"content": "PARSEHEADER\nCategory: 型取得/変換\n\nSignature\nPARSEHEADER( str [, conv ] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| str | HTTP や SHIORI のようなヘッダ形式の文字列 |\n| conv | 省略可。0 以外なら値を TOAUTOEX と同じ規則で整数・実数に変換する。省略時は 0(変換しない) |\n\nReturns\n- 成功時: 次のキーを持つハッシュ\n- 失敗時: 空(VOID)\n\n| キー | 内容 |\n|------|------|\n| start | 開始行(GET SHIORI/3.0 や HTTP/1.1 200 OK など)。開始行がなければ空文字列 |\n| header | ヘッダのキー→値のハッシュ。同じキーが複数あるときは後に出たものが残る |\n| key | ヘッダのキーの配列(出現順、重複も含む) |\n| value | ヘッダの値の配列(出現順)。conv が 0 以外なら変換後の値 |\n| rawvalue | 変換前の値(文字列)の配列(出現順) |\n| body | 空行より後ろの文字列。空行がなければ空文字列 |\n\nDescription\nHTTP や SHIORI・SAORI・SSTP のリクエスト/レスポンスのような「開始行 + キー: 値 の行 + 空行 + 本文」の形の文字列を解析し、ハッシュと配列にまとめて返す。1 行ずつ STRSTR や SUBSTR で切り出すよりも速い。\n\n- 改行は CRLF と LF のどちらでもよい\n- 最初の空行でヘッダが終わり、その後ろはすべて body になる\n- 各行は最初の : でキーと値に分ける。値は : の直後の空白(スペースかタブ)を 1 つだけ飛ばしたもので、残りの空白はそのまま残す(Key: a の値は a)\n- 最初の : より前が空、または空白を含む行はヘッダの行とみなさない。1 行目がそうなら開始行として start に入れ、2 行目以降なら無視する。このため開始行のない、ヘッダだけの文字列も解析できる\n- キーの大文字・小文字は区別する\n- conv を 0 以外にしたときの変換は TOAUTOEX と同じで、文字列に戻したときに元と一致する場合だけ変換する。12 は整数になるが、007 や 1.5 は文字列のまま\n\nheader のハッシュはキー順に並ぶので、出現順が必要なときは key / value / rawvalue を使う。\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数がない | W0008 | 8 |\n| str が文字列でない | W0009 | 9 |\n\nExample\nrequest\n{\n\t_r = PARSEHEADER(_argv[0], 1)\n\t// _argv[0] が\n\t// GET SHIORI/3.0\n\t// Charset: UTF-8\n\t// ID: OnBoot\n\t// Reference0: 12\n\t// Reference1: 007\n\t// のとき\n\n\t_r[\"start\"] // GET SHIORI/3.0\n\t_r[\"header\"][\"ID\"] // OnBoot\n\t_r[\"header\"][\"Reference0\"] // 12(整数)\n\t_r[\"header\"][\"Reference1\"] // 007(文字列)\n\t_r[\"key\"] // Charset,ID,Reference0,Reference1\n\t_r[\"rawvalue\"][2] // 12(文字列)\n}\n\n_nl = CHR(13) + CHR(10)\n_r = PARSEHEADER('HTTP/1.1 200 OK' + _nl + 'Content-Type: text/plain' + _nl + _nl + 'hello')\n_r[\"start\"] // HTTP/1.1 200 OK\n_r[\"header\"][\"Content-Type\"] // text/plain\n_r[\"body\"] // hello\n\n500 系と共用する辞書では、#ifdef __AYA_SYSTEM_SYSFUNC_PARSEHEADER__ で使えるかどうかを判定して書き分けられる(プリプロセス)。\n\nCompatibility\n- YAYA: Tc602-3以降\n\nSee Also\n- TOAUTOEX\n- HASH_SPLIT\n- PARSEJSON\n- SPLIT",
|
|
15347
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/PARSEHEADER/"
|
|
15481
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/PARSEHEADER/",
|
|
15482
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/PARSEHEADER.md"
|
|
15348
15483
|
},
|
|
15349
15484
|
{
|
|
15350
15485
|
"id": "yaya:functions/PARSEJSON",
|
|
@@ -15352,7 +15487,8 @@
|
|
|
15352
15487
|
"source": "yaya_docs",
|
|
15353
15488
|
"category": "yaya_function",
|
|
15354
15489
|
"content": "PARSEJSON\nCategory: 型取得/変換\n\nSignature\nPARSEJSON( str )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| str | JSON の文字列 |\n\nReturns\n- 成功時: JSON を変換した値\n- 失敗時: 空(VOID)\n\nDescription\nJSON の文字列を解析し、ハッシュ・配列などの値にして返す。値の対応やコメントの扱いは FREADJSON と同じ。\n\nSAORI や外部から受け取った JSON の文字列を扱うときに使う。ファイルから読むときは FREADJSON を使う。\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数がない | W0008 | 8 |\n| str が文字列でない | W0009 | 9 |\n| JSON として解析できない | W0026 | 26 |\n\nExample\n_j = PARSEJSON('{\"result\": [{\"id\": 1, \"text\": \"こんにちは\"}]}')\n_j[\"result\"][0][\"text\"] // こんにちは\n_j[\"result\"][0][\"id\"] // 1\n\nPARSEJSON('[1, 2.5, \"a\"]') // 整数 1、実数 2.5、文字列 a の汎用配列\nPARSEJSON('{') // 空(警告 W0026)\n\nCompatibility\n- YAYA: Tc601-1以降\n- Tc602-1: 小数点が , のロケール(ドイツ語など)の環境で、小数を含む JSON の解析に失敗していたのを修正\n\nSee Also\n- FREADJSON\n- DUMPJSON\n- PARSEXML",
|
|
15355
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/PARSEJSON/"
|
|
15490
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/PARSEJSON/",
|
|
15491
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/PARSEJSON.md"
|
|
15356
15492
|
},
|
|
15357
15493
|
{
|
|
15358
15494
|
"id": "yaya:functions/PARSETOML",
|
|
@@ -15360,7 +15496,8 @@
|
|
|
15360
15496
|
"source": "yaya_docs",
|
|
15361
15497
|
"category": "yaya_function",
|
|
15362
15498
|
"content": "PARSETOML\nCategory: 型取得/変換\n\nSignature\nPARSETOML( str )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| str | TOML の文字列 |\n\nReturns\n- 成功時: TOML を変換したハッシュ\n- 失敗時: 空(VOID)\n\nDescription\nTOML の文字列を解析し、ハッシュにして返す。値の対応は FREADTOML と同じ。\n\nファイルから読むときは FREADTOML を使う。\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数がない | W0008 | 8 |\n| str が文字列でない | W0009 | 9 |\n| TOML として解析できない | W0026(行番号と原因も出力する) | 26 |\n\nExample\n_t = PARSETOML(\"a = 1\" + CHR(10) + \"b.c = 'x'\")\n_t[\"a\"] // 1\n_t[\"b\"][\"c\"] // x\n\nPARSETOML(\"a = 1\" + CHR(10) + \"a = 2\")\n// 空(警告 W0026 : line 2 : duplicate key : a)\n\nCompatibility\n- YAYA: Tc602-5以降\n\nSee Also\n- FREADTOML\n- DUMPTOML\n- PARSEJSON\n- PARSEYAML",
|
|
15363
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/PARSETOML/"
|
|
15499
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/PARSETOML/",
|
|
15500
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/PARSETOML.md"
|
|
15364
15501
|
},
|
|
15365
15502
|
{
|
|
15366
15503
|
"id": "yaya:functions/PARSEXML",
|
|
@@ -15368,7 +15505,8 @@
|
|
|
15368
15505
|
"source": "yaya_docs",
|
|
15369
15506
|
"category": "yaya_function",
|
|
15370
15507
|
"content": "PARSEXML\nCategory: 型取得/変換\n\nSignature\nPARSEXML( str )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| str | XML の文字列 |\n\nReturns\n- 成功時: ルート要素を表すハッシュ\n- 失敗時: 空(VOID)\n\nDescription\nXML の文字列を解析し、ルート要素をハッシュにして返す。要素の形は FREADXML と同じ。\n\n文字列はすでに YAYA の文字列になっているので、XML 宣言の encoding は無視する。ファイルから読むときは FREADXML を使う。\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数がない | W0008 | 8 |\n| str が文字列でない | W0009 | 9 |\n| XML として解析できない | W0026(エラーの内容と行番号も出力する) | 26 |\n\nExample\n_x = PARSEXML('<res code=\"0\"><msg>OK</msg></res>')\n_x[\"attr\"][\"code\"] // 0(文字列)\n_x[\"children\"][0][\"text\"] // OK\n\nPARSEXML('<a><b></a>') // 空(警告 W0026)\n\nCompatibility\n- YAYA: Tc601-1以降\n\nSee Also\n- FREADXML\n- DUMPXML\n- PARSEJSON",
|
|
15371
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/PARSEXML/"
|
|
15508
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/PARSEXML/",
|
|
15509
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/PARSEXML.md"
|
|
15372
15510
|
},
|
|
15373
15511
|
{
|
|
15374
15512
|
"id": "yaya:functions/PARSEYAML",
|
|
@@ -15376,7 +15514,8 @@
|
|
|
15376
15514
|
"source": "yaya_docs",
|
|
15377
15515
|
"category": "yaya_function",
|
|
15378
15516
|
"content": "PARSEYAML\nCategory: 型取得/変換\n\nSignature\nPARSEYAML( str )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| str | YAML の文字列 |\n\nReturns\n- 成功時: YAML を変換した値\n- 失敗時: 空(VOID)\n\nDescription\nYAML の文字列を解析し、ハッシュ・配列などの値にして返す。対応している書き方と値の対応は FREADYAML と同じ。\n\nファイルから読むときは FREADYAML を使う。\n\nエラー\n| 状況 | 警告 | GETLASTERROR |\n|------|------|------|\n| 引数がない | W0008 | 8 |\n| str が文字列でない | W0009 | 9 |\n| YAML として解析できない、対応していない書き方 | W0026(行番号と原因も出力する) | 26 |\n\nExample\n_y = PARSEYAML(\"{name: さくら, tags: [ghost, shell]}\")\n_y[\"name\"] // さくら\n_y[\"tags\"][1] // shell\n\nPARSEYAML(\"- 1\" + CHR(10) + \"- 0x10\" + CHR(10) + \"- yes\" + CHR(10) + \"- '007'\")\n// 整数 1、整数 16、文字列 yes、文字列 007 の汎用配列\n\nPARSEYAML(\"a: [1\") // 空(警告 W0026)\n\nCompatibility\n- YAYA: Tc602-5以降\n\nSee Also\n- FREADYAML\n- DUMPYAML\n- PARSEJSON\n- PARSETOML",
|
|
15379
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/PARSEYAML/"
|
|
15517
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/PARSEYAML/",
|
|
15518
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/PARSEYAML.md"
|
|
15380
15519
|
},
|
|
15381
15520
|
{
|
|
15382
15521
|
"id": "yaya:functions/POW",
|
|
@@ -15384,7 +15523,8 @@
|
|
|
15384
15523
|
"source": "yaya_docs",
|
|
15385
15524
|
"category": "yaya_function",
|
|
15386
15525
|
"content": "POW\nCategory: 数学関数\n\nSignature\nPOW(x, y)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| x | 底(実数) |\n| y | 指数(実数) |\n\nReturns\n- 成功: x の y 乗(実数)\n- 失敗: 0.0\n\nDescription\nx の y 乗を返します。\n\nCompatibility\n- YAYA: 初期リリースから使用可能\n- AYA: バージョン5.8から使用可能\n\nSee Also\n- SQRT",
|
|
15387
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/POW/"
|
|
15526
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/POW/",
|
|
15527
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/POW.md"
|
|
15388
15528
|
},
|
|
15389
15529
|
{
|
|
15390
15530
|
"id": "yaya:functions/PROCESSGLOBALDEFINE",
|
|
@@ -15392,7 +15532,8 @@
|
|
|
15392
15532
|
"source": "yaya_docs",
|
|
15393
15533
|
"category": "yaya_function",
|
|
15394
15534
|
"content": "PROCESSGLOBALDEFINE\nCategory: メタ操作・特殊関数\n\nSignature\nPROCESSGLOBALDEFINE(string)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | プリプロセス処理を行いたい文字列 |\n\nReturns\n- 成功: グローバル定義を適用した後の処理済み文字列\n- 失敗: -1\n\nDescription\n#globaldefine で定義したプリプロセス処理(文字列置き換え処理)と同様の処理を行います。プリプロセッサ機能の詳細については、プリプロセスを参照してください。\n\nCompatibility\n- YAYA: バージョンTc559-1から使用可能\n\nSee Also\n- プリプロセス",
|
|
15395
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/PROCESSGLOBALDEFINE/"
|
|
15535
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/PROCESSGLOBALDEFINE/",
|
|
15536
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/PROCESSGLOBALDEFINE.md"
|
|
15396
15537
|
},
|
|
15397
15538
|
{
|
|
15398
15539
|
"id": "yaya:functions/RAND",
|
|
@@ -15400,7 +15541,8 @@
|
|
|
15400
15541
|
"source": "yaya_docs",
|
|
15401
15542
|
"category": "yaya_function",
|
|
15402
15543
|
"content": "RAND\nCategory: 数学関数\n\nSignature\nRAND([max])\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| max | (省略可)乱数の上限値。0 〜 (max-1) の範囲で生成される。省略時はデフォルト100(0〜99の値を生成) |\n\nReturns\n- 成功: 指定された範囲内のランダムな整数\n- 失敗: 0\n\nDescription\n整数の乱数を得ます。シードの初期化なしに単独で動作します。SRANDでシードを設定することもできますが、基本的な使用では必須ではありません。\n\nCompatibility\n- YAYA: 初期リリースから使用可能\n- AYA: バージョン5.8から使用可能\n\nSee Also\n- SRAND",
|
|
15403
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RAND/"
|
|
15544
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RAND/",
|
|
15545
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RAND.md"
|
|
15404
15546
|
},
|
|
15405
15547
|
{
|
|
15406
15548
|
"id": "yaya:functions/READFMO",
|
|
@@ -15408,7 +15550,8 @@
|
|
|
15408
15550
|
"source": "yaya_docs",
|
|
15409
15551
|
"category": "yaya_function",
|
|
15410
15552
|
"content": "READFMO\nCategory: システム情報\n\n> 【Windows専用】 この関数はWindows用にコンパイルされたyayaでしか動作しません。\n\nSignature\nREADFMO( [ name ] [ , charset ] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| name | (省略可)FMOの識別子。省略時は \"Sakura\" |\n| charset | (省略可)文字エンコーディング。省略時はOSのデフォルト。Tc569-13で追加。 |\n\nReturns\n- 成功: FMOの内容を文字列として返す\n- 失敗: VOID(何も返さない)\n\nDescription\nファイルマッピングオブジェクト(FMO)の内容を文字列として取得します。FMOの先頭4バイトはサイズを表す符号なし整数であり、読み取り時にはその4バイトが除去されます。FMO内にnullバイト(0x00)が存在する場合の動作は未定義です。\n\nCompatibility\n- YAYA: バージョンTc524-1で導入",
|
|
15411
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/READFMO/"
|
|
15553
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/READFMO/",
|
|
15554
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/READFMO.md"
|
|
15412
15555
|
},
|
|
15413
15556
|
{
|
|
15414
15557
|
"id": "yaya:functions/REPLACE",
|
|
@@ -15416,7 +15559,8 @@
|
|
|
15416
15559
|
"source": "yaya_docs",
|
|
15417
15560
|
"category": "yaya_function",
|
|
15418
15561
|
"content": "REPLACE\nCategory: 文字列操作\n\nSignature\nREPLACE( src , before , after [ , count ] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| src | 変換対象の文字列 |\n| before | 検索する部分文字列 |\n| after | 置換後の部分文字列 |\n| count | (省略可)置換を行う回数。0未満または省略した場合はすべての該当箇所を置換する |\n\nReturns\n- 成功: 置換後の文字列\n- 失敗: 元の src 文字列(変更なし)\n\nDescription\n文字列の置換を行います。該当するすべての変換前文字列が置換されます。count を指定することで置換回数を制限できます。\n\nExample\n_tehai = '4m4m5m5m6m6m2p3p3p4p1s1s1s'\n_tsumo = '4p'\n_dahai = '1s'\n_tehai = REPLACE(_tehai, _dahai, _tsumo, 1)\n_tehai // '4m4m5m5m6m6m2p3p3p4p4p1s1s'\n\nCompatibility\n- YAYA: 初期リリースから使用可能(countパラメータはTc548-1で追加)\n- AYA: バージョン5.8から使用可能",
|
|
15419
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/REPLACE/"
|
|
15562
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/REPLACE/",
|
|
15563
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/REPLACE.md"
|
|
15420
15564
|
},
|
|
15421
15565
|
{
|
|
15422
15566
|
"id": "yaya:functions/REQUESTLIB",
|
|
@@ -15424,7 +15568,8 @@
|
|
|
15424
15568
|
"source": "yaya_docs",
|
|
15425
15569
|
"category": "yaya_function",
|
|
15426
15570
|
"content": "REQUESTLIB\nCategory: 外部ライブラリ\n\nSignature\nREQUESTLIB( path , string )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | DLLの位置。YAYAのある位置からの相対パス、または絶対パス。 |\n| string | request関数に渡す文字列 |\n\nReturns\n- 成功: request関数が生成した文字列\n- 失敗: VOID(何も返さない)\n\nDescription\n事前にロードされた外部ライブラリのrequest関数を呼び出し、その結果を取得します。外部ライブラリのDLLは、YAYAと同じインターフェース(load/unload/request関数のエクスポート)を持つ必要があります。\n\nCompatibility\n- YAYA: 初期リリースから使用可能\n- AYA: バージョン5.8以降で使用可能\n\nSee Also\n- LOADLIB\n- UNLOADLIB",
|
|
15427
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/REQUESTLIB/"
|
|
15571
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/REQUESTLIB/",
|
|
15572
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/REQUESTLIB.md"
|
|
15428
15573
|
},
|
|
15429
15574
|
{
|
|
15430
15575
|
"id": "yaya:functions/RESTOREVAR",
|
|
@@ -15432,7 +15577,8 @@
|
|
|
15432
15577
|
"source": "yaya_docs",
|
|
15433
15578
|
"category": "yaya_function",
|
|
15434
15579
|
"content": "RESTOREVAR\nCategory: メタ操作・特殊関数\n\nSignature\nRESTOREVAR( [ path ] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | (省略可)復元元のファイル名。省略時はデフォルトのファイル名(DLL名 + \"_variable.cfg\"、例: yaya_variable.cfg)が使用される |\n\nReturns\nVOID(戻り値なし)\n\nDescription\n変数を(ファイルから)ロード(復元)します。処理はロード時に行われる処理と同等です。指定したファイルから変数を復元できます。\n\nファイルの形式は SAVEVAR を参照してください。Tc600-3以降はハッシュと入れ子の値も復元できます。Tc600-3 より前のバージョンで保存したファイルもそのまま読めます。\n\nCompatibility\n- YAYA: 初期リリースから使用可能\n- Tc600-3: ハッシュと入れ子の値の復元に対応\n\nSee Also\n- SAVEVAR",
|
|
15435
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RESTOREVAR/"
|
|
15580
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RESTOREVAR/",
|
|
15581
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RESTOREVAR.md"
|
|
15436
15582
|
},
|
|
15437
15583
|
{
|
|
15438
15584
|
"id": "yaya:functions/RE_ASEARCH",
|
|
@@ -15440,7 +15586,8 @@
|
|
|
15440
15586
|
"source": "yaya_docs",
|
|
15441
15587
|
"category": "yaya_function",
|
|
15442
15588
|
"content": "RE_ASEARCH\nCategory: 正規表現\n\nSignature\nRE_ASEARCH(key, array)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| key | 検索する正規表現パターン |\n| array | 検索対象の汎用配列(単純配列はサポートされない) |\n\nReturns\n- 最初にマッチした要素のインデックス(0始まり)\n- マッチする要素がない場合: -1\n\nDescription\n汎用配列から、指定した正規表現に「一部でも」合致する値を検索し、最初に見つかったもののみを返します。\n\n注意: RE_GETSTR・RE_GETPOS・RE_GETLEN は使用不可です。すべてのマッチを取得したい場合は RE_ASEARCHEX を使用してください。\n\nExample\n_array = ('さくら','まゆら','ねここ')\nRE_ASEARCH('^ま', _array) // Returns: 1\n\"ま\"で始まる要素を検索し、インデックス1(2番目の要素)が見つかります。\n\nCompatibility\n- YAYA: バージョンTc539-1から使用可能\n\nSee Also\n- ASEARCH\n- RE_ASEARCHEX",
|
|
15443
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_ASEARCH/"
|
|
15589
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_ASEARCH/",
|
|
15590
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RE_ASEARCH.md"
|
|
15444
15591
|
},
|
|
15445
15592
|
{
|
|
15446
15593
|
"id": "yaya:functions/RE_ASEARCHEX",
|
|
@@ -15448,7 +15595,8 @@
|
|
|
15448
15595
|
"source": "yaya_docs",
|
|
15449
15596
|
"category": "yaya_function",
|
|
15450
15597
|
"content": "RE_ASEARCHEX\nCategory: 正規表現\n\nSignature\nRE_ASEARCHEX( key , array )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| key | 検索する正規表現パターン |\n| array | 検索対象の汎用配列(単純配列はサポートされない) |\n\nReturns\nマッチした要素の序数を列挙した汎用配列(0始まり)。マッチする要素がない場合は空の配列を返す。\n\n注意: RE_GETSTR・RE_GETPOS・RE_GETLEN は使用不可です。\n\nDescription\n汎用配列から、指定した正規表現に「一部でも」合致する値をすべて検索します。\n\nExample\n_tea = (\"鉄観音\", \"烏龍\", \"やぶきた\", \"烏龍\", \"ジャスミン\")\nipod = RE_ASEARCHEX(\"^烏\", _tea)\n// ipod は (1,3) になる(\"烏\"で始まる要素のインデックス)\n\nCompatibility\n- YAYA: 初期リリースから使用可能\n- AYA: バージョン5.8以降で使用可能\n\nSee Also\n- ASEARCHEX\n- RE_ASEARCH",
|
|
15451
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_ASEARCHEX/"
|
|
15598
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_ASEARCHEX/",
|
|
15599
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RE_ASEARCHEX.md"
|
|
15452
15600
|
},
|
|
15453
15601
|
{
|
|
15454
15602
|
"id": "yaya:functions/RE_GETLEN",
|
|
@@ -15456,7 +15604,8 @@
|
|
|
15456
15604
|
"source": "yaya_docs",
|
|
15457
15605
|
"category": "yaya_function",
|
|
15458
15606
|
"content": "RE_GETLEN\nCategory: 正規表現\n\nSignature\nRE_GETLEN\nRE_GETLEN()\n\nParameters\nなし\n\nReturns\n正規表現内の ( ) にマッチした部分の長さを列挙した汎用配列。\n\n| 要素 | 内容 |\n|------|------|\n| 要素0 | 正規表現全体にマッチした部分の長さ |\n| 要素n | n番目の括弧グループにマッチした部分の長さ |\n\n- 長さは文字数で計測されます。\n- 正規表現関数を実行していない場合、またはマッチした文字列がない場合は IARRAY を返します。\n- RE_REPLACE・RE_REPLACEEX・RE_SPLIT の場合は、個々のグループではなく正規表現全体にマッチした部分の長さを返します。\n\nDescription\n正規表現系関数の実行結果を取得します。RE_GETPOS・RE_GETSTR と組み合わせて使用します。\n\nCompatibility\n- YAYA: 初期リリースから使用可能\n- AYA: バージョン5.8以降で使用可能\n\nSee Also\n- RE_GETPOS\n- RE_GETSTR",
|
|
15459
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_GETLEN/"
|
|
15607
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_GETLEN/",
|
|
15608
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RE_GETLEN.md"
|
|
15460
15609
|
},
|
|
15461
15610
|
{
|
|
15462
15611
|
"id": "yaya:functions/RE_GETPOS",
|
|
@@ -15464,7 +15613,8 @@
|
|
|
15464
15613
|
"source": "yaya_docs",
|
|
15465
15614
|
"category": "yaya_function",
|
|
15466
15615
|
"content": "RE_GETPOS\nCategory: 正規表現\n\nSignature\nRE_GETPOS\nRE_GETPOS()\n\nParameters\nなし\n\nReturns\n正規表現内の ( ) にマッチした位置を列挙した汎用配列。\n\n| 要素 | 内容 |\n|------|------|\n| 要素0 | 正規表現パターン全体がマッチした位置 |\n| 要素n | n番目の括弧グループがマッチした位置 |\n\n- 位置は先頭からの文字数(0始まり)で表されます。\n- 正規表現関数を実行していない場合、またはマッチする文字列がない場合は IARRAY を返します。\n- RE_REPLACE・RE_REPLACEEX・RE_SPLIT の場合は、個々のグループではなく正規表現全体のマッチ位置を返します。\n\nDescription\n正規表現系関数の実行結果(マッチ位置情報)を取得します。\n\nCompatibility\n- YAYA: 初期リリースから使用可能\n- AYA: バージョン5.8以降で使用可能\n\nSee Also\n- RE_GETSTR\n- RE_GETLEN",
|
|
15467
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_GETPOS/"
|
|
15616
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_GETPOS/",
|
|
15617
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RE_GETPOS.md"
|
|
15468
15618
|
},
|
|
15469
15619
|
{
|
|
15470
15620
|
"id": "yaya:functions/RE_GETSTR",
|
|
@@ -15472,7 +15622,8 @@
|
|
|
15472
15622
|
"source": "yaya_docs",
|
|
15473
15623
|
"category": "yaya_function",
|
|
15474
15624
|
"content": "RE_GETSTR\nCategory: 正規表現\n\nSignature\nRE_GETSTR\nRE_GETSTR()\n\nParameters\nなし\n\nReturns\nマッチした部分文字列を格納した汎用配列。\n\n| 要素 | 内容 |\n|------|------|\n| 要素0 | 正規表現全体にマッチした文字列 |\n| 要素n | n番目の括弧グループにマッチした部分文字列 |\n\n- 正規表現関数を実行していない場合やマッチした文字列がない場合は IARRAY を返します。\n- RE_REPLACE・RE_REPLACEEX・RE_SPLIT の場合は、個々のグループではなく正規表現全体にマッチした文字列を格納した配列を返します。\n\nDescription\n正規表現系関数の実行結果を取得します。\n\nExample\nRE_MATCH(\"x > 15.7\", \"x *> *([\\\\d\\\\.]+)\")\n_array = RE_GETSTR\n// _array は (\"x > 15.7\", \"15.7\") になる\n\nCompatibility\n- YAYA: 初期リリースから使用可能\n- AYA: バージョン5.8から使用可能\n\nSee Also\n- RE_GETPOS\n- RE_GETLEN",
|
|
15475
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_GETSTR/"
|
|
15625
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_GETSTR/",
|
|
15626
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RE_GETSTR.md"
|
|
15476
15627
|
},
|
|
15477
15628
|
{
|
|
15478
15629
|
"id": "yaya:functions/RE_GREP",
|
|
@@ -15480,7 +15631,8 @@
|
|
|
15480
15631
|
"source": "yaya_docs",
|
|
15481
15632
|
"category": "yaya_function",
|
|
15482
15633
|
"content": "RE_GREP\nCategory: 正規表現\n\nSignature\nRE_GREP( string , regexp )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 処理対象の文字列 |\n| regexp | マッチさせる正規表現パターン |\n\nReturns\n- 1以上: マッチした部分の数(マッチした場合)\n- 0: マッチする部分がなかった場合\n\nDescription\n対象文字列の中から正規表現にマッチするすべての部分を検索します。詳細な結果は RE_GETSTR・RE_GETPOS・RE_GETLEN を使って取得できます。\n\nCompatibility\n- YAYA: 初期リリースから使用可能\n- AYA: バージョン5.8以降で使用可能\n\nSee Also\n- RE_GETSTR\n- RE_GETPOS\n- RE_GETLEN",
|
|
15483
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_GREP/"
|
|
15634
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_GREP/",
|
|
15635
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RE_GREP.md"
|
|
15484
15636
|
},
|
|
15485
15637
|
{
|
|
15486
15638
|
"id": "yaya:functions/RE_MATCH",
|
|
@@ -15488,7 +15640,8 @@
|
|
|
15488
15640
|
"source": "yaya_docs",
|
|
15489
15641
|
"category": "yaya_function",
|
|
15490
15642
|
"content": "RE_MATCH\nCategory: 正規表現\n\nSignature\nRE_MATCH( string , regexp )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | マッチ対象の文字列 |\n| regexp | 正規表現パターン |\n\nReturns\n- 1: 文字列全体がパターンに完全マッチした場合\n- 0: マッチしなかった場合\n\nDescription\n処理対象文字列が正規表現に完全にマッチするかどうかを調べます。部分一致を調べる場合は RE_SEARCH を使用してください。\n\nマッチした詳細は RE_GETSTR、RE_GETPOS、RE_GETLEN で取得できます。\n\nExample\nRE_MATCH(\"50kg\", \"(\\d+) *kg\")\n// → 1\n\nRE_MATCH(\"50cm\", \"(\\d+) *kg\")\n// → 0\n\nCompatibility\n- YAYA: 初期バージョンより対応\n- AYA: 5.8以降\n\nSee Also\n- RE_SEARCH\n- RE_GETSTR\n- RE_GETPOS\n- RE_GETLEN",
|
|
15491
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_MATCH/"
|
|
15643
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_MATCH/",
|
|
15644
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RE_MATCH.md"
|
|
15492
15645
|
},
|
|
15493
15646
|
{
|
|
15494
15647
|
"id": "yaya:functions/RE_OPTION",
|
|
@@ -15496,7 +15649,8 @@
|
|
|
15496
15649
|
"source": "yaya_docs",
|
|
15497
15650
|
"category": "yaya_function",
|
|
15498
15651
|
"content": "RE_OPTION\nCategory: 正規表現\n\nSignature\nRE_OPTION( オプション文字列 )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| オプション文字列 | 設定するPerlCompatible正規表現のオプション文字列(i, s, m, x)。省略した場合は現在の設定を返す |\n\nReturns\n現在有効なオプションを示す文字列(i, s, m, x の組み合わせ)\n\nDescription\nPerlコンパチブル正規表現のオプションを設定します。\n\n対応オプション:\n- i: 大文字小文字を区別しないマッチング\n- m: 入力を複数行として扱う\n- s: ワイルドカード(.)が改行文字にもマッチするようにする\n- x: 正規表現パターン内のコメント(#)と空白を無視する\n\nデフォルト設定: m のみ\n\nCompatibility\n- YAYA: Tc534-1以降\n\nSee Also\n- RE_MATCH\n- RE_SEARCH\n- RE_REPLACE",
|
|
15499
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_OPTION/"
|
|
15652
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_OPTION/",
|
|
15653
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RE_OPTION.md"
|
|
15500
15654
|
},
|
|
15501
15655
|
{
|
|
15502
15656
|
"id": "yaya:functions/RE_REPLACE",
|
|
@@ -15504,7 +15658,8 @@
|
|
|
15504
15658
|
"source": "yaya_docs",
|
|
15505
15659
|
"category": "yaya_function",
|
|
15506
15660
|
"content": "RE_REPLACE\nCategory: 正規表現\n\nSignature\nRE_REPLACE( string , regexp , replace [, count] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 処理対象の文字列(数値型変数は TOSTR で文字列型に変換することを推奨) |\n| regexp | 正規表現パターン |\n| replace | 置換後の文字列(メタ文字は使用不可) |\n| count | 置換回数(省略またはマイナス値で全置換) |\n\nReturns\n- 成功: 置換後の文字列\n- マッチなし: 元の文字列(変更なし)\n\nDescription\n処理対象文字列内で正規表現にマッチした部分を置換します。置換文字列にメタ文字は利用できません。メタ文字を使用したい場合は RE_REPLACEEX を使用してください。\n\nマッチした詳細は RE_GETSTR、RE_GETPOS、RE_GETLEN で取得できます。\n\nCompatibility\n- YAYA: 初期バージョンより対応(count パラメータは Tc548-1 以降)\n- AYA: 5.8以降\n\nSee Also\n- REPLACE\n- RE_REPLACEEX\n- RE_GETSTR\n- RE_GETPOS\n- RE_GETLEN",
|
|
15507
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_REPLACE/"
|
|
15661
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_REPLACE/",
|
|
15662
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RE_REPLACE.md"
|
|
15508
15663
|
},
|
|
15509
15664
|
{
|
|
15510
15665
|
"id": "yaya:functions/RE_REPLACEEX",
|
|
@@ -15512,7 +15667,8 @@
|
|
|
15512
15667
|
"source": "yaya_docs",
|
|
15513
15668
|
"category": "yaya_function",
|
|
15514
15669
|
"content": "RE_REPLACEEX\nCategory: 正規表現\n\nSignature\nRE_REPLACEEX( string , regexp , replace_ex [, count] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 処理対象の文字列(数値型変数は TOSTR で文字列型に変換することを推奨) |\n| regexp | 正規表現パターン |\n| replace_ex | 置換後の文字列($0、$1 等のPerlスタイルメタ文字使用可能) |\n| count | 置換回数(省略またはマイナス値で全置換) |\n\nReturns\n- 成功: 置換後の文字列\n- 失敗: 元の string(変更なし)\n\nDescription\n処理対象文字列内で正規表現にマッチした部分を置換します。RE_REPLACE との違いは、置換文字列に $0、$1 などのPerlスタイルのメタ文字が使用できる点です。\n\nRE_REPLACEEX を使用した場合、RE_GETSTR、RE_GETPOS、RE_GETLEN は、nグループのキャプチャではなく、正規表現パターン全体のn番目のマッチに関する情報を返します。\n\nCompatibility\n- YAYA: 初期バージョンより対応(count パラメータは Tc548-1 以降)\n\nSee Also\n- REPLACE\n- RE_REPLACE\n- RE_GETSTR\n- RE_GETPOS\n- RE_GETLEN",
|
|
15515
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_REPLACEEX/"
|
|
15670
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_REPLACEEX/",
|
|
15671
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RE_REPLACEEX.md"
|
|
15516
15672
|
},
|
|
15517
15673
|
{
|
|
15518
15674
|
"id": "yaya:functions/RE_SEARCH",
|
|
@@ -15520,7 +15676,8 @@
|
|
|
15520
15676
|
"source": "yaya_docs",
|
|
15521
15677
|
"category": "yaya_function",
|
|
15522
15678
|
"content": "RE_SEARCH\nCategory: 正規表現\n\nSignature\nRE_SEARCH( string , regexp )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 検索対象の文字列 |\n| regexp | 正規表現パターン |\n\nReturns\n- 1: マッチする部分が見つかった場合\n- 0: マッチしなかった場合\n\nDescription\n処理対象文字列内に正規表現とマッチする部分があるかどうかを調べます。文字列全体の完全マッチを調べる場合は RE_MATCH を使用してください。\n\nマッチした詳細は RE_GETSTR、RE_GETPOS、RE_GETLEN で取得できます。\n\nExample\nif (RE_SEARCH(reference[0], 'こんに?ち[はわ]|今日[はわ]')){\n \"こんにちは、%(username)\"\n}\n\nユーザー入力に「こんにちは」や「こんにちわ」等が含まれていればあいさつを返す例。\n\nCompatibility\n- YAYA: 初期バージョンより対応\n\nSee Also\n- RE_MATCH\n- RE_GETSTR\n- RE_GETPOS\n- RE_GETLEN",
|
|
15523
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_SEARCH/"
|
|
15679
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_SEARCH/",
|
|
15680
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RE_SEARCH.md"
|
|
15524
15681
|
},
|
|
15525
15682
|
{
|
|
15526
15683
|
"id": "yaya:functions/RE_SPLIT",
|
|
@@ -15528,7 +15685,8 @@
|
|
|
15528
15685
|
"source": "yaya_docs",
|
|
15529
15686
|
"category": "yaya_function",
|
|
15530
15687
|
"content": "RE_SPLIT\nCategory: 正規表現\n\nSignature\nRE_SPLIT( string , regexp [, max] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 分割対象の文字列 |\n| regexp | 分割に使用する正規表現パターン |\n| max | 最大分割数(省略または0で全分割) |\n\nReturns\n- 成功: 分割された文字列を格納した汎用配列\n- 失敗: 空の汎用配列\n\nDescription\n処理対象文字列を正規表現パターンで分割し、結果を汎用配列として返します。\n\n分割結果の詳細は RE_GETSTR、RE_GETPOS、RE_GETLEN で取得できます。\n\nCompatibility\n- YAYA: 初期バージョンより対応(max パラメータは Tc536-1 以降)\n\nSee Also\n- RE_GETSTR\n- RE_GETPOS\n- RE_GETLEN",
|
|
15531
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_SPLIT/"
|
|
15688
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RE_SPLIT/",
|
|
15689
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RE_SPLIT.md"
|
|
15532
15690
|
},
|
|
15533
15691
|
{
|
|
15534
15692
|
"id": "yaya:functions/RMDIR",
|
|
@@ -15536,7 +15694,8 @@
|
|
|
15536
15694
|
"source": "yaya_docs",
|
|
15537
15695
|
"category": "yaya_function",
|
|
15538
15696
|
"content": "RMDIR\nCategory: ファイル操作\n\nSignature\nRMDIR( path )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | 削除するディレクトリのパス(フルパスまたは相対パス。相対パスはDLLロード位置が基準) |\n\nReturns\n- 1: 削除成功\n- 0: 失敗\n\nDescription\nディレクトリを削除します。空のディレクトリしか削除できません。ファイルが含まれているディレクトリを削除しようとするとエラーになります。\n\nCompatibility\n- YAYA: 初期バージョンより対応\n- AYA: 5.8以降\n\nSee Also\n- MKDIR",
|
|
15539
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RMDIR/"
|
|
15697
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/RMDIR/",
|
|
15698
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/RMDIR.md"
|
|
15540
15699
|
},
|
|
15541
15700
|
{
|
|
15542
15701
|
"id": "yaya:functions/ROUND",
|
|
@@ -15544,7 +15703,8 @@
|
|
|
15544
15703
|
"source": "yaya_docs",
|
|
15545
15704
|
"category": "yaya_function",
|
|
15546
15705
|
"content": "ROUND\nCategory: 数学関数\n\nSignature\nROUND( val )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| val | 四捨五入する実数 |\n\nReturns\n- 成功: 四捨五入された実数\n- 失敗: 0.0\n\nDescription\n実数の小数点以下を四捨五入します。\n\n負数の境界値では以下の挙動に注意してください:\n- ROUND(-1.5) → -1.0(-2.0ではない)\n- ROUND(-1.55) → -2.0\n\nExample\n| 入力 | 出力 | 備考 |\n|------|------|------|\n| 1.55 | 2.0 | 1.5以上 |\n| 1.45 | 1.0 | 1.5未満 |\n| 1.5 | 2.0 | ちょうど0.5 |\n| -1.5 | -1.0 | 負の境界値 |\n| -1.55 | -2.0 | 負の値 |\n\nCompatibility\n- YAYA: 初期バージョンより対応\n- AYA: 5.8以降\n\nSee Also\n- CEIL\n- FLOOR",
|
|
15547
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ROUND/"
|
|
15706
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ROUND/",
|
|
15707
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ROUND.md"
|
|
15548
15708
|
},
|
|
15549
15709
|
{
|
|
15550
15710
|
"id": "yaya:functions/SAVEVAR",
|
|
@@ -15552,7 +15712,8 @@
|
|
|
15552
15712
|
"source": "yaya_docs",
|
|
15553
15713
|
"category": "yaya_function",
|
|
15554
15714
|
"content": "SAVEVAR\nCategory: メタ操作・特殊関数\n\nSignature\nSAVEVAR( [path] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | 保存先ファイル名(省略時はDLL名 + \"_variable.cfg\"、例: yaya_variable.cfg) |\n\nReturns\nなし(VOID)\n\nDescription\n変数を保存します。unload時に行われる処理と同等です。\n\n保存先ファイルを任意のパスに指定することもできます。\n\n保存形式\n\n1行に1変数を、次の形式で書き出します。\n\n変数名,値,\"デリミタ\",watcher|setter|destorier\n\n値の書式は次のとおりです。\n\n| 型 | 書式 | 例 |\n|---|---|---|\n| 整数・実数 | そのまま | 5、2.500000 |\n| 文字列 | \"...\"(\" と制御文字はエスケープ) | \"abc\" |\n| 汎用配列 | 要素を : で区切る。要素が1つなら末尾に :IARRAY、空なら IARRAY:IARRAY | 1:\"b\":2.500000 |\n| ハッシュ(Tc600-3以降) | キー=値 を : で区切る。要素が1つなら末尾に :IHASH=IHASH、空なら IHASH=IHASH:IHASH=IHASH | \"a\"=1:\"b\"=\"x\" |\n| 要素・キー・値の VOID | IVOID | \"v\"=IVOID |\n| 入れ子の要素(Tc600-3以降) | 配列・ハッシュの書式を IARRAY{...} / IHASH{...} で囲む | \"l\"=IARRAY{1:2} |\n\nTc600-3以降のハッシュや入れ子の例:\n\nh,\"a\"=1:\"l\"=IARRAY{1:2}:\"n\"=IHASH{\"x\"=1:\"y\"=\"s\"},\",\",\nv,IHASH{\"k\"=1:IHASH=IHASH}:IARRAY,\",\",\ne,\"e\"=IHASH{IHASH=IHASH:IHASH=IHASH}:\"ea\"=IARRAY{IARRAY:IARRAY},\",\",\n\n入れ子の内側も同じ規則で書き出すので、何段入れ子にしても元の値に戻せます。\n\nハッシュや入れ子を含まない変数の書式は、Tc600-3 より前と同じです。Tc600-3以降で保存したファイルを古いバージョンで読むと、ハッシュや入れ子を含む変数だけが崩れます(600 での変更点)。\n\nCompatibility\n- YAYA: 初期バージョンより対応\n- AYA: 5.8以降\n- Tc600-3: ハッシュと入れ子の値の保存に対応\n\nSee Also\n- RESTOREVAR",
|
|
15555
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SAVEVAR/"
|
|
15715
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SAVEVAR/",
|
|
15716
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SAVEVAR.md"
|
|
15556
15717
|
},
|
|
15557
15718
|
{
|
|
15558
15719
|
"id": "yaya:functions/SETDELIM",
|
|
@@ -15560,7 +15721,8 @@
|
|
|
15560
15721
|
"source": "yaya_docs",
|
|
15561
15722
|
"category": "yaya_function",
|
|
15562
15723
|
"content": "SETDELIM\nCategory: 配列操作\n\nSignature\nSETDELIM( array , delim )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| array | デリミタを設定する単純配列変数 |\n| delim | 設定するデリミタ文字列 |\n\nReturns\nなし\n\nDescription\n変数の標準デリミタ(単純配列の区切り文字)を設定します。デフォルトのデリミタはカンマ(,)です。\n\n注意: 両引数は関数に直接指定する必要があります。以下のような方法では正しく動作しません:\n\n// 不正な使い方(動作しない)\n_i = (var, \"/\")\nSETDELIM(_i)\n\n// 正しい使い方\nSETDELIM(var, \"/\")\n\nCompatibility\n- YAYA: 初期バージョンより対応\n- AYA: 5.8以降\n\nSee Also\n- GETDELIM",
|
|
15563
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SETDELIM/"
|
|
15724
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SETDELIM/",
|
|
15725
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SETDELIM.md"
|
|
15564
15726
|
},
|
|
15565
15727
|
{
|
|
15566
15728
|
"id": "yaya:functions/SETGLOBALDEFINE",
|
|
@@ -15568,7 +15730,8 @@
|
|
|
15568
15730
|
"source": "yaya_docs",
|
|
15569
15731
|
"category": "yaya_function",
|
|
15570
15732
|
"content": "SETGLOBALDEFINE\nCategory: メタ操作・特殊関数\n\nSignature\nSETGLOBALDEFINE( define_name , define_value )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| define_name | #globaldefine で定義する名前 |\n| define_value | #globaldefine で割り当てる値 |\n\nReturns\n- 1: 成功\n- 0: 失敗\n\nDescription\nメモリ上の \"_RUNTIME_DIC_\" という名前の辞書に #globaldefine を記述したのと同等の効果をもたらします。\n\nCompatibility\n- YAYA: Tc562-1以降\n\nSee Also\n- ISGLOBALDEFINE\n- UNDEFGLOBALDEFINE\n- PROCESSGLOBALDEFINE",
|
|
15571
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SETGLOBALDEFINE/"
|
|
15733
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SETGLOBALDEFINE/",
|
|
15734
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SETGLOBALDEFINE.md"
|
|
15572
15735
|
},
|
|
15573
15736
|
{
|
|
15574
15737
|
"id": "yaya:functions/SETLASTERROR",
|
|
@@ -15576,7 +15739,8 @@
|
|
|
15576
15739
|
"source": "yaya_docs",
|
|
15577
15740
|
"category": "yaya_function",
|
|
15578
15741
|
"content": "SETLASTERROR\nCategory: デバッグ\n\nSignature\nSETLASTERROR( code )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| code | 設定するエラーコード(整数値) |\n\nReturns\nなし\n\nDescription\nシステム関数のエラーコードを設定します。YAYA スクリプト実行中にエラー状態を手動で設定することができます。\n\nGETLASTERROR と組み合わせてシステムレベルのエラー状態を管理します。\n\nCompatibility\n- YAYA: 初期バージョンより対応\n- AYA: 5.8以降\n\nSee Also\n- GETLASTERROR",
|
|
15579
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SETLASTERROR/"
|
|
15742
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SETLASTERROR/",
|
|
15743
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SETLASTERROR.md"
|
|
15580
15744
|
},
|
|
15581
15745
|
{
|
|
15582
15746
|
"id": "yaya:functions/SETSETTING",
|
|
@@ -15584,7 +15748,8 @@
|
|
|
15584
15748
|
"source": "yaya_docs",
|
|
15585
15749
|
"category": "yaya_function",
|
|
15586
15750
|
"content": "SETSETTING\nCategory: メタ操作・特殊関数\n\nSignature\nSETSETTING( name , string )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| name | 設定情報のエントリ名(文字列)。基本設定ファイルのエントリ名を指定 |\n| string | 設定する値(文字列) |\n\nReturns\n- 1: 成功\n- 0: 失敗\n\nDescription\n動作中の文の設定情報を変更します。GETSETTING と対になる関数です。\n\n以下の設定エントリは初回ロード時にのみ意味を持つため、実行時に変更しても効果がありません:\n- dic\n- msglang\n- charset.dic\n- checkparser\n\nCompatibility\n- YAYA: 初期バージョンより対応\n\nSee Also\n- GETSETTING\n- 基礎設定",
|
|
15587
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SETSETTING/"
|
|
15751
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SETSETTING/",
|
|
15752
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SETSETTING.md"
|
|
15588
15753
|
},
|
|
15589
15754
|
{
|
|
15590
15755
|
"id": "yaya:functions/SETTAMAHWND",
|
|
@@ -15592,7 +15757,8 @@
|
|
|
15592
15757
|
"source": "yaya_docs",
|
|
15593
15758
|
"category": "yaya_function",
|
|
15594
15759
|
"content": "SETTAMAHWND\nCategory: デバッグ\n\nSignature\nSETTAMAHWND( hwnd )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| hwnd | デバッグツール「玉」のウィンドウハンドル(数値型) |\n\nReturns\nなし(VOID)\n\nDescription\nデバッグツール「玉」のウィンドウハンドルを設定します。設定後はデバッグメッセージがそのウィンドウに出力されます。\n\nCompatibility\n- YAYA: Tc562-1以降",
|
|
15595
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SETTAMAHWND/"
|
|
15760
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SETTAMAHWND/",
|
|
15761
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SETTAMAHWND.md"
|
|
15596
15762
|
},
|
|
15597
15763
|
{
|
|
15598
15764
|
"id": "yaya:functions/SIN",
|
|
@@ -15600,7 +15766,8 @@
|
|
|
15600
15766
|
"source": "yaya_docs",
|
|
15601
15767
|
"category": "yaya_function",
|
|
15602
15768
|
"content": "SIN\nCategory: 数学関数\n\nSignature\nSIN( rad )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| rad | ラジアン単位の角度(数値) |\n\nReturns\n- 成功: サイン値(実数)\n- 失敗: 0.0\n\nDescription\nサインの値を返します。引数の単位はラジアンです。\n\nExample\n_rad = 30 * 3.14159265358 / 180 // 30度をラジアンに変換\nSIN( _rad ) // → 0.500000\n\nCompatibility\n- YAYA: 初期バージョンより対応\n- AYA: 5.8以降\n\nSee Also\n- COS\n- TAN\n- ASIN\n- ACOS\n- ATAN\n- SINH\n- COSH\n- TANH",
|
|
15603
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SIN/"
|
|
15769
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SIN/",
|
|
15770
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SIN.md"
|
|
15604
15771
|
},
|
|
15605
15772
|
{
|
|
15606
15773
|
"id": "yaya:functions/SINH",
|
|
@@ -15608,7 +15775,8 @@
|
|
|
15608
15775
|
"source": "yaya_docs",
|
|
15609
15776
|
"category": "yaya_function",
|
|
15610
15777
|
"content": "SINH\nCategory: 数学関数\n\nSignature\nSINH(rad)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| rad | ラジアン単位の角度値 |\n\nReturns\n- 成功時: 双曲線正弦(実数)\n- 失敗時: 0.0\n\nDescription\n双曲線正弦(ハイパーボリック関数)を計算して返します。引数の単位はラジアンです。\n\nExample\n_rad = 30 * 3.14159265358 / 180 // 30°をラジアンに変換\nSINH(_rad) // 約 0.547853 を返す\n\nCompatibility\n- YAYA: Tc522-1以降\n\nSee Also\n- SIN, COS, TAN(三角関数)\n- ASIN, ACOS, ATAN(逆三角関数)\n- COSH, TANH(双曲線関数)",
|
|
15611
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SINH/"
|
|
15778
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SINH/",
|
|
15779
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SINH.md"
|
|
15612
15780
|
},
|
|
15613
15781
|
{
|
|
15614
15782
|
"id": "yaya:functions/SLEEP",
|
|
@@ -15616,7 +15784,8 @@
|
|
|
15616
15784
|
"source": "yaya_docs",
|
|
15617
15785
|
"category": "yaya_function",
|
|
15618
15786
|
"content": "SLEEP\nCategory: デバッグ\n\nSignature\nSLEEP(millisecond)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| millisecond | 待機時間(ミリ秒単位) |\n\nReturns\n- 成功時: 0\n- 失敗時: -1\n\nDescription\n指定したミリ秒数だけ処理を一時停止します。\n\n長時間の待機を指定するとアプリケーション全体がフリーズするため、短い時間やデバッグ用途に限定して使用することを推奨します。\n\nCompatibility\n- YAYA: Tc564-1以降",
|
|
15619
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SLEEP/"
|
|
15787
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SLEEP/",
|
|
15788
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SLEEP.md"
|
|
15620
15789
|
},
|
|
15621
15790
|
{
|
|
15622
15791
|
"id": "yaya:functions/SPLIT",
|
|
@@ -15624,7 +15793,8 @@
|
|
|
15624
15793
|
"source": "yaya_docs",
|
|
15625
15794
|
"category": "yaya_function",
|
|
15626
15795
|
"content": "SPLIT\nCategory: 文字列操作\n\nSignature\nSPLIT(src, delim [, max])\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| src | 分割対象の文字列(数値変数はTOSTRで変換してから渡すことを推奨) |\n| delim | 区切り文字列 |\n| max | 最大分割数(省略時または0で完全分割) |\n\nReturns\n- 成功時: 分割した文字列要素を含む汎用配列\n- 失敗時: 空の配列\n\nDescription\n文字列を分割して汎用配列として返します。正規表現処理を行わないため、RE_SPLIT よりも高速です。\n\nmax を指定した場合、その数で分割を打ち切り、残りの部分は最後の要素にまとめられます。\n\nExample\n_array = SPLIT(\"A//B//C//D//E\", \"//\", 3)\n// 結果: (\"A\", \"B\", \"C//D//E\")\n\nCompatibility\n- YAYA: 初期バージョンより利用可能\n- AYA: 5.8以降\n\nSee Also\n- RE_SPLIT(正規表現を使った分割)",
|
|
15627
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SPLIT/"
|
|
15796
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SPLIT/",
|
|
15797
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SPLIT.md"
|
|
15628
15798
|
},
|
|
15629
15799
|
{
|
|
15630
15800
|
"id": "yaya:functions/SPLITPATH",
|
|
@@ -15632,7 +15802,8 @@
|
|
|
15632
15802
|
"source": "yaya_docs",
|
|
15633
15803
|
"category": "yaya_function",
|
|
15634
15804
|
"content": "SPLITPATH\nCategory: 文字列操作\n\nSignature\nSPLITPATH(string)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 分解対象のパス文字列 |\n\nReturns\n- 成功時: (ドライブ名, パス, ファイル名本体, 拡張子) の汎用配列\n- 失敗時: 0\n\nDescription\n指定したパス文字列を要素に分解して汎用配列として返します。返す配列の内容はドライブ名・パス・ファイル名本体・拡張子の4要素です。\n\nExample\n// 例1: Windowsの絶対パス\n_i = SPLITPATH(\"C:\\\\umeici\\\\sample\\\\readme.txt\")\n// 結果: \"C:\", \"\\\\umeici\\\\sample\\\\\", \"readme\", \".txt\"\n\n// 例2: 相対パス\n_j = SPLITPATH(\"../../../aa/bb/cc.ddd\")\n// 結果: \"\", \"../../../aa/bb/\", \"cc\", \".ddd\"\n\nCompatibility\n- YAYA: 初期バージョンより利用可能\n- AYA: 5.8以降",
|
|
15635
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SPLITPATH/"
|
|
15805
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SPLITPATH/",
|
|
15806
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SPLITPATH.md"
|
|
15636
15807
|
},
|
|
15637
15808
|
{
|
|
15638
15809
|
"id": "yaya:functions/SQRT",
|
|
@@ -15640,7 +15811,8 @@
|
|
|
15640
15811
|
"source": "yaya_docs",
|
|
15641
15812
|
"category": "yaya_function",
|
|
15642
15813
|
"content": "SQRT\nCategory: 数学関数\n\nSignature\nSQRT(val)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| val | 平方根を求める実数値 |\n\nReturns\n- 成功時: val の平方根(実数)\n- 失敗時: 0.0\n\nDescription\n指定した値の平方根を返します。\n\nCompatibility\n- YAYA: 初期バージョンより利用可能\n- AYA: 5.8以降\n\nSee Also\n- POW(べき乗関数)",
|
|
15643
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SQRT/"
|
|
15814
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SQRT/",
|
|
15815
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SQRT.md"
|
|
15644
15816
|
},
|
|
15645
15817
|
{
|
|
15646
15818
|
"id": "yaya:functions/SRAND",
|
|
@@ -15648,7 +15820,8 @@
|
|
|
15648
15820
|
"source": "yaya_docs",
|
|
15649
15821
|
"category": "yaya_function",
|
|
15650
15822
|
"content": "SRAND\nCategory: 数学関数\n\nSignature\nSRAND( [seed] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| seed | 乱数のシード値(整数・実数・文字列を受け付ける)。省略時は現在時刻でランダムに初期化 |\n\nReturns\n- 成功時: 1\n- 失敗時: 0\n\nDescription\n整数乱数のシードを設定します。引数を省略した場合は現在時刻を基にシードを初期化します。\n\nシステム辞書内で RAND 関数が使用されている場合があるため、SRAND を使用する際は影響範囲に注意してください。\n\nCompatibility\n- YAYA: Tc551-1以降\n\nSee Also\n- RAND(乱数生成)",
|
|
15651
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SRAND/"
|
|
15823
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SRAND/",
|
|
15824
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SRAND.md"
|
|
15652
15825
|
},
|
|
15653
15826
|
{
|
|
15654
15827
|
"id": "yaya:functions/STRDECODE",
|
|
@@ -15656,7 +15829,8 @@
|
|
|
15656
15829
|
"source": "yaya_docs",
|
|
15657
15830
|
"category": "yaya_function",
|
|
15658
15831
|
"content": "STRDECODE\nCategory: 文字列操作\n\nSignature\nSTRDECODE(string [, code] [, type])\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | デコード対象の文字列 |\n| code | 変換に使う文字コードID(省略時は0) |\n| type | デコード形式。url(URLエンコード)または base64(Base64)を指定。省略時は url |\n\nReturns\n- 成功時: デコードされた文字列\n- 失敗時: 0\n\nDescription\n指定した文字コードとエンコード形式で文字列をデコードします。文字コードIDについてはマニュアルの文字コード一覧を参照してください。\n\nCompatibility\n- YAYA: Tc521-1以降(Tc532-1で GETSTRURLDECODE から改名)\n\nSee Also\n- STRENCODE(エンコード関数)",
|
|
15659
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/STRDECODE/"
|
|
15832
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/STRDECODE/",
|
|
15833
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/STRDECODE.md"
|
|
15660
15834
|
},
|
|
15661
15835
|
{
|
|
15662
15836
|
"id": "yaya:functions/STRDIGEST",
|
|
@@ -15664,7 +15838,8 @@
|
|
|
15664
15838
|
"source": "yaya_docs",
|
|
15665
15839
|
"category": "yaya_function",
|
|
15666
15840
|
"content": "STRDIGEST\nCategory: 文字列操作\n\nSignature\nSTRDIGEST(string, type)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | ダイジェスト値を計算する対象の文字列 |\n| type | ハッシュアルゴリズム。CRC32(32ビットCRC)、MD5、SHA-1 または SHA1 を指定 |\n\nReturns\n- 成功時: 計算されたダイジェスト値の16進数文字列\n- 失敗時: -1\n\nDescription\n指定した文字列のダイジェスト(ハッシュ)値を計算して返します。文字列の文字コードは内部表現(UTF-16)が使用されます。\n\nCompatibility\n- YAYA: Tc568-1以降\n\nSee Also\n- FDIGEST(ファイルのダイジェスト計算)",
|
|
15667
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/STRDIGEST/"
|
|
15841
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/STRDIGEST/",
|
|
15842
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/STRDIGEST.md"
|
|
15668
15843
|
},
|
|
15669
15844
|
{
|
|
15670
15845
|
"id": "yaya:functions/STRENCODE",
|
|
@@ -15672,7 +15847,8 @@
|
|
|
15672
15847
|
"source": "yaya_docs",
|
|
15673
15848
|
"category": "yaya_function",
|
|
15674
15849
|
"content": "STRENCODE\nCategory: 文字列操作\n\nSignature\nSTRENCODE(string [, code] [, type])\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | エンコード対象の文字列 |\n| code | エンコードに使う文字コードID(省略時は0) |\n| type | エンコード形式。url(URLエンコード)、form(スペースを + に変換するフォームエンコード)、base64(Base64)を指定。省略時は url |\n\nReturns\n- 成功時: エンコードされた文字列\n- 失敗時: 0\n\nDescription\n指定した文字コードとエンコード形式で文字列をエンコードします。文字コードIDについてはマニュアルの文字コード一覧を参照してください。\n\nCompatibility\n- YAYA: Tc521-1以降(Tc532-1で GETSTRURLENCODE から改名)\n\nSee Also\n- STRDECODE(デコード関数)",
|
|
15675
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/STRENCODE/"
|
|
15850
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/STRENCODE/",
|
|
15851
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/STRENCODE.md"
|
|
15676
15852
|
},
|
|
15677
15853
|
{
|
|
15678
15854
|
"id": "yaya:functions/STRFORM",
|
|
@@ -15680,7 +15856,8 @@
|
|
|
15680
15856
|
"source": "yaya_docs",
|
|
15681
15857
|
"category": "yaya_function",
|
|
15682
15858
|
"content": "STRFORM\nCategory: 文字列操作\n\nSignature\nSTRFORM(format [, arg ...])\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| format | フォーマット文字列 |\n| arg | フォーマット文字列に埋め込む引数(複数指定可) |\n\nReturns\n- 成功時: フォーマットされた文字列\n- 失敗時: 動作は未定義\n\nDescription\nC言語の sprintf に相当するフォーマット済み文字列を返します。\n\nフォーマット指定子は % の代わりに $ をプレフィックスとして使用します(例: $04d, $s)。各フォーマット指定子で展開される文字列は最大1024文字です。\n\nExample\nyear = 1941\nwarname = \"太平洋\"\nstr = STRFORM(\"$04d年 $s戦争勃発。\", year, warname)\n// 結果: \"1941年 太平洋戦争勃発。\"\n\nCompatibility\n- YAYA: 初期バージョンより利用可能\n- AYA: 5.8以降",
|
|
15683
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/STRFORM/"
|
|
15859
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/STRFORM/",
|
|
15860
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/STRFORM.md"
|
|
15684
15861
|
},
|
|
15685
15862
|
{
|
|
15686
15863
|
"id": "yaya:functions/STRLEN",
|
|
@@ -15688,7 +15865,8 @@
|
|
|
15688
15865
|
"source": "yaya_docs",
|
|
15689
15866
|
"category": "yaya_function",
|
|
15690
15867
|
"content": "STRLEN\nCategory: 文字列操作\n\nSignature\nSTRLEN(string)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 文字数を取得する文字列 |\n\nReturns\n- 成功時: 文字数(整数)\n- 失敗時: 0\n\nDescription\n文字列の文字数を返します。バイト数ではなく文字数を返すため、漢字などのマルチバイト文字も1文字としてカウントされます。\n\nCompatibility\n- YAYA: 初期バージョンより利用可能\n- AYA: 5.8以降\n\nSee Also\n- STRSTR(部分文字列検索)\n- SUBSTR(部分文字列取得)\n- GETSTRBYTES(バイト数取得)",
|
|
15691
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/STRLEN/"
|
|
15868
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/STRLEN/",
|
|
15869
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/STRLEN.md"
|
|
15692
15870
|
},
|
|
15693
15871
|
{
|
|
15694
15872
|
"id": "yaya:functions/STRSTR",
|
|
@@ -15696,7 +15874,8 @@
|
|
|
15696
15874
|
"source": "yaya_docs",
|
|
15697
15875
|
"category": "yaya_function",
|
|
15698
15876
|
"content": "STRSTR\nCategory: 文字列操作\n\nSignature\nSTRSTR(src, search, pos)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| src | 検索対象の文字列 |\n| search | 検索する部分文字列 |\n| pos | 検索開始位置(0始まり) |\n\nReturns\n- 見つかった場合: 部分文字列が始まる文字位置(0始まり)\n- 見つからない場合: -1\n\nDescription\n文字列内の部分文字列を検索し、見つかった文字位置を返します。\n\nCompatibility\n- YAYA: 初期バージョンより利用可能\n- AYA: 5.8以降\n\nSee Also\n- STRLEN(文字列長取得)\n- SUBSTR(部分文字列取得)",
|
|
15699
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/STRSTR/"
|
|
15877
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/STRSTR/",
|
|
15878
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/STRSTR.md"
|
|
15700
15879
|
},
|
|
15701
15880
|
{
|
|
15702
15881
|
"id": "yaya:functions/SUBSTR",
|
|
@@ -15704,7 +15883,8 @@
|
|
|
15704
15883
|
"source": "yaya_docs",
|
|
15705
15884
|
"category": "yaya_function",
|
|
15706
15885
|
"content": "SUBSTR\nCategory: 文字列操作\n\nSignature\nSUBSTR(src, pos, len)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| src | 取得元の文字列 |\n| pos | 取得開始位置(0始まり。負の値は末尾からのオフセット) |\n| len | 取得する文字数 |\n\nReturns\n- 成功時: 取得した部分文字列\n- pos が文字列長を超える場合: 空文字列 \"\"\n- pos + len が文字列末尾を超える場合: 末尾まで取得\n- エラー時: VOID\n\nDescription\n文字列から部分文字列を取り出します。pos に負の値を指定した場合は文字列の末尾からのオフセットとして扱われます(例: -2 は末尾から2番目の文字)。\n\nExample\nSUBSTR(\"HOGE\", -2, 1) // 結果: \"G\"(末尾から2番目の文字)\n\nCompatibility\n- YAYA: 初期バージョンより利用可能\n- AYA: 5.8以降(ただし負の pos 値は非対応)\n\nSee Also\n- STRSTR(部分文字列検索)\n- STRLEN(文字列長取得)",
|
|
15707
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SUBSTR/"
|
|
15886
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/SUBSTR/",
|
|
15887
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/SUBSTR.md"
|
|
15708
15888
|
},
|
|
15709
15889
|
{
|
|
15710
15890
|
"id": "yaya:functions/TAN",
|
|
@@ -15712,7 +15892,8 @@
|
|
|
15712
15892
|
"source": "yaya_docs",
|
|
15713
15893
|
"category": "yaya_function",
|
|
15714
15894
|
"content": "TAN\nCategory: 数学関数\n\nSignature\nTAN(rad)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| rad | ラジアン単位の角度値 |\n\nReturns\n- 成功時: タンジェントの値(実数)\n- 失敗時: 0.0\n\nDescription\nタンジェントを返します。引数の単位はラジアンです。\n\nExample\n_rad = 45 * 3.14159265358 / 180 // 45°をラジアンに変換\nTAN(_rad) // 約 1.000000 を返す\n\nCompatibility\n- YAYA: 初期バージョンより利用可能\n- AYA: 5.8以降\n\nSee Also\n- SIN, COS(三角関数)\n- ASIN, ACOS, ATAN(逆三角関数)\n- SINH, COSH, TANH(双曲線関数)",
|
|
15715
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TAN/"
|
|
15895
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TAN/",
|
|
15896
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/TAN.md"
|
|
15716
15897
|
},
|
|
15717
15898
|
{
|
|
15718
15899
|
"id": "yaya:functions/TANH",
|
|
@@ -15720,7 +15901,8 @@
|
|
|
15720
15901
|
"source": "yaya_docs",
|
|
15721
15902
|
"category": "yaya_function",
|
|
15722
15903
|
"content": "TANH\nCategory: 数学関数\n\nSignature\nTANH(rad)\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| rad | ラジアン単位の角度値 |\n\nReturns\n- 成功時: 双曲線タンジェント(実数)\n- 失敗時: 0.0\n\nDescription\n双曲線タンジェント(ハイパーボリック関数)を返します。引数の単位はラジアンです。\n\nExample\n_rad = 45 * 3.14159265358 / 180 // 45°をラジアンに変換\nTANH(_rad) // 約 0.655794 を返す\n\nCompatibility\n- YAYA: Tc522-1以降\n\nSee Also\n- SIN, COS, TAN(三角関数)\n- ASIN, ACOS, ATAN(逆三角関数)\n- SINH, COSH(双曲線関数)",
|
|
15723
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TANH/"
|
|
15904
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TANH/",
|
|
15905
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/TANH.md"
|
|
15724
15906
|
},
|
|
15725
15907
|
{
|
|
15726
15908
|
"id": "yaya:functions/TOAUTO",
|
|
@@ -15728,7 +15910,8 @@
|
|
|
15728
15910
|
"source": "yaya_docs",
|
|
15729
15911
|
"category": "yaya_function",
|
|
15730
15912
|
"content": "TOAUTO\nCategory: 型取得/変換\n\nSignature\nTOAUTO( string )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 変換したい文字列 |\n\nReturns\n- 整数に解釈できる場合: 整数値\n- 実数に解釈できる場合(整数変換が失敗した場合): 実数値\n- どちらにも解釈できない場合: 元の文字列をそのまま返す\n\nDescription\n文字列に対して自動的な型変換を試みる関数。整数への変換を優先的に試み、失敗した場合に実数への変換を試みる。どちらの変換も成功しない場合は、元の文字列をそのまま返す。\n\n一般配列を引数として渡した場合の動作は未定義。\n\nCompatibility\n- YAYA: TC516-901 以降\n\nSee Also\n- TOINT\n- TOREAL\n- TOSTR\n- TOAUTOEX\n- CVAUTO",
|
|
15731
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOAUTO/"
|
|
15913
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOAUTO/",
|
|
15914
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/TOAUTO.md"
|
|
15732
15915
|
},
|
|
15733
15916
|
{
|
|
15734
15917
|
"id": "yaya:functions/TOAUTOEX",
|
|
@@ -15736,7 +15919,8 @@
|
|
|
15736
15919
|
"source": "yaya_docs",
|
|
15737
15920
|
"category": "yaya_function",
|
|
15738
15921
|
"content": "TOAUTOEX\nCategory: 型取得/変換\n\nSignature\nTOAUTOEX( string )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 変換したい文字列 |\n\nReturns\n- 整数に解釈できる場合: 整数値\n- 実数に解釈できる場合(整数変換が失敗した場合): 実数値\n- どちらにも解釈できない場合: 元の文字列をそのまま返す\n\nDescription\n文字列に対して自動的な型変換を試みる関数。TOAUTOとの違いは、「さらに文字列変換した結果が元の文字列と一致する場合のみ」変換を行う点。\n\n整数への変換を優先的に試み、失敗した場合に実数への変換を試みる。どちらの変換も成功しない場合は、元の文字列をそのまま返す。\n\n一般配列を引数として渡した場合の動作は未定義。\n\nCompatibility\n- YAYA: TC571-3 以降\n\nSee Also\n- TOINT\n- TOREAL\n- TOSTR\n- TOAUTO\n- CVAUTO\n- PARSEHEADER",
|
|
15739
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOAUTOEX/"
|
|
15922
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOAUTOEX/",
|
|
15923
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/TOAUTOEX.md"
|
|
15740
15924
|
},
|
|
15741
15925
|
{
|
|
15742
15926
|
"id": "yaya:functions/TOBINSTR",
|
|
@@ -15744,7 +15928,8 @@
|
|
|
15744
15928
|
"source": "yaya_docs",
|
|
15745
15929
|
"category": "yaya_function",
|
|
15746
15930
|
"content": "TOBINSTR\nCategory: 文字列操作\n\nSignature\nTOBINSTR( var )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| var | 変換する整数値 |\n\nReturns\n- 成功: 2進数値文字列\n- 失敗: VOID\n\nDescription\n整数を2進数値文字列へ変換する。\n\nExample\n_i = 30\n_bin = TOBINSTR( _i )\n_bin // \"11110\" (10進数30 = 2進数11110)\n\nCompatibility\n- YAYA: 初期バージョンより\n- AYA: 5.8以降\n- Tc574-4 / Tc602-5: 整数の最小値(-9223372036854775808)が - だけになっていたのを修正\n\nSee Also\n- TOHEXSTR\n- BINSTRTOI",
|
|
15747
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOBINSTR/"
|
|
15931
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOBINSTR/",
|
|
15932
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/TOBINSTR.md"
|
|
15748
15933
|
},
|
|
15749
15934
|
{
|
|
15750
15935
|
"id": "yaya:functions/TOHEXSTR",
|
|
@@ -15752,7 +15937,8 @@
|
|
|
15752
15937
|
"source": "yaya_docs",
|
|
15753
15938
|
"category": "yaya_function",
|
|
15754
15939
|
"content": "TOHEXSTR\nCategory: 文字列操作\n\nSignature\nTOHEXSTR( var )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| var | 変換する整数値 |\n\nReturns\n- 成功: 16進数値文字列\n- 失敗: VOID\n\nDescription\n整数を16進数値文字列へ変換する。\n\nExample\n_i = 30\n_hex = TOHEXSTR( _i )\n_hex // \"1E\" (10進数30 = 16進数1E)\n\nCompatibility\n- YAYA: 初期バージョンより\n- AYA: 5.8以降\n- Tc574-4 / Tc602-5: 整数の最小値(-9223372036854775808)が - だけになっていたのを修正\n\nSee Also\n- TOBINSTR\n- HEXSTRTOI",
|
|
15755
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOHEXSTR/"
|
|
15940
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOHEXSTR/",
|
|
15941
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/TOHEXSTR.md"
|
|
15756
15942
|
},
|
|
15757
15943
|
{
|
|
15758
15944
|
"id": "yaya:functions/TOINT",
|
|
@@ -15760,7 +15946,8 @@
|
|
|
15760
15946
|
"source": "yaya_docs",
|
|
15761
15947
|
"category": "yaya_function",
|
|
15762
15948
|
"content": "TOINT\nCategory: 型取得/変換\n\nSignature\nTOINT( string )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 変換したい文字列または実数 |\n\nReturns\n- 成功: 変換後の整数値\n- 失敗: 0\n\nDescription\n文字列・実数を整数に変換する。小数点以下は単純に切り捨てられる。\n\nTc542-4以前のバージョンではFLOOR()相当の動作(バグ)があったが、Tc542-4以降では他言語と同様に小数点以下を単純に切り捨てる動作となった。\n\nExample\n_i = '100'\n_j = TOINT( _i ) + 1\n// 101 (文字列連結ではなく整数加算)\n\n_i = 1.1\n_j = TOINT( _i )\n// 1\n\n_i = -1.1\n_j = TOINT( _i )\n// -1 (Tc542-4以降の動作)\n\nCompatibility\n- YAYA: 初期バージョンより\n- AYA: 5.8以降\n- Tc542-4以降: 負の小数の切り捨て動作変更\n- Tc574-4 / Tc602-6: 数字の後に a(A)が続く文字列で、a を 10 という桁として読んでしまい TOINT('1a') が 20 になっていたのを修正(1 になる)\n\nSee Also\n- TOSTR\n- TOREAL",
|
|
15763
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOINT/"
|
|
15949
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOINT/",
|
|
15950
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/TOINT.md"
|
|
15764
15951
|
},
|
|
15765
15952
|
{
|
|
15766
15953
|
"id": "yaya:functions/TOLOWER",
|
|
@@ -15768,7 +15955,8 @@
|
|
|
15768
15955
|
"source": "yaya_docs",
|
|
15769
15956
|
"category": "yaya_function",
|
|
15770
15957
|
"content": "TOLOWER\nCategory: 文字列操作\n\nSignature\nTOLOWER( string [ , locale ] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 変換したい文字列 |\n| locale | (省略可)setlocale互換のロケール文字列。省略時はCモード(A-Zのみa-zに変換) |\n\nReturns\n- 成功: 変換後の小文字文字列\n- 失敗: VOID\n\nDescription\n文字列中の大文字をすべて小文字に変換して返す。localeを省略した場合はCモード(A-Zのみa-zに変換)となる。\n\nExample\n_str = 'sAkuRa'\n_str = TOLOWER( _str )\n_str // 'sakura'\n\nCompatibility\n- YAYA: 初期バージョンより(localeパラメータはTc569-5以降)\n- AYA: 5.8以降\n\nSee Also\n- TOUPPER",
|
|
15771
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOLOWER/"
|
|
15958
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOLOWER/",
|
|
15959
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/TOLOWER.md"
|
|
15772
15960
|
},
|
|
15773
15961
|
{
|
|
15774
15962
|
"id": "yaya:functions/TOREAL",
|
|
@@ -15776,7 +15964,8 @@
|
|
|
15776
15964
|
"source": "yaya_docs",
|
|
15777
15965
|
"category": "yaya_function",
|
|
15778
15966
|
"content": "TOREAL\nCategory: 型取得/変換\n\nSignature\nTOREAL( string )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 変換したい文字列または整数 |\n\nReturns\n- 成功: 変換後の実数値\n- 失敗: 0.0\n\nDescription\n文字列または整数を実数(浮動小数点数)に変換する。\n\nExample\n_s = '1.00005'\n_d = TOREAL( _s )\n_d // 1.000050 (実数)\n\n_i = 1\n_d = TOREAL( _i )\n_d // 1.000000 (実数)\n\nCompatibility\n- YAYA: 初期バージョンより\n- AYA: 5.8以降\n\nSee Also\n- TOINT\n- TOSTR",
|
|
15779
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOREAL/"
|
|
15967
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOREAL/",
|
|
15968
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/TOREAL.md"
|
|
15780
15969
|
},
|
|
15781
15970
|
{
|
|
15782
15971
|
"id": "yaya:functions/TOSTR",
|
|
@@ -15784,7 +15973,8 @@
|
|
|
15784
15973
|
"source": "yaya_docs",
|
|
15785
15974
|
"category": "yaya_function",
|
|
15786
15975
|
"content": "TOSTR\nCategory: 型取得/変換\n\nSignature\nTOSTR( var )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| var | 変換する整数、実数、または一般配列 |\n\nReturns\n- 成功: 変換後の文字列\n- 失敗: VOID\n\nDescription\n整数・実数・一般配列を文字列に変換する。一般配列を渡した場合は、要素をカンマで結合した文字列を返す。\n\nExample\n_i = 100\n_result = TOSTR( _i )\n// \"100\"\n\n_array = ('さくら','ねここ','まゆら')\n_result = TOSTR( _array )\n// \"さくら,ねここ,まゆら\"\n\nCompatibility\n- YAYA: 初期バージョンより\n- AYA: 5.8以降\n- Tc574-4 / Tc602-5: 整数の最小値(-9223372036854775808)が - だけになっていたのを修正\n- Tc574-4 / Tc601-1: 1e57 以上の実数を文字列にすると、末尾にゴミが混ざることがあったのを修正\n\nSee Also\n- TOINT\n- TOREAL",
|
|
15787
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOSTR/"
|
|
15976
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOSTR/",
|
|
15977
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/TOSTR.md"
|
|
15788
15978
|
},
|
|
15789
15979
|
{
|
|
15790
15980
|
"id": "yaya:functions/TOUPPER",
|
|
@@ -15792,7 +15982,8 @@
|
|
|
15792
15982
|
"source": "yaya_docs",
|
|
15793
15983
|
"category": "yaya_function",
|
|
15794
15984
|
"content": "TOUPPER\nCategory: 文字列操作\n\nSignature\nTOUPPER( string [ , locale ] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| string | 変換したい文字列 |\n| locale | (省略可)setlocale互換のロケール文字列。省略時はCモード(a-zのみA-Zに変換) |\n\nReturns\n- 成功: 変換後の大文字文字列\n- 失敗: VOID\n\nDescription\n文字列中の小文字をすべて大文字に変換して返す。localeを省略した場合はCモード(a-zのみA-Zに変換)となる。\n\nExample\n_str = 'sAkuRa'\n_str = TOUPPER( _str )\n_str // 'SAKURA'\n\nCompatibility\n- YAYA: 初期バージョンより(localeパラメータはTc569-5以降)\n- AYA: 5.8以降\n\nSee Also\n- TOLOWER\n- TRANSLATE",
|
|
15795
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOUPPER/"
|
|
15985
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TOUPPER/",
|
|
15986
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/TOUPPER.md"
|
|
15796
15987
|
},
|
|
15797
15988
|
{
|
|
15798
15989
|
"id": "yaya:functions/TRANSLATE",
|
|
@@ -15800,7 +15991,8 @@
|
|
|
15800
15991
|
"source": "yaya_docs",
|
|
15801
15992
|
"category": "yaya_function",
|
|
15802
15993
|
"content": "TRANSLATE\nCategory: 文字列操作\n\nSignature\nTRANSLATE( text, format_from, format_to )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| text | 置換対象の文字列 |\n| format_from | 置換前の文字リスト(書式あり、後述) |\n| format_to | 置換後の文字リスト。空文字列を指定すると削除 |\n\nReturns\n- 成功: 置換後の文字列\n- 失敗: -1\n\nDescription\n文字列を文字単位で高速に置換する。Perlのtr///(オプションなし)相当の機能を提供する。\n\n書式\n\n単純な列挙: 文字を1対1でマッピングする。リストにない文字は変更されない。\nTRANSLATE('ぬるぽガッ', 'ぽガ', 'りゴ') // 'ぬるりゴッ'\n\n範囲指定: 「-」を使ってUnicodeの範囲を指定して一括置換する。\nTRANSLATE('123456789', '1-9', '①-⑨') // '①②③④⑤⑥⑦⑧⑨'\n\nエスケープ: \\\\- でリテラルのハイフン、\\\\\\\\ でリテラルのバックスラッシュを指定する。\nTRANSLATE('\\\\-\\\\-\\\\-', '\\\\\\\\', '\\\\-') // '------'\n\n削除: 第3引数を空文字列にすると、該当文字を削除する。\nTRANSLATE('46cm三連装砲', '0-9a-z', '') // '三連装砲'\n\nExample\nひらがな・カタカナの相互変換:\n_wokyu = TRANSLATE('ティータイムは大事にしないとネー', 'ぁ-んァ-ン', 'ァ-ンぁ-ん')\n\nSee Also\n- ZEN2HAN\n- HAN2ZEN\n- REPLACE",
|
|
15803
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TRANSLATE/"
|
|
15994
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/TRANSLATE/",
|
|
15995
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/TRANSLATE.md"
|
|
15804
15996
|
},
|
|
15805
15997
|
{
|
|
15806
15998
|
"id": "yaya:functions/UNDEFFUNC",
|
|
@@ -15808,7 +16000,8 @@
|
|
|
15808
16000
|
"source": "yaya_docs",
|
|
15809
16001
|
"category": "yaya_function",
|
|
15810
16002
|
"content": "UNDEFFUNC\nCategory: メタ操作・特殊関数\n\nSignature\nUNDEFFUNC( funcname )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| funcname | 読み込み解除する関数名 |\n\nReturns\n- 0: 成功\n- 1: 失敗\n\nDescription\n指定した関数を読み込み解除する。\n\nアンロードにより辞書ファイルに問題が生じる場合はエラーとなり、何も起こらない。また、既に他の箇所から参照されている関数はアンロードできない。\n\nCompatibility\n- YAYA: Tc561-1 以降\n\nSee Also\n- DICUNLOAD\n- UNDEFGLOBALDEFINE",
|
|
15811
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/UNDEFFUNC/"
|
|
16003
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/UNDEFFUNC/",
|
|
16004
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/UNDEFFUNC.md"
|
|
15812
16005
|
},
|
|
15813
16006
|
{
|
|
15814
16007
|
"id": "yaya:functions/UNDEFGLOBALDEFINE",
|
|
@@ -15816,7 +16009,8 @@
|
|
|
15816
16009
|
"source": "yaya_docs",
|
|
15817
16010
|
"category": "yaya_function",
|
|
15818
16011
|
"content": "UNDEFGLOBALDEFINE\nCategory: メタ操作・特殊関数\n\nSignature\nUNDEFGLOBALDEFINE( definename )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| definename | #globaldefine で宣言したディレクティブ名 |\n\nReturns\n- 0: 成功\n- 1: 失敗\n\nDescription\n#globaldefine で宣言されたディレクティブを無効化・削除する。\n\n#globaldefine で定義されたテキストを辞書ファイルに直接挿入することはできない。クォートで囲んでいてもプリプロセッサが適用されてしまうため、回避するには対象文字列を分割して記述する(例: \"TEST_\" + \"DEF\" のように連結する)。\n\nCompatibility\n- YAYA: Tc561-1 以降\n\nSee Also\n- DICUNLOAD\n- SETGLOBALDEFINE\n- ISGLOBALDEFINE\n- PROCESSGLOBALDEFINE",
|
|
15819
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/UNDEFGLOBALDEFINE/"
|
|
16012
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/UNDEFGLOBALDEFINE/",
|
|
16013
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/UNDEFGLOBALDEFINE.md"
|
|
15820
16014
|
},
|
|
15821
16015
|
{
|
|
15822
16016
|
"id": "yaya:functions/UNLOADLIB",
|
|
@@ -15824,7 +16018,8 @@
|
|
|
15824
16018
|
"source": "yaya_docs",
|
|
15825
16019
|
"category": "yaya_function",
|
|
15826
16020
|
"content": "UNLOADLIB\nCategory: 外部ライブラリ\n\nSignature\nUNLOADLIB( path )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| path | DLLのパス。YAYAのディレクトリからの相対パスまたは絶対パス |\n\nReturns\nVOID(戻り値なし)\n\nDescription\n外部ライブラリ(DLL)をアンロードする。最初の呼び出し時にアンロード操作を実行し、その後FreeLibraryを行う。\n\n外部ライブラリDLLは、YAYA自身と同じインターフェース(load/unload/request関数のエクスポート)を持っている必要がある。\n\nCompatibility\n- YAYA: 初期バージョンより\n- AYA: 5.8以降\n\nSee Also\n- LOADLIB\n- REQUESTLIB",
|
|
15827
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/UNLOADLIB/"
|
|
16021
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/UNLOADLIB/",
|
|
16022
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/UNLOADLIB.md"
|
|
15828
16023
|
},
|
|
15829
16024
|
{
|
|
15830
16025
|
"id": "yaya:functions/ZEN2HAN",
|
|
@@ -15832,7 +16027,8 @@
|
|
|
15832
16027
|
"source": "yaya_docs",
|
|
15833
16028
|
"category": "yaya_function",
|
|
15834
16029
|
"content": "ZEN2HAN\nCategory: 文字列操作\n\nSignature\nZEN2HAN( src [ , type ] )\n\nParameters\n| Parameter | Description |\n|-----------|-------------|\n| src | 変換する文字列 |\n| type | (省略可)変換する文字種をカンマ区切りで指定。省略時はすべて変換 |\n\ntypeに指定できる値\n| 値 | 対象文字種 |\n|----|-----------|\n| number | 数字(0〜9) |\n| alphabet | 英字 |\n| symbol | 記号・句読点 |\n| kana | カタカナおよび句読点 |\n\nReturns\n- 成功: 変換後の文字列\n- 失敗: VOID\n\nDescription\n文字列中の全角英数字・カタカナを半角に変換する。typeパラメータで変換対象の文字種を絞り込むことができる。\n\nExample\nZEN2HAN('2007ABCアイウエオ', 'number,alphabet')\n// \"2007ABCアイウエオ\" (数字と英字のみ変換、カタカナは変換しない)\n\nCompatibility\n- YAYA: TC513-901 以降\n\nSee Also\n- HAN2ZEN\n- TRANSLATE",
|
|
15835
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ZEN2HAN/"
|
|
16030
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/functions/ZEN2HAN/",
|
|
16031
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/functions/ZEN2HAN.md"
|
|
15836
16032
|
},
|
|
15837
16033
|
{
|
|
15838
16034
|
"id": "yaya:grammar/01-basic-settings",
|
|
@@ -15840,7 +16036,8 @@
|
|
|
15840
16036
|
"source": "yaya_docs",
|
|
15841
16037
|
"category": "yaya_grammar",
|
|
15842
16038
|
"content": "基礎設定\n\n概要\n\nYAYAはDLL名に .txt を付加した設定ファイル(デフォルト: yaya.txt)を必要とする。このファイルはASCIIエンコーディングを使用し、コンマ区切りのコマンドとパラメータで構成される。\n\nコメント: // 以降の行および /* ~ */ 間の内容は無視される。\n\n設定例\n\ndic, basis.dic\ncharset, UTF-8\ncharset.dic, Shift_JIS\nlog, executelog.txt\n\n文字コード設定\n\ncharset でデフォルトエンコーディングを指定する(Shift_JIS / UTF-8 / OSデフォルト)。\n\n| 設定キー | 説明 |\n|---------|------|\n| charset | デフォルト文字コード |\n| charset.dic | 辞書ファイルの文字コード |\n| charset.setting | 設定ファイルの文字コード |\n| charset.output | request関数のI/O文字コード |\n| charset.log | ログファイルの文字コード |\n| charset.file | ファイルI/Oの文字コード |\n| charset.save | グローバル変数保存ファイルの文字コード |\n| charset.extension | 外部DLL通信の文字コード |\n\n辞書ファイルの読み込み\n\n辞書ファイルはプログラム動作を定義するスクリプトソースファイル。\n\n| コマンド | 説明 |\n|---------|------|\n| dic, ファイル名 | 辞書を読み込む |\n| dicif, ファイル名 | ファイルが存在する場合のみ読み込む |\n| dicdir, ディレクトリ名 | 指定ディレクトリ内のすべてのファイルを読み込む |\n\nログ・デバッグ設定\n\n| 設定キー | 説明 |\n|---------|------|\n| log, ファイル名 | 実行ログを有効化 |\n| iolog, [on|off] | I/Oログの制御(デフォルト: on) |\n| iolog.filter.keyword | 指定キーワードに一致するリクエストをログから除外 |\n| fncdepth, [深さ] | 関数呼び出し深さの上限(デフォルト: 32) |\n| looplimit, [回数] | ループ繰り返し回数の上限(デフォルト: 10000) |\n\nその他の設定\n\n| 設定キー | 説明 |\n|---------|------|\n| basepath, ディレクトリ | ファイル操作のベースディレクトリ |\n| include, ファイル名 | 外部設定ファイルのインクルード |\n| save.encode, [on|off] | セーブファイルの暗号化 |\n| save.auto, [on|off] | 変数の自動保存を有効化 |\n| maxlognum, [数] | エラーログの最大エントリ数(デフォルト: 256) |\n\n緊急設定\n\nバージョン Tc555-1+ では、辞書読み込み失敗時のフォールバック設定をサポート。辞書読み込みが失敗すると、nullを返す前に yaya_emerg.txt の読み込みを試みる。",
|
|
15843
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/01-basic-settings/"
|
|
16039
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/01-basic-settings/",
|
|
16040
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/grammar/01-basic-settings.md"
|
|
15844
16041
|
},
|
|
15845
16042
|
{
|
|
15846
16043
|
"id": "yaya:grammar/02-functions",
|
|
@@ -15848,7 +16045,8 @@
|
|
|
15848
16045
|
"source": "yaya_docs",
|
|
15849
16046
|
"category": "yaya_grammar",
|
|
15850
16047
|
"content": "関数\n\n概要\n\n関数は「0個以上の引数を取り、0個以上の候補から1つの出力を返す処理」として定義される。引数は _argc(引数の数)と _argv[n](引数配列)でアクセスする。\n\n基本構造\n\nシステム関数は load、unload、request の3つ。ユーザーはカスタム名で関数を追加定義できる:\n\nrequest { hello }\nhello { \"Hello World\" }\n\n関数は再帰をサポートし、引数はカッコで渡す:\n\ncombine(\"Hello\", \"World\")\ncombine { _argv[0] + \" \" + _argv[1] }\n\n選択方式\n\n| 方式 | 説明 |\n|------|------|\n| ランダム(デフォルト) | 出力候補からランダムに選択 |\n| nonoverlap | 前回と同じ候補が連続しないように選択 |\n| sequential | 候補を順番に出力し、ループする |\n| array | すべての候補を汎用配列にまとめて返す |\n| void | 内部コードを実行するが出力を生成しない |\n| all(Tc567-1) | すべての候補を連結して1つの文字列にする |\n| last(Tc567-1) | 最後の候補を選択する |\n\n修飾子\n\n_pool: ネストされたブロックを親レベルの候補と同等に扱い、確率分布を均等にする。\n\nmelt_: 汎用配列を使って並列出力効果を生成する。\n\nネスト・出力確認\n\nネストした波括弧 { } で階層的な選択を構成できる。-- 出力確認マーカーで候補をグループ化し、各グループから1つを選んで最終出力を構成する:\n\n\"Hello\" / \"Perfect\" -- \" World\" / \"th\"\n\n結果: \"Hello World\"、\"Hello th\"、\"Perfect World\"、\"Perfect th\" のいずれか。",
|
|
15851
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/02-functions/"
|
|
16048
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/02-functions/",
|
|
16049
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/grammar/02-functions.md"
|
|
15852
16050
|
},
|
|
15853
16051
|
{
|
|
15854
16052
|
"id": "yaya:grammar/03-values-and-variables",
|
|
@@ -15856,7 +16054,8 @@
|
|
|
15856
16054
|
"source": "yaya_docs",
|
|
15857
16055
|
"category": "yaya_grammar",
|
|
15858
16056
|
"content": "値と変数\n\nリテラル値\n\nYAYAは3種類の値型をサポートする:\n\n整数 (int)\n符号付き64ビット整数。10進数、2進数(0b プレフィックス)、16進数(0x プレフィックス)で記述できる。\n例:10、0b1010、0xa はすべて10を表す。\n\n浮動小数点数 (double)\n符号付き64ビット浮動小数点数。小数点で区別される。整数同士の除算は切り捨て。3.0/4*100 と書くと 75.0 になる(0 にはならない)。\n\n文字列\nダブルクォート(\"\")で囲んだ値は変数・関数の展開をサポートする。シングルクォート('')は展開を抑制する。クォートのエスケープはダブルで行う:\"1\"\"2\" → 1\"2。\n\nヒアドキュメント: <<\"...\">> (展開あり)または <<'...'>> (展開なし)で複数行文字列を記述できる。\n\n配列とハッシュ\n\nリテラル値のほかに、値をまとめて扱う型として汎用配列(配列)と、Tc600-3以降ではハッシュ(連想配列、ハッシュ)がある。\n\nTc600-3以降では、配列やハッシュの要素に配列やハッシュを入れる(入れ子にする)こともできる(値の入れ子と多次元代入)。\n\n変数\n\n変数にはスカラー値、配列、ハッシュ(Tc600-3以降)を格納できる。変数名は数字始まり・予約文字/予約語・関数名と重複するものは使用不可。\n\n代入は = を使う:str = \"こんにちは\"。未定義変数は算術では0、文字列連結では空文字列として扱われる。\n\nスコープとライフタイム\n\nグローバル変数\nどこからでもアクセス可能。ERASEVAR() で削除されるまで永続する。セッションをまたいで自動的に保存・復元される。\n\nローカル変数\nアンダースコア(_)プレフィックスで宣言。宣言されたスコープブロックとそれより深いブロック内でのみ有効。ブロックを抜けると削除される。異なる関数内で同名のローカル変数を使っても、互いに独立して動作する。",
|
|
15859
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/03-values-and-variables/"
|
|
16057
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/03-values-and-variables/",
|
|
16058
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/grammar/03-values-and-variables.md"
|
|
15860
16059
|
},
|
|
15861
16060
|
{
|
|
15862
16061
|
"id": "yaya:grammar/04-arithmetic",
|
|
@@ -15864,7 +16063,8 @@
|
|
|
15864
16063
|
"source": "yaya_docs",
|
|
15865
16064
|
"category": "yaya_grammar",
|
|
15866
16065
|
"content": "演算\n\n演算子優先度(高い順)\n\n| 優先度 | 演算子 | 説明 |\n|--------|--------|------|\n| 1 | ( ) [ ] | カッコ |\n| 2 | ! | 否定 |\n| 3 | ++ -- | インクリメント・デクリメント |\n| 4 | * / % | 乗算・除算・剰余 |\n| 5 | + - | 加算・減算 |\n| 6 | & | フィードバック |\n| 7 | == != >= <= > < _in_ !_in_ | 比較 |\n| 8 | && | 論理AND |\n| 9 | || | 論理OR |\n| 10 | = := | 代入 |\n| 11 | += -= *= /= %= およびコロン付き変種 | 複合代入 |\n| 12 | , | カンマ(最低優先度) |\n\n型強制(Type Coercion)\n\nオペランドの型が異なる場合、特定の変換ルールが適用される。整数と実数の演算は実数になる。文字列に数値を加算すると、まず数値を文字列に変換する。\n\nハッシュの演算(Tc600-3以降)\n\n- +: 相手がスカラーかハッシュなら、両方を文字列にして連結する(IHASH(\"a\",1) + 1 は \"a=11\")。相手が配列なら、配列の要素ごとに連結する\n- - * / %(複合代入を含む): 警告 W0024 を出す。意味のある結果にはならない\n- ==: ハッシュ同士なら、要素数・キー・値がすべて一致すれば真。ハッシュとハッシュ以外は常に偽\n\n詳細は ハッシュ を参照。\n\n左結合\n\n同じ優先度の演算子は左から右に評価される。代入の場合は明示的なカッコが必要なことがある。\n\n文字列演算子\n\n_in_ 演算子はサブ文字列の包含を確認する:\"or\" _in_ \"World\" は 1(真)を返す。\n\nフィードバック演算子\n\n関数呼び出しで変数に & プレフィックスを付けると参照渡しになり、呼び出された関数が _argv を通じて呼び出し元の変数を変更できる。\n\n配列の要素も渡せる。Tc600-4以降では、ハッシュや入れ子の要素の要素も渡せる(多次元代入)。\n\nfunc(&_a[1]) // func の中で _argv[0] を書き換えると _a[1] が変わる\nfunc(&_h[\"sub\"][\"x\"]) // 同じく _h[\"sub\"][\"x\"] が変わる(Tc600-4以降)\n\n後方互換性\n\nコロン付き代入演算子(\":=\")は後方互換性のために残されているが、コロンなしのものと同一の動作をする。",
|
|
15867
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/04-arithmetic/"
|
|
16066
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/04-arithmetic/",
|
|
16067
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/grammar/04-arithmetic.md"
|
|
15868
16068
|
},
|
|
15869
16069
|
{
|
|
15870
16070
|
"id": "yaya:grammar/05-arrays",
|
|
@@ -15872,7 +16072,8 @@
|
|
|
15872
16072
|
"source": "yaya_docs",
|
|
15873
16073
|
"category": "yaya_grammar",
|
|
15874
16074
|
"content": "配列\n\n概要\n\n[ ] 演算子で配列要素にアクセスする。YAYAは2種類の配列をサポートする:簡易配列(コンマ区切り文字列を扱う)と汎用配列(混合型コレクション)。\n\n簡易配列\n\nコンマをデリミタとして文字列内で解釈する:\n\n_a = \"this,is,a,pen\"\n_a[1] // \"is\" を出力\n\nカスタムデリミタ: インデックスの後に指定できる:\n\n\"This is a island.\"[2,\"is\"] // \" a \" を出力\n\nネストアクセス: デリミタを段ごとに変えられる:\n\n_ar = \"taro|male,ayame|female,hotaru|female\"\n_ar[2][1,\"|\"] // \"female\" を出力\n\n代入: 元の変数の要素を変更できる:\n\n_a[3] = \"eraser\" // 要素を置き換える\n_m[5,\"/\"] = \"daisen\" // 必要に応じてデリミタで拡張する\n\nSETDELIM() 関数でデフォルトデリミタをコンマ以外に変更できる。\n\n汎用配列\n\nカッコとコンマ記法で混合型の値を格納する:\n\ni = (100,\"test\",-1.5)\n\n単一要素の初期化 は IARRAY と組み合わせて行う:\n\ni = (IARRAY,100)\n\n要素操作:\n- 追加: i = (i,\"add\") または i ,= (\"add\",123,0.0)\n- 削除: i[2] = IARRAY\n- 挿入: i = (\"first\",i) または i[2] ,= \"insertion\"\n\n演算: 配列とスカラー値の演算は要素ごとに適用される:\n\npref = (\"gunnma\",\"ohsaka\")\npref += \"-ken\" // すべての要素に \"-ken\" が追加される\n\n配列同士の演算はすべての組み合わせを生成する:\n\npref1 = (\"gunma\",\"osaka\")\npref2 = (\"-ken\",\"-fu\")\npref1 + pref2 // 4つの結果を生成\n\n要素の比較: 配列同士を == で比べると、要素ごとに比べる。Tc600-3以降では、要素が両方とも VOID のときも等しいとみなす(それまでは偽だった)。\n\n入れ子と多次元代入(Tc600-3以降)\n\n配列の要素にハッシュを入れたり、ハッシュの値に配列を入れたりできる。読み出しは _a[1][\"x\"]、代入は _a[1][\"x\"] = 5 のように [ ] を続けて書く。\n\n_a = (0, IHASH(\"x\", 1), 2)\n_a[1][\"x\"] // 1\n_a[1][\"x\"] = 5 // 多次元代入\n\n多次元代入では、途中の要素が文字列なら簡易配列として書き換える:\n\n_a = (\"p,q\", \"r\")\n_a[0][1] = \"Q\" // _a[0] は \"p,Q\"\n\nただし、汎用配列の中に汎用配列を直接入れる手段は無い。, 演算子も _a[1] = (8,9) も、配列を展開して差し込む。\n\n詳細は 値の入れ子と多次元代入 を参照。\n\n範囲指定\n\n両方の配列型で範囲インデックス [a,b] を使った取得・代入ができる:\n\nname = (\"さくら\",\"せりこ\",\"奈留\",\"まゆら\")\ni = name[1,3] // 要素1〜3\nname[3,4] = \"奎子\"\nanimal[0,2,\"!\"] // デリミタ付き範囲\n\n並列出力\n\nparallel キーワードで配列要素を別々の出力候補に変換する:\n\nfoo { parallel (\"A\",\"B\",\"C\") } // A、B、Cのいずれかを出力\n\nvoid キーワードは出力候補を生成せずに結果を破棄する。",
|
|
15875
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/05-arrays/"
|
|
16075
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/05-arrays/",
|
|
16076
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/grammar/05-arrays.md"
|
|
15876
16077
|
},
|
|
15877
16078
|
{
|
|
15878
16079
|
"id": "yaya:grammar/06-string-embedding",
|
|
@@ -15880,7 +16081,8 @@
|
|
|
15880
16081
|
"source": "yaya_docs",
|
|
15881
16082
|
"category": "yaya_grammar",
|
|
15882
16083
|
"content": "文字列内埋め込み要素の展開\n\n概要\n\nYAYAでは変数や関数を文字列内に埋め込み、その結果を指定した位置に挿入できる。\n\n2種類の展開方式\n\n1. 範囲付き展開\n\n構文: %( ) で要素を囲む\n\nカッコ内はコードとして評価される。変数だけでなく式もサポートする:\n\n\"This is a %(variable).\"\n\"The sum is %(1+2+3).\"\n\n特徴:\n- 複雑な式や数学演算をサポート\n- 文字列内にダブルクォートを含めることができない\n- 辞書読み込み時に静的に解析されるため、DICLOAD で動的に読み込まれた関数は認識されない\n- 動的な評価が必要な場合は EVAL 関数を使用する\n\n演算子優先度: カッコが評価順序を制御する。深いネストほど先に実行される。必要なら %((expression)) のように余分なカッコを使う。\n\n2. 名称最長一致展開\n\n構文: カッコなしで % のみ使用\n\n% の後に続く最長の変数名または関数名にマッチする:\n\nobject = \"world\"\n\"This is a %object.\" // 結果: \"This is a world.\"\n\n特徴:\n- 展開対象は現在定義されている変数・関数によって変わる\n- %[i] 構文(0始まりインデックス)で展開結果を再利用できる:\n \"First: %planet, Second: %city, reuse first: %[0]\"\n- 実行時に名前解決するため、範囲付き展開より大幅に遅い\n- パフォーマンスが重要なコードには推奨しない\n\n注意: %[i] 構文は名称最長一致展開でのみ機能し、範囲付き展開では使えない。",
|
|
15883
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/06-string-embedding/"
|
|
16084
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/06-string-embedding/",
|
|
16085
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/grammar/06-string-embedding.md"
|
|
15884
16086
|
},
|
|
15885
16087
|
{
|
|
15886
16088
|
"id": "yaya:grammar/07-flow-control",
|
|
@@ -15888,7 +16090,8 @@
|
|
|
15888
16090
|
"source": "yaya_docs",
|
|
15889
16091
|
"category": "yaya_grammar",
|
|
15890
16092
|
"content": "フロー制御\n\n条件分岐\n\nif / elseif / else 構文\n\n式の結果が真であれば { } ブロックが実行される。複数の elseif を連結でき、末尾に else を付けられる。ネストした if 文以外では、ブロックが1文の場合は波括弧を省略できる:\n\nif 条件式\n{\n // 真の場合\n}\nelseif 別の条件式\n{\n // 別の条件が真の場合\n}\nelse\n{\n // すべて偽の場合\n}\n\ncase / when 構文\n\nラベルベースの分岐。case 文が式を評価し when ラベルにマッチする。1つの when にコンマ区切りで複数の値を指定できる。範囲指定はマイナス記法(例:\"value1\"-\"value5\")。others 節でマッチしなかったケースを処理する。ラベル値はリテラルのみで、変数や式は使えない:\n\ncase 式\nwhen 値1\n{\n // 値1の場合\n}\nwhen 値2, 値3\n{\n // 値2または値3の場合\n}\nothers\n{\n // どれにもマッチしない場合\n}\n\nswitch 構文\n\n位置(0始まり)で出力候補を選択する。switch 内のネストした { } でその位置のランダム選択を行える。出力確認マーカー(--)で候補のグループを指定し位置を正確に制御できる。\n\nループ構造\n\nwhile ループ\n\n式が真である間 { } ブロックを繰り返す。条件式にカッコは使えない:\n\nwhile 条件式\n{\n // 処理\n}\n\nfor ループ\n\n初期化・条件・インクリメントの3つのパートを持つ。C言語と異なり、すべてのパートが必須。for ( ; ; ) のような無限ループは使えない:\n\nfor 初期化 ; 条件 ; インクリメント\n{\n // 処理\n}\n\nforeach ループ\n\n配列要素(簡易配列・汎用配列いずれも)を順番にイテレートする。SETDELIM で設定したカスタムデリミタを認識する:\n\nforeach 配列 ; 変数\n{\n // 変数に要素が格納されて実行\n}\n\nTc600-3以降では、ハッシュも foreach で回せる。変数には値がキーの順に入る。値が配列やハッシュなら、変数も配列やハッシュになる。\n\n2変数の foreach(Tc600-3以降)\n\n変数をコンマで区切って2つ書くと、1つ目にキー、2つ目に値が入る。配列と簡易配列でも使え、その場合の1つ目には 0 から始まるインデックス(整数)が入る:\n\nforeach 配列またはハッシュ ; キー変数, 値変数\n{\n // 処理\n}\n\n_h = IHASH(\"a\", 1, \"b\", 2)\nforeach _h ; _k, _v { _s += _k + '=' + _v + ' ' } // \"a=1 b=2 \"\nforeach (\"p\", \"q\") ; _i, _v { ... } // _i = 0, 1\nforeach \"x,y\" ; _i, _v { ... } // 簡易配列も同じ\n\n変数にはローカル変数とグローバル変数のどちらも書ける。変数が3つ以上のとき(_a, _b, _c)や、変数でないものを書いたとき(_k, 1、_a + _b)はエラー E0043 になる。\n\nbreak / continue\n\n- break: 現在のループを即座に抜ける\n- continue: 次のループ反復にジャンプする\n- ループ上限は設定可能。超過すると shiori.OnLoopLimit() が呼ばれる\n\n関数の戻り値\n\nreturn で関数実行を即座に終了する。出力はそれまでに蓄積された候補から抽出される。\n\n引数つき return(Tc573-1以降)\n\nreturn 式 の形で戻り値を明示できる。引数には定数だけでなく数式も書ける:\n\nto_rad\n{\n if GETTYPE(_argv[0]) == 3 {\n return -1\n }\n return _argv[0]*2.0*3.14/360.0\n}\n\n引数つきの return は、それまでに蓄積した候補をすべて破棄して指定した値に置き換える。以下の例では返り値は必ず \"D\" になり、\"A\" \"B\" \"C\" は破棄される:\n\ntest_func\n{\n \"A\"\n \"B\"\n \"C\"\n return \"D\"\n}",
|
|
15891
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/07-flow-control/"
|
|
16093
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/07-flow-control/",
|
|
16094
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/grammar/07-flow-control.md"
|
|
15892
16095
|
},
|
|
15893
16096
|
{
|
|
15894
16097
|
"id": "yaya:grammar/08-preprocessor",
|
|
@@ -15896,7 +16099,8 @@
|
|
|
15896
16099
|
"source": "yaya_docs",
|
|
15897
16100
|
"category": "yaya_grammar",
|
|
15898
16101
|
"content": "プリプロセス\n\n概要\n\n辞書ファイルの読み込み時に実行されるプリプロセッサコマンド。\n\n#define\n\n辞書ファイルの生テキストに対して直接文字列置換を行う:\n\n#define before after\n\n宣言以降のすべてのテキストに対して、そのファイルの末尾まで適用される。置換は宣言された順に実行されるため、先に変換すべきものを先に書く。\n\n#globaldefine\n\n#define と似ているが、スコープが広い:\n\n#globaldefine before after\n\n以降に読み込まれるすべての辞書ファイルにわたって有効。最初の辞書ファイルの先頭に置くと、プロジェクト全体に効果が及ぶ。\n\n処理順序: #define の置換が先に実行され、次に #globaldefine の置換が行われる:\n\n#globaldefine tea green\n#define tea milk\n\"teacup\"\n\n結果: \"milkcup\" (#define が優先される)\n\n__AYA_SYSTEM_FILE__\n\nYAYA Tc543-1 以降で使用可能。DLLからの現在ファイルの相対パスを返す:\n\n\"__AYA_SYSTEM_FILE__\"\n\n例:\"aya_aitalk.txt\" を出力\n\n__AYA_SYSTEM_LINE__\n\nTc543-1 以降で使用可能。__AYA_SYSTEM_FILE__ と同じ仕組みで、実行中のファイルの現在行番号を返す。\n\n__AYA_SYSTEM_FUNC__\n\nTc574-2 以降(600 系は Tc602-2 以降)で使用可能。関数の中に書くと、その関数の名前に置き換わる:\n\nOnTest\n{\n\tLOGGING(\"__AYA_SYSTEM_FUNC__: called\")\n}\n\n例:\"OnTest: called\" を出力\n\n- 置き換わるのは関数の { } の中だけ。関数名に付けた重複回避オプション(:nonoverlap など)は含まれない\n- #define の置換後の文字列に含まれていても置き換わるので、ログ出力用のマクロに使える\n- APPEND_RUNTIME_DIC で追加する関数の中でも使える\n\n#ifdef / #ifndef / #elifdef / #elifndef / #else / #endif\n\nTc574-2 以降(600 系は Tc602-2 以降)で使用可能。名前が定義されているかどうかで、辞書の一部を読み込むかどうかを切り替える:\n\n#ifdef 名前\n(名前が定義されていれば読み込む)\n#elifdef 別の名前\n(最初の名前が未定義で、別の名前が定義されていれば読み込む)\n#else\n(どれにも当てはまらなければ読み込む)\n#endif\n\n- #ifndef / #elifndef は「定義されていなければ」\n- #elifdef / #elifndef / #else は省略できる。#elifdef / #elifndef はいくつでも書ける\n- 入れ子にできる\n- 行頭の空白は無視されるので、字下げしてよい。関数の中でも使える\n- 行末に // コメントを書ける\n- 条件式は書けない(#if は無い)\n\n読み込まれない区間の行は、構文を解析しない。存在しないシステム関数の呼び出しや、その YAYA が知らない構文を書いてもエラーにならない。区間内の #define / #globaldefine も登録されない。\n\nただし、コメント(/* */)・行末の / による行の結合・ヒアドキュメントは先に処理される。ヒアドキュメントの中に書いた #endif などは、プリプロセッサとして扱われない。\n\n判定の対象になる名前\n\n| 名前 | 定義されている条件 |\n|---|---|\n| #define の名前 | そのファイルの、その行より前で定義されている |\n| #globaldefine の名前 | それより前に読み込まれた辞書ファイル(同じファイルならその行より前)で定義されている |\n| __AYA_SYSTEM_YAYA5__ | 500 系の YAYA |\n| __AYA_SYSTEM_YAYA6__ | 600 系の YAYA |\n| __AYA_SYSTEM_SYSFUNC_関数名__ | そのシステム関数がある(例:__AYA_SYSTEM_SYSFUNC_FREADJSON__) |\n| __AYA_SYSTEM_FILE__ / __AYA_SYSTEM_LINE__ / __AYA_SYSTEM_FUNC__ | 常に定義されている |\n\n__AYA_SYSTEM_YAYA5__ / __AYA_SYSTEM_YAYA6__ / __AYA_SYSTEM_SYSFUNC_関数名__ は #ifdef 系の判定にだけ使われる名前で、辞書の中の文字列は置き換えない。\n\n#globaldefine は読み込み順の影響を受ける。後で読み込まれる辞書ファイルの #globaldefine は見えない。\n\n500 系と 600 系で共用する辞書\n\n600 系で増えた構文や関数を使うと、500 系では読み込み時にエラーになる(未知の関数の呼び出しは E0071 など)。#ifdef で書き分ければ、どちらでもエラーにならない:\n\n#ifdef __AYA_SYSTEM_YAYA6__\nLoadConfig\n{\n\tFREADJSON('config.json')\n}\n#else\nLoadConfig\n{\n\t// 500 系向けの代わりの処理\n}\n#endif\n\n特定のシステム関数があるかどうかで書き分けるときは __AYA_SYSTEM_SYSFUNC_関数名__ を使う。こちらは今後の版で関数が追加されたときにも、そのまま使える:\n\n#ifdef __AYA_SYSTEM_SYSFUNC_DUMPJSON__\n\t_s = DUMPJSON(_data)\n#else\n\t_s = ''\n#endif\n\n#ifdef を知らない古い YAYA(Tc574-1 以前、Tc602-1 以前)では、#ifdef などの行がエラー E0076 になり、区間の中身もすべて解析される。共用の辞書を配布するときは、対応する YAYA の版を明記すること。\n\n#error / #warning\n\nTc574-2 以降(600 系は Tc602-2 以降)で使用可能。読み込み時にエラー・警告を出す:\n\n#ifndef __AYA_SYSTEM_YAYA6__\n#error この辞書は YAYA 600 系(Tc602-2 以降)が必要です\n#endif\n\n- #error はエラー E0104 を出す。辞書エラーになるので、緊急モードで読み込まれる\n- #warning は警告 W0028 を出す。読み込みは続く\n- 後ろに書いた文字列がメッセージに続けて出力される(行末の // コメントは除く)\n- #ifdef などで読み込まれない区間では何もしない\n\nエラー\n\n| 番号 | 内容 |\n|---|---|\n| E0074 | #ifdef 系に名前が無い、名前が2つ以上ある、#else / #endif の後ろに文字列がある |\n| E0101 | 対応する #ifdef / #ifndef が無い #elifdef / #elifndef / #else / #endif |\n| E0102 | #else の後に #elifdef / #elifndef / #else がある |\n| E0103 | #ifdef / #ifndef が #endif で閉じられていない(いちばん内側の #ifdef の行を表示する) |\n| E0104 | #error |\n| W0028 | #warning |",
|
|
15899
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/08-preprocessor/"
|
|
16102
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/08-preprocessor/",
|
|
16103
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/grammar/08-preprocessor.md"
|
|
15900
16104
|
},
|
|
15901
16105
|
{
|
|
15902
16106
|
"id": "yaya:grammar/09-reserved-words",
|
|
@@ -15904,7 +16108,8 @@
|
|
|
15904
16108
|
"source": "yaya_docs",
|
|
15905
16109
|
"category": "yaya_grammar",
|
|
15906
16110
|
"content": "予約語\n\n概要\n\nYAYAシステムで予約されている名前。ユーザー定義の変数名や関数名に使用できない。\n\nシステム関数\n\nシステム関数一覧 に掲載されているすべての関数名は予約済み。\n\n> 大文字+アンダースコアのみで構成される名前は将来の互換性のためにも使わないほうが良い。\n\n制御構造キーワード\n\n以下の制御フロー用語は予約済み:\n\nif elseif else case when others switch\nwhile for break continue return foreach\n\n演算子\n\n変数名・関数名に使用できない予約済み演算子記号:\n\n( ) [ ] ! ++ -- * / % + - & == != <= >= < > _in_ !_in_ && ||\n= := += -= *= /= %= +:= -:= *:= /:= %:= ,=",
|
|
15907
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/09-reserved-words/"
|
|
16111
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/09-reserved-words/",
|
|
16112
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/grammar/09-reserved-words.md"
|
|
15908
16113
|
},
|
|
15909
16114
|
{
|
|
15910
16115
|
"id": "yaya:grammar/10-yaya-as-windows-dll",
|
|
@@ -15912,7 +16117,8 @@
|
|
|
15912
16117
|
"source": "yaya_docs",
|
|
15913
16118
|
"category": "yaya_grammar",
|
|
15914
16119
|
"content": "WindowsDLLとしてのYAYA\n\n概要\n\nYAYA(読み: やや)は C 言語に似た構文を持つ文字列処理 DLL。「与えられた文字列を変形する」「プログラムされたルールに基づいて文字列を生成する」ことができる。直接使用にはプログラミングの知識が必要。\n\n動作環境\n\nWindows 95 以降に対応する Windows ベースの DLL。SSP 開発標準に基づいて構築されている。\n\nエクスポート関数\n\nload(HGLOBAL h, long len)\n\nYAYA を使用前に初期化する。LoadLibrary の後に必ず1回実行する。パラメータ h は絶対ディレクトリパス、len は h の長さを受け取る。メモリの解放は DLL 側が行う。\n\nunload()\n\nFreeLibrary の実行前に終了を通知する。\n\nrequest(HGLOBAL h, long *len)\n\n入力を処理し結果を返す。入力メモリは DLL が管理する。出力の長さは *len に更新される。呼び出し元は返却されたサイズで GlobalFree を使って結果を解放する必要がある。\n\n技術的な注記\n\nこのインターフェースは SHIORI(「伺か」のキャラクターソフトウェア用の擬似AIのDLL)仕様と完全に一致する。\n\n使用条件\n\n- 同梱ドキュメントに従うこと\n- LICENSE システム関数で YAYA が使用するライブラリのライセンス情報を表示できる\n\n関連\n\n- LICENSE",
|
|
15915
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/10-yaya-as-windows-dll/"
|
|
16120
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/10-yaya-as-windows-dll/",
|
|
16121
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/grammar/10-yaya-as-windows-dll.md"
|
|
15916
16122
|
},
|
|
15917
16123
|
{
|
|
15918
16124
|
"id": "yaya:grammar/11-character-encoding",
|
|
@@ -15920,7 +16126,8 @@
|
|
|
15920
16126
|
"source": "yaya_docs",
|
|
15921
16127
|
"category": "yaya_grammar",
|
|
15922
16128
|
"content": "文字コード関連\n\n内部文字コード\n\nYAYA は内部文字コードとして UCS-2 を使用する。辞書操作・ファイルI/O・外部ライブラリとのやり取りを行う際は、すべての文字列を自動的に UCS-2 との間で変換する。\n\n文字コードIDシステム\n\n一部の関数では、文字コードを数値IDで参照する:\n\n| エンコーディング | テキスト表現 | ID |\n|----------------|------------|-----|\n| Shift JIS | Shift_JIS | 0 |\n| UTF-8 | UTF-8 | 1 |\n| EUC-JP | EUC_JP | 2 |\n| BIG-5 | BIG-5 | 3 |\n| GB-2312 | GB-2312 | 4 |\n| EUC-KR | EUC_KR | 5 |\n| ISO-2022-JP (JIS) | ISO-2022-JP | 6 |\n| バイナリ | binary | 126 |\n| OSデフォルト | OSNative | 127 |\n\nバイナリエンコーディングの特殊ケース\n\nバイナリ形式は「UCS-2文字列の下位バイトをそのままバイト列にした特殊な文字コード」。変換なしにデータをやり取りするために FWRITEBIN や FREADBIN などの関数向けに設計されている。\n\n重要な制限: バイナリモードであっても YAYA は文字列内のヌルバイト(0x00)を処理できない。また FUNCTIONEX などの既存システム辞書はバイナリ文字列値を想定していない。\n\n関連\n\n- CHARSETLIB\n- CHARSETLIBEX\n- CHARSETIDTOTEXT\n- CHARSETTEXTTOID\n- FCHARSET\n- STRENCODE\n- STRDECODE",
|
|
15923
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/11-character-encoding/"
|
|
16129
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/11-character-encoding/",
|
|
16130
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/grammar/11-character-encoding.md"
|
|
15924
16131
|
},
|
|
15925
16132
|
{
|
|
15926
16133
|
"id": "yaya:grammar/12-hash",
|
|
@@ -15928,7 +16135,8 @@
|
|
|
15928
16135
|
"source": "yaya_docs",
|
|
15929
16136
|
"category": "yaya_grammar",
|
|
15930
16137
|
"content": "ハッシュ(Tc600-3以降)\n\nTc600-3 以降では、値の型にハッシュ(連想配列)が加わった。\n\nハッシュの値やキーには、配列やハッシュを入れられる(入れ子)。入れ子の読み書きや多次元代入は 値の入れ子と多次元代入 を参照。\n\n500 系からの互換性に関わる変更は 600 での変更点 を参照。\n\n生成\n\nハッシュは IHASH で作る。キーと値を交互に並べる。IHASH() は空のハッシュになる。\n\n_h = IHASH(\"name\", \"さくら\", \"age\", 16)\n_e = IHASH()\n\n文字列から作るときは HASH_SPLIT を使う。\n\n_h = HASH_SPLIT(\"a=1,b=2\", \",\", \"=\")\n\nハッシュの変数は、IHASH などで最初にハッシュとして作っておく必要がある。未定義の変数に _x[\"a\"] = 1 と書いても、ハッシュではなく汎用配列の扱いになる(\"a\" は数値として 0 番目と解釈される)。\n\n要素の参照・代入\n\nh[キー] で値を読み、h[キー] = 値 で追加・上書きする。\n\n_h = IHASH()\n_h[\"name\"] = \"さくら\"\n_h[\"name\"] // \"さくら\"\n_h[\"none\"] // \"\" (キーが無いときは空文字列)\n_h[\"age\"] += 1 // 複合代入も使える\n\n- キーが無いときは空文字列を返す。VOID ではない\n- 値には配列やハッシュも入れられる(入れ子)\n- 序数の2番目以降(範囲指定やデリミタ)は無視される。範囲つきの読み出し h[a, b] は空文字列になる\n\nキーの一致\n\nスカラーのキーは「数値」と「文字列」に分けて比べる。\n\n- 数値として扱うもの: 整数、実数、正規形の整数を表す文字列(\"9\"、\"-3\" など)\n - \"09\"、\"-0\"、\"+1\"、\" 1\"、64bit に収まらない数字列は文字列として扱う\n- 数値同士は値で比べる。整数と実数も誤差なく比べる\n- 文字列同士は文字列として比べる。VOID は空文字列と同じキーになる\n\nこのため、h[1]、h[\"1\"]、h[1.0] はすべて同じキーになる。一方、h[1.5] と h[\"1.5\"]、h[0] と h[\"-0\"] は別のキーになる。\n\n同じキーとみなされる値を複数回 IHASH に渡したときは、最初のキーと値が残る。\n\nIHASH(9, \"i9\", \"9\", \"s9\") // 9=i9 だけ\n\n並び順\n\nハッシュの要素はキーの順に並ぶ。挿入した順ではない。HASH_KEYS、HASH_VALUES、文字列化、foreach、セーブファイルの並びはすべてこの順になる。\n\n- 数値 < 文字列 の順に並ぶ。数値同士は値の順、文字列同士は文字列の順\n- キーが配列やハッシュのときは、スカラー < 配列 < ハッシュ の順に並び、配列同士・ハッシュ同士は先頭の要素から順に比べる\n\n_h = IHASH(10,1, 9,1, 100,1, -1,1, \"b\",1, \"B\",1, 2.5,1)\nHASH_KEYS(_h) // -1,2.5,9,10,100,B,b\n\n値としての振る舞い\n\n| 操作 | 結果 |\n|---|---|\n| 真偽 | 要素が1つ以上あれば真、空なら偽 |\n| GETTYPE / GETTYPEEX | 5 |\n| 文字列化(TOSTR や文字列との連結) | キー=値 を , でつないだもの。例 a=1,b=x |\n| 数値化 | 0 |\n| h1 == h2 | 要素数、キー、値がすべて一致すれば真。値が入れ子なら中身まで比べる |\n| ハッシュとハッシュ以外の == | 常に偽(文字列化した結果が同じでも偽) |\n| +(相手がスカラーかハッシュ) | 両方を文字列にして連結する |\n| +(相手が配列) | 配列の要素ごとに、ハッシュと文字列として連結する |\n| - * / % | 警告 W0024 を出す(下記) |\n\n_h = IHASH(\"a\", 1)\n_h + 1 // \"a=11\"\n'z' + _h // \"za=1\"\n_h + _h // \"a=1a=1\"\n(1,2) + _h // (\"1a=1\",\"2a=1\")\n\n- * / %(複合代入を含む)の両辺のどちらかがハッシュのときは、警告 W0024 を出す。結果は、相手がスカラーなら右辺がそのまま返り(h - 1 は 1、1 * h は h)、相手が配列なら要素ごとに計算される。意味のある結果にはならないので使わないこと。なお、配列の要素がハッシュの場合((h, 1) - 1)は W0024 は出ない。\n\n関数の引数と , 演算子\n\n汎用配列は引数や , 演算子で展開されるが、ハッシュは展開されず、そのまま1つの要素になる。\n\n_a = (0, _h, 2) // 要素数 3。_a[1] はハッシュ\nfunc(_h) // func の中で _argv[0] がハッシュになる\n\nforeach\n\nハッシュも foreach で回せる。1変数の形では、値がキーの順に入る。\n\n_h = IHASH(\"a\", 1, \"b\", 2)\nforeach _h ; _v\n{\n // _v = 1, 2\n}\n\n変数を2つ書くと、1つ目にキー、2つ目に値が入る。この形は配列と簡易配列でも使え、1つ目には 0 から始まるインデックスが入る。\n\nforeach _h ; _k, _v { _s += _k + '=' + _v + ' ' } // \"a=1 b=2 \"\nforeach (\"p\", \"q\") ; _i, _v { ... } // _i = 0, 1\nforeach \"x,y\" ; _i, _v { ... } // 簡易配列も同じ\n\n詳細は フロー制御 を参照。\n\n関連\n\n- IHASH\n- HASH_KEYS\n- HASH_VALUES\n- HASH_SPLIT\n- HASH_EXIST\n- HASH_SIZE\n- 値の入れ子と多次元代入\n- 配列\n- 600 での変更点",
|
|
15931
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/12-hash/"
|
|
16138
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/12-hash/",
|
|
16139
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/grammar/12-hash.md"
|
|
15932
16140
|
},
|
|
15933
16141
|
{
|
|
15934
16142
|
"id": "yaya:grammar/13-nesting",
|
|
@@ -15936,7 +16144,8 @@
|
|
|
15936
16144
|
"source": "yaya_docs",
|
|
15937
16145
|
"category": "yaya_grammar",
|
|
15938
16146
|
"content": "値の入れ子と多次元代入(Tc600-3以降)\n\nTc600-3 以降では、配列の要素、ハッシュの値、ハッシュのキーに、配列やハッシュを入れられる(入れ子)。入れ子の内側は [ ] を続けて書いて読み書きする。要素の要素へ直接代入することを多次元代入と呼ぶ。\n\n500 系では配列の要素はスカラーだけで、a[x][y] = v は読み込み時にエラー E0029 だった。500 系からの変更点は 600 での変更点 を参照。\n\nハッシュそのものについては ハッシュ を参照。\n\n入れ子の作り方\n\nハッシュの値に入れる\n\nハッシュの要素に代入すれば、配列もハッシュもそのまま値になる。\n\n_h = IHASH()\n_h[\"list\"] = (1, 2, 3) // 値に配列\n_h[\"sub\"] = IHASH(\"x\", 1) // 値にハッシュ\n\nIHASH の引数に配列を書くと、ほかの関数と同じく展開される。IHASH(\"list\", (1, 2, 3)) は IHASH(\"list\", 1, 2, 3) と同じになり、値に配列は入らない。配列を値にしたいときは、上のようにあとから代入する。ハッシュは展開されないので、IHASH(\"sub\", IHASH(\"x\", 1)) のように書ける。\n\n配列の要素にハッシュを入れる\n\nハッシュは , 演算子でも要素への代入でも展開されず、1つの要素になる。\n\n_h = IHASH(\"x\", 1)\n_a = (0, _h, 2) // 要素数 3。_a[1] はハッシュ\n_a[2] = _h // 同上\n_a ,= _h // 末尾に追加\n\n配列の要素に配列を入れる\n\n配列の中に配列を入れる構文は無い。, 演算子、,=、要素への代入(_a[1] = (8, 9))のどれも、右辺の配列を展開して差し込む(500 系と同じ)。\n\n_a = (1, 2)\n_a[1] = (8, 9) // 1,8,9 (要素数 3)\n_a[1] = IARRAY() // 1,9 (空の配列を差し込むと要素が消える)\n\n配列の中に配列を持つ値は、次のような関数が返す。\n\n- HASH_VALUES: 値が配列のハッシュを渡すと、その配列を1つの要素として含む配列を返す\n- PARSEJSON / PARSEYAML / PARSETOML / PARSEXML と、ファイルから読む FREADJSON などの関数\n- RESTOREVAR: 入れ子のまま保存した変数を復元する\n\n_v = PARSEJSON('[[1,2,3],[4]]') // 要素数 2。_v[0] は配列 (1,2,3)\n\nこうして得た配列の中の配列も、多次元代入で書き換えられる(Tc602-7以降。途中の値ごとの動作)。\n\n段階的に組み立てる\n\n内側のハッシュは自動では作られない。途中のハッシュは IHASH で作ってから、その中へ代入する。\n\n_m = IHASH()\n_m[\"a\"] = IHASH()\n_m[\"a\"][\"b\"] = 1\n_m[\"a\"][\"list\"] = IARRAY()\n_m[\"a\"][\"list\"] ,= \"p\"\n_m[\"a\"][\"list\"] ,= \"q\"\nDUMPJSON(_m) // {\"a\":{\"b\":1,\"list\":[\"p\",\"q\"]}}\n\n途中のハッシュを作らずに _m[\"c\"][\"d\"] = 1 と書くと、_m[\"c\"] はハッシュではなく文字列 \"1\" になる(途中の値ごとの動作)。\n\n読み出し\n\n[ ] を続けて書くと、1つ目の [ ] の結果に2つ目の [ ] を、その結果に3つ目を……と順に適用する。\n\n_h = IHASH()\n_h[\"list\"] = (1, 2, 3)\n_h[\"sub\"] = IHASH(\"x\", 1)\n_a = (0, _h, 2)\n\n_h[\"sub\"][\"x\"] // 1\n_h[\"list\"][1] // 2\n_a[1][\"sub\"][\"x\"] // 1\n_a[1][\"list\"] // (1,2,3) そのものが返る\n\nそれぞれの [ ] は、その時点の値の型に応じて次のように動く。どの段でも、該当する要素が無いときは空文字列になり、そこから先の [ ] も空文字列になる(エラーにはならない)。\n\n| 値 | [x] の結果 |\n|---|---|\n| 配列 | x 番目の要素。要素が配列やハッシュならそのまま返る |\n| ハッシュ | キー x の値(キーの一致) |\n| 文字列 | 簡易配列として x 番目の要素 |\n| 数値 | x が 0 ならその値、それ以外は空文字列 |\n\n範囲指定も使える。配列の範囲指定 [a, b] の結果は、入れ子の要素をそのまま含む配列になる。ハッシュの範囲指定は空文字列になる。\n\n_v = PARSEJSON('[[1,2],[3,4],[5,6]]')\n_v[0, 1] // 要素数 2 の配列。どちらの要素も配列のまま\n\n簡易配列のデリミタ\n\nSETDELIM で変数に設定したデリミタは、その変数に直接付けた1段目の [ ] にだけ効く。入れ子の中の文字列を簡易配列として読むときは、2段目以降の [ ] でデリミタを指定する。\n\n_s = \"a|b\"\nSETDELIM(_s, \"|\")\n_t = (_s, \"c\")\n_t[0][1] // \"\" (2段目は \",\" で区切られる)\n_t[0][1, \"|\"] // \"b\"\n\n文字列への埋め込み\n\n文字列の中でも [ ] を続けて書ける。\n\n\"値は %_h['sub']['x'] です\" // 値は 1 です\n\"値は %(_h['list'][1]) です\" // 値は 2 です\n\n入れ子の配列やハッシュそのものを埋め込むと、文字列化した結果になる。\n\n関数の引数と , 演算子\n\n関数の引数や , 演算子で展開されるのはいちばん外側の配列だけで、その要素にある配列やハッシュは展開されずに1つの要素のまま残る。ハッシュはいちばん外側でも展開されない。\n\n_v = PARSEJSON('[[1,2,3],[4]]')\n\nfunc(_v) // _argc は 2。_argv[0] は配列 (1,2,3)\nfunc(_v[0]) // _argc は 3。_argv は 1,2,3\nfunc(_v, 9) // _argc は 3。_argv[0] は配列 (1,2,3)\n_c = (_v, 9) // 要素数 3。_c[0] は配列 (1,2,3)\n\nARRAYSIZE(_v) // 2\nARRAYSIZE(_v[0]) // 3\n\n関数に入れ子の配列を渡すと、いちばん外側の配列は _argv そのものになる。受け取った側で「引数が1つの配列」と「引数が複数」を区別する手段は無いので、入れ子の配列を関数に渡すときは、ハッシュに包むか、配列の要素を1つずつ渡すとよい。\n\nGETTYPE に要素が1つだけの配列を渡すと、配列ではなくその要素の型を返す(500 系と同じ)。上の例では GETTYPE(_v[1]) は 4 ではなく 1 になる。\n\nforeach\n\n入れ子の配列やハッシュも foreach で回せる。ループ変数には要素がそのまま入るので、要素が配列やハッシュなら、さらに foreach で回したり [ ] で読んだりできる。\n\n_h = PARSEJSON('{\"a\":{\"x\":1,\"y\":2},\"b\":{\"x\":3}}')\nforeach _h ; _k, _sub {\n foreach _sub ; _k2, _v {\n // _k/_k2 = _v の順に a/x=1, a/y=2, b/x=3\n }\n}\n\nforeach _h[\"a\"] ; _k, _v { ... } // 内側だけを回す\n\n2変数の foreach は ハッシュ と フロー制御 を参照。\n\n値のコピー\n\n代入や引数渡しは値のコピーになる。入れ子の内側も含めて、コピー元とコピー先は互いに影響しない。\n\n_h = IHASH(\"a\", 1)\n_h[\"self\"] = _h\n_h[\"self\"][\"a\"] = 2\n_h[\"a\"] // 1 のまま\n\n内側を取り出して書き換えても、元の値は変わらない。元の値を変えたいときは、書き換えたものを代入し直すか、多次元代入を使う。\n\n_sub = _h[\"self\"]\n_sub[\"a\"] = 3 // _h[\"self\"][\"a\"] は 2 のまま\n_h[\"self\"] = _sub // これで _h[\"self\"][\"a\"] が 3 になる\n\n比較\n\n配列同士、ハッシュ同士の == は中身まで比べる。入れ子の内側も同じ規則で再帰的に比べる。\n\n- 配列同士: 要素数が同じで、各要素が順に等しければ真\n- ハッシュ同士: 要素数、キー、値がすべて一致すれば真(値としての振る舞い)\n\nPARSEJSON('{\"a\":[1,2]}') == PARSEJSON('{\"a\":[1,2]}') // 1\n\nASEARCH で要素がハッシュの配列を探すときも同じ規則で比べる。ただし、探す値に配列を渡すと引数として展開されるので、配列そのものを探すことはできない。\n\nASORT は、要素の配列やハッシュを文字列にして(int / double では 0 として)並べる(要素が配列やハッシュのとき)。\n\n多次元代入\n\n要素の要素へ直接代入できる。= のほか += ,= などすべての代入演算子で使える。\n\n_h[\"sub\"][\"x\"] = 5\n_h[\"list\"][0] += 10\n_h[\"list\"] ,= 4 // 内側の配列の末尾に追加\n_a[1][\"sub\"][\"y\"] = \"new\"\n\n右辺の値は、1次元の代入と同じく最後の [ ] の位置に入る。そのため右辺が配列なら展開して差し込まれる。内側の配列を丸ごと置き換えるときは、1つ手前の段に代入する。\n\n_h[\"list\"] = (1, 2, 3)\n_h[\"list\"][0] = (7, 8) // _h[\"list\"] は 7,8,2,3\n_h[\"list\"] = (7, 8) // _h[\"list\"] を (7,8) に置き換える\n\n範囲指定の代入(_h[\"list\"][0, 1] = \"R\")も1次元と同じように使える。\n\n途中の値ごとの動作\n\n多次元代入は、最後の段から根元の変数に向かって、それぞれの段の値を書き換えては1つ手前の段へ入れ直す。それぞれの段の値の型によって、次のように動く。\n\n| 途中の値 | 動作 |\n|---|---|\n| ハッシュ | キーの値を追加・上書きする |\n| 配列 | 要素を書き換える。範囲外なら、足りない分を VOID で埋めて末尾に追加する |\n| 文字列 | 簡易配列として書き換える |\n| 数値 | 配列に変えてから書き換える。0 番目は VOID になり、元の数値は失われる |\n| 無い(範囲外・キーが無い) | 空文字列を簡易配列として書き換える |\n\n_a = (\"p,q\", 1)\n_a[0][1] = \"Q\" // _a[0] は \"p,Q\"\n\n_h = IHASH(\"l\", (1, 2))\n_h[\"l\"][4] = 9 // _h[\"l\"] は 1,2,VOID,VOID,9\n\n_n = (1, 2.5)\n_n[1][2] = 9 // _n[1] は配列 (VOID,VOID,9)\n\n_e = IHASH()\n_e[\"n\"][\"x\"] = 5 // _e[\"n\"] は文字列 \"5\" (ハッシュは作られない)\n_e[\"m\"][2] = 5 // _e[\"m\"] は文字列 \",,5\"\n\n_e[\"n\"][\"x\"] = 5 で _e[\"n\"] が \"5\" になるのは、キー \"x\" を簡易配列の序数として読むと 0 番目になるため。\n\n書き換えた値を1つ手前の段へ入れ直すときは、その値が配列でも展開せず、1つの要素として置き換える。右辺の配列が展開されるのは最後の段だけなので、配列の中の配列も入れ子のまま書き換えられる。\n\n_v = PARSEJSON('[[1,2],[3,4]]')\n_v[0][0] = \"A\" // _v は (\"A\",2),(3,4)\n_v[1][0] = (7, 8) // _v は (\"A\",2),(7,8,4)\n\nただし、途中の段が範囲指定のとき(_v[0, 1][0] = 9)は、取り出した範囲の配列を書き換えてから、展開して元の範囲へ差し戻す。\n\nTc602-6 までは、配列の中の配列に多次元代入すると、書き換えた内側の配列が外側の配列へ展開されて入れ子が崩れていた(上の _v[0][0] = \"A\" で _v が \"A\"、2、(3,4) の3要素になる)。途中の値が数値の場合も、作った配列が外側へ展開されていた。参照渡し(&_v[0][0])の書き戻しも同じ。\n\n代入の根元\n\n代入の根元は変数でなければならない。(式)[0] = 1 や func()[0] = 1 などはエラー E0029 になる。\n\n参照渡し\n\nフィードバック演算子(参照渡し)でも要素の要素を渡せる(Tc600-4以降)。func(&_h[\"sub\"][\"x\"]) の中で _argv[0] を書き換えると _h[\"sub\"][\"x\"] が変わる。Tc600-3 では手前の次元が無視され、_h[\"x\"] に書き込まれていた。\n\n文字列化と保存\n\n入れ子の値を文字列にすると(TOSTR、文字列との連結、埋め込みなど)、内側もそのまま , や = でつながれるので、どこまでが内側なのかわからなくなる。\n\n_h = IHASH()\n_h[\"l\"] = (1, 2)\n_h[\"m\"] = IHASH(\"x\", 1)\nTOSTR(_h) // \"l=1,2,m=x=1\"\n\n入れ子の形を保ったまま扱いたいときは次の方法を使う。\n\n| 目的 | 方法 |\n|---|---|\n| 変数をファイルに保存して復元する | SAVEVAR / RESTOREVAR。入れ子は IARRAY{...} / IHASH{...} の形で保存される(保存形式) |\n| 中身を確認する | DUMPVAR(Tc600-4以降)。入れ子は (array)[ ... ] / (hash){ ... } で表示される。LOGGING(Tc602-8以降)も、入れ子の配列を ( )、ハッシュを { } で囲んで書き出す |\n| 文字列にして受け渡す | DUMPJSON と PARSEJSON。ただし JSON で表せない区別(整数のキーと文字列のキー、VOID と空文字列など)は失われる |\n\n制限\n\n- キーが配列のハッシュは、h[キー] の序数の第1要素がキーになるため、配列をキーにして引くことはできない(foreach や HASH_KEYS では取り出せる)。キーがハッシュなら h[キー] で引ける\n\n関連\n\n- ハッシュ\n- 配列\n- HASH_VALUES\n- PARSEJSON\n- DUMPJSON\n- SAVEVAR\n- DUMPVAR\n- 600 での変更点",
|
|
15939
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/13-nesting/"
|
|
16147
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/grammar/13-nesting/",
|
|
16148
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/grammar/13-nesting.md"
|
|
15940
16149
|
},
|
|
15941
16150
|
{
|
|
15942
16151
|
"id": "yaya:other/changes-600",
|
|
@@ -15944,7 +16153,8 @@
|
|
|
15944
16153
|
"source": "yaya_docs",
|
|
15945
16154
|
"category": "yaya_other",
|
|
15946
16155
|
"content": "600 での変更点(Tc600-3以降)\n\nTc600-3 以降の YAYA(600 系)で、500 系(Tc574-1 まで)から変わった仕様をまとめる。\n\n概要\n\n| 項目 | 500 系 | 600 系 |\n|---|---|---|\n| 値の型 | VOID / 整数 / 実数 / 文字列 / 汎用配列 | + ハッシュ(連想配列) |\n| GETTYPE / GETTYPEEX | 0〜4 | ハッシュは 5 |\n| 配列の要素 | スカラーだけ | 配列やハッシュも要素にできる(入れ子) |\n| 要素への代入 | a[x] = v だけ | a[x][y]... = v(多次元代入)も可 |\n| foreach | foreach 式 ; 変数 | + foreach 式 ; キー変数, 値変数 |\n| セーブファイル | 配列 a:b:c | + ハッシュ \"k\"=v:...、入れ子 IARRAY{...} / IHASH{...} |\n| 新しいシステム関数 | ― | IHASH HASH_KEYS HASH_VALUES HASH_SPLIT HASH_EXIST HASH_SIZE、Tc601-1 から FREADJSON FREADXML PARSEJSON PARSEXML、Tc602-1 から FWRITEJSON FWRITEXML DUMPJSON DUMPXML、Tc602-3 から PARSEHEADER、Tc602-5 から FREADYAML FREADTOML PARSEYAML PARSETOML FWRITEYAML FWRITETOML DUMPYAML DUMPTOML |\n| 新しい警告 | ― | W0024(ハッシュを - * / % に使った)、Tc601-1 から W0025(ファイルを開けない)・W0026(JSON/XML/YAML/TOML を解析できない)、Tc602-1 から W0027(JSON/XML/YAML/TOML に変換できない) |\n\n文法は ハッシュ と 値の入れ子と多次元代入 を参照。\n\n500 系の a[x][y] = v は読み込み時にエラー E0029 だったので、この構文を含む既存の辞書は無い。\n\n既存の辞書に影響しうる変更\n\n配列の要素の VOID 同士の比較\n\n配列の要素同士を比べるとき、両方が VOID なら等しいとみなすようになった。スカラー同士の VOID の比較と揃えたもの。\n\n- (1, 未定義の変数) == (1, 未定義の変数) が 0 から 1 になる\n- ASEARCH(未定義の変数, 配列) が、配列の中の VOID の要素の位置を返すようになる(500 系では -1)\n- HASH_EXIST、ARRAYDEDUP、ハッシュ同士の == でも同じ\n\nキーと要素の両方が VOID のときだけの変更で、整数・実数・文字列の比較は変わらない。\n\nARRAYDEDUP に型の混ざった配列を渡したとき\n\n500 系では、整数・実数・文字列が混ざった配列を渡すと、結果が並び方しだいで変わっていた。600 系では、ハッシュのキーと同じ規則で重複を除き、数値 < 文字列 の順に並べる。\n\nARRAYDEDUP((10, \"9\", 9, \"a\", 1.0, 1, \"1\"))\n// 500 系: 1,1.000000,9,10,9,a\n// 600 系: 1.000000,9,10,a\n\n1.0、1、\"1\" は同じ値とみなされ、最初のもの(1.0)が残る。整数だけ、実数だけ、文字列だけの配列の結果は 500 系と同じ。\n\nsetter・watcher に渡る配列\n\nFUNCDECL_WRITE(setter)と FUNCDECL_READ(watcher)に渡る値が汎用配列のとき、500 系では値が壊れていた(setter の _argv[1] _argv[2] が空になる、watcher の _argv[1] が先頭要素だけになる、setter の戻り値をそのまま返すと変数が空になる)。\n\n600 系では、配列は _argv の要素として入れ子のまま渡る。_argv の要素数は setter が 3、watcher が 2 のまま変わらない。\n\n500 系で配列の変数に setter や watcher を付けても正しく動いていなかったので、実害はないはず。なお、添字への代入(a[0] = v)で setter が呼ばれないのは 500 系と同じ。\n\n新しいシステム関数と同じ名前\n\n- IHASH HASH_KEYS などと同じ名前のユーザー関数は、Conflict.名前 に改名され、呼び出しはシステム関数に向く(TOAUTOEX が追加されたときと同じ仕組み)\n- 同じ名前のグローバル変数は使えない。セーブファイルから復元するときに警告 W0002 が出る\n\nセーブファイルの互換性\n\n- ハッシュや入れ子を含まない変数は、書き出す内容も読み込む結果も 500 系と同じ。500 系のセーブファイルはそのまま読める\n- ハッシュや入れ子を含む変数は新しい書式で保存される(SAVEVAR を参照)\n- ダウングレードに注意: 600 系で保存したファイルを 500 系で読むと、ハッシュや入れ子を含む変数だけが崩れる(落ちはしない。ほかの変数には影響しない)。崩れたまま保存し直すと、元の内容は失われる\n\n500 系と共用する辞書\n\nTc574-2 以降の 500 系と Tc602-2 以降の 600 系では、#ifdef __AYA_SYSTEM_YAYA6__ や #ifdef __AYA_SYSTEM_SYSFUNC_関数名__ で 600 系向けの部分を書き分けられる。読み込まれない区間は構文を解析しないので、600 系の新しい構文や関数を書いても 500 系でエラーにならない。詳しくは プリプロセス を参照。\n\n性能\n\n_a ,= x と _a[i] = x は、500 系では1回ごとに配列を丸ごと複製していた(ループで配列を育てると要素数の2乗に比例して遅くなる)。600 系ではこの複製をしないので、ループで配列を育てる処理が大幅に速くなった。\n\n関連\n\n- ハッシュ\n- 値の入れ子と多次元代入\n- フロー制御(foreach)\n- SAVEVAR\n- プリプロセス",
|
|
15947
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/other/changes-600/"
|
|
16156
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/other/changes-600/",
|
|
16157
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/other/changes-600.md"
|
|
15948
16158
|
},
|
|
15949
16159
|
{
|
|
15950
16160
|
"id": "yaya:other/lint-functions",
|
|
@@ -15952,7 +16162,8 @@
|
|
|
15952
16162
|
"source": "yaya_docs",
|
|
15953
16163
|
"category": "yaya_other",
|
|
15954
16164
|
"content": "LINT系関数の仕様と制約\n\nLINT.* 系関数は、読み込み済み辞書の解析結果(関数内のステートメントと数式の項)から、関数・変数の使用箇所を取り出すデバッグ用の関数群です。yayalint のような静的検査を YAYA 辞書自身で組むための材料になりますが、以下の仕様と制約があります。\n\n関数一覧\n\n| 関数 | 対象 | 重複 | スコープ { } | 読み書きの区別 | 行 |\n|------|------|------|------|------|------|\n| LINT.GetVarRefs | 変数・関数・ブロック | 出現ごと | あり(種類付き) | あり | あり |\n| LINT.GetFuncUsedBy | 関数(ユーザー定義・システム) | 除去・名前順 | なし | - | なし |\n| LINT.GetUserDefFuncUsedBy | ユーザー定義関数 | 除去・名前順 | なし | - | なし |\n| LINT.GetGlobalVarUsedBy | グローバル変数(読み書き両方) | 除去・名前順 | なし | なし | なし |\n| LINT.GetGlobalVarLetted | グローバル変数(代入のみ) | 除去・名前順 | なし | - | なし |\n| LINT.GetLocalVarUsedBy | ローカル変数(読み書き両方) | 出現ごと | あり | なし | なし |\n| LINT.GetLocalVarLetted | ローカル変数(代入のみ) | 出現ごと | あり | - | なし |\n\n新しく検査を組む場合は LINT.GetVarRefs を使うと、他の関数の情報をすべて含んだ形で得られます。\n\nTc574-1 での変更\n\n- LINT.GetVarRefs を追加しました。\n- GetGlobalVarLetted / GetLocalVarLetted\n - 配列要素への代入(_a[0] = 1、G_a[0] = 1)を、その変数への代入として列挙するようになりました。\n - foreach _list ; _v のループ変数 _v を代入として列挙するようになりました。\n- GetLocalVarUsedBy\n - 同じステートメント内では、代入先の変数を最後に並べるようになりました。代入は右辺の評価後に行われるため、_z = _z + 1 は _z(読み)→ _z(代入)の順になります。\n- GetLocalVarUsedBy / GetLocalVarLetted\n - case 構文が内部で生成するローカル変数(_CaSe_ExPr_PrEfIx_ で始まる名前)を列挙しないようになりました。\n\n制約\n\n辞書の読み込みが前提\n\n解析対象は読み込みに成功した辞書です。構文エラーなどで辞書が読み込めない場合は緊急モードになり、LINT 系関数を使う辞書自体が動きません。重複定義・構文エラー・括弧付きの未定義関数呼び出し(E0071)などは、YAYA 本体が読み込み時にエラーとして出力します。\n\n位置情報\n\n- 行は LINT.GetVarRefs で得られます。ステートメント単位の行番号です。\n- / による行の継続やヒアドキュメントで複数行にわたるステートメントは、その最後の行の番号になります。\n- 桁は得られません。YAYA 内部にも保持されていません。読み込み時に行の結合・#define の置換・コメント除去・{ } ; での分割を行うためです。\n\n名前の見え方\n\n- #define / #globaldefine は読み込み時に文字列として置換されるので、置換後の名前が見えます。\n- EVAL('名前') や LETTONAME('名前', …) のように文字列で指定される名前は追えません。\n- LINT を行う辞書自身の関数・変数も一覧に含まれます。接頭辞などで除外してください。\n- 埋め込み式 %(式) の展開で内部的に使われる TOSTR が、関数の呼び出しとして含まれます(LINT.GetFuncUsedBy / LINT.GetVarRefs)。ユーザーが書いた TOSTR と区別できません。\n\n読み・書きの区別\n\n- LINT.GetVarRefs では、= の代入先は w、複合代入(+= など、++ -- を含む)の代入先は rw です。\n- 配列要素への = の代入(_a[0] = 1)は w として扱います。配列の他の要素は残りますが、未定義の変数への要素代入も許されるためです。\n- 並べ替え(代入先を最後に並べる)はステートメント単位です。1つの式に複数の代入が含まれる場合、実行順とは一致しないことがあります。\n- LINT.GetVarRefs 以外の関数には読み・書きの印がありません。\n - GetGlobalVarUsedBy / GetGlobalVarLetted は重複を除去するため、「代入されているが一度も読まれていないグローバル変数」を判別できません。\n - GetLocalVarUsedBy の各要素が読みか代入かを、GetLocalVarLetted と1件ずつ突き合わせて決めることはできません。\n\n構文の情報\n\n- ブロックの種類と、出現した構文の種類(条件式・for の各部・case の式など)は LINT.GetVarRefs で得られます。\n- 変数・関数を含まないステートメント(break / continue / 式なしの return / --、リテラルだけの出力など)は列挙されません。\n- others は内部で else に変換されるため、「case ブロックの直下にある else」を others と判定しています。\n- when は内部で if / elseif に変換されるため、case の内部変数を含むかどうかで判定しています。\n\n解析の範囲\n\n- 分岐やループの流れは、ブロックの種類と深さから辞書側で組み立てる必要があります。\n- 関数をまたいだ解析(引数 _argv の使われ方、グローバル変数の代入元など)は、関数ごとの結果を辞書側で突き合わせる必要があります。\n\n検査の組み立て例\n\n| 検査 | 可否 | 方法 |\n|------|------|------|\n| 未使用関数 | 可 | GETFUNCLIST の全関数について LINT.GetVarRefs の func,user を集め、どこにも現れない関数を列挙する(イベント関数など外部から呼ばれるものは除外) |\n| 未使用ローカル変数 | 可 | スコープ({ })ごとに、w しかなく r / rw がない変数を探す |\n| 未定義ローカル変数の読み | 可(分岐は辞書側で考慮) | 先頭から順に追い、そのスコープまたは外側のスコープで w / rw が現れる前の r / rw を探す |\n| 未使用グローバル変数 | 可 | 全関数の var,global を集め、w しかない変数を探す(EVAL などで読まれるものは追えない) |\n| 条件式内の代入 | 可 | context が if / elseif / while / switch / for-cond で、access が w / rw の件を探す |\n| case の不正な節 | 一部可 | case ブロックの直下(深さ+1)に、when / others 以外のブロックや context が when 以外の件がないか調べる。変数・関数を含まない記述は検出できない |\n| 名前の打ち間違い候補 | 可 | GETFUNCLIST / GETVARLIST との編集距離を辞書側で計算する |\n| 行・桁の表示 | 行のみ可 | 桁は得られない |",
|
|
15955
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/other/lint-functions/"
|
|
16165
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/other/lint-functions/",
|
|
16166
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/other/lint-functions.md"
|
|
15956
16167
|
},
|
|
15957
16168
|
{
|
|
15958
16169
|
"id": "yaya:other/saori-usage",
|
|
@@ -15960,7 +16171,8 @@
|
|
|
15960
16171
|
"source": "yaya_docs",
|
|
15961
16172
|
"category": "yaya_other",
|
|
15962
16173
|
"content": "SAORIの使い方\n\n概要\n\nSAORI は伺かにおいて、SHIORI 以外の汎用言語(C言語など)で書かれた処理を実装する機能。2つのSAORI規格が存在する:\n\n| 規格 | 形式 | 備考 |\n|------|------|------|\n| SAORI-basic | 実行ファイル(.exe) | コマンドライン引数と標準出力を使用 |\n| SAORI-universal | ダイナミックライブラリ(.dll) | SSTP の知識が必要 |\n\nSAORI-basic の実装\n\nコマンドライン引数を受け取り、標準出力で結果を返す形式。コンパイル時は依存関係を避けるため静的ビルドを推奨。\n\nデフォルトの文字コードはShift-JIS(UTF-8ではない)。ただしYAYAはUnicodeをサポートしている。\n\nYAYAとの連携\n\nYAYAでのSAORI-basic呼び出しは FUNCTIONEX 関数と proxy_ex.dll を使用する:\n\n// FUNCTIONEXの第一引数はyaya.dllからproxy_ex.dllへの相対パス\nFUNCTIONEX(\"proxy_ex.dll\", \"saori/xxx.exe\", Argument0, ...)\n\nパス区切りは バックスラッシュ を使うこと:\"saori\\xxx.dll\"(\"saori\\\\xxx.dll\" や \"saori/xxx.dll\" は不可)。\n\n配列出力の扱い\n\n複数の返り値はデリミタベースの簡易配列または SPLIT 関数で取り扱える。\n\nSAORI-universal の実装\n\n.dll 形式。Result と Value0/Value1 パラメータを返す。proxy_ex.dll は不要。返り値はグローバル変数 valueex[] 配列に格納される。\n\nPython との連携\n\nPythonスクリプトを PyInstaller でスタンドアロン実行ファイルに変換することでPython統合が可能。ユーザー環境にPythonインタープリタのインストールが不要になる。\n\nPyInstaller (ファイル名).py\nPyInstaller --onefile (ファイル名).py # 単一ファイルで出力\n\n関連\n\n- YAYA as SAORI\n- FUNCTIONEX\n- LOADLIB\n- REQUESTLIB",
|
|
15963
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/other/saori-usage/"
|
|
16174
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/other/saori-usage/",
|
|
16175
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/other/saori-usage.md"
|
|
15964
16176
|
},
|
|
15965
16177
|
{
|
|
15966
16178
|
"id": "yaya:other/simple-yaya-template",
|
|
@@ -15968,7 +16180,8 @@
|
|
|
15968
16180
|
"source": "yaya_docs",
|
|
15969
16181
|
"category": "yaya_other",
|
|
15970
16182
|
"content": "SimpleYAYAテンプレート\n\n概要\n\nシンプルなYAYAテンプレートゴースト。3つの辞書ファイルのみで構成された最小限の設計。\n\nシンプルという名前だが、一般的なゴーストに必要な土台は揃っている。\n\n特徴\n\n- ファイル構成: 辞書ファイル3本のみ\n- デザイン: 最小限の個性を持つ基本的な矩形シェル\n- 対象ユーザー: 複雑なテンプレートに圧倒されるユーザー、シンプルさと明確さを求める経験豊富な作成者\n\n対応イベント\n\n翻訳、選択肢、起動・終了、キャラクター切替、ランダムトーク、マウス操作(ダブルクリック・なで)、キーボード反応、時間イベント、シェル変更、インストール、メール確認、ネットワーク更新、RSS対応、ファイル作成、URL・ファイルのドラッグ&ドロップ\n\n使用条件\n\n自由に改変・配布可能(帰属表示不要)。ただし配布時には以下を置き換えること:\n- readmeファイル\n- ディレクトリ名\n- 作者情報\n- キャラクター名\n\n配布\n\n最新版: simple_yaya_2021_05_30.nar(添付ファイルリンクから入手)\n\n関連\n\n- StartUp/YAYAでゴーストを作る\n- YAYA",
|
|
15971
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/other/simple-yaya-template/"
|
|
16183
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/other/simple-yaya-template/",
|
|
16184
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/other/simple-yaya-template.md"
|
|
15972
16185
|
},
|
|
15973
16186
|
{
|
|
15974
16187
|
"id": "yaya:other/talklib",
|
|
@@ -15976,7 +16189,8 @@
|
|
|
15976
16189
|
"source": "yaya_docs",
|
|
15977
16190
|
"category": "yaya_other",
|
|
15978
16191
|
"content": "トークべた書き支援ライブラリ「あやりりすEX」\n\n概要\n\nYAYA用ゴースト開発において、SAKURAScriptでのトークを簡潔に記述できるよう支援するライブラリ。\n\n利点: ウエイトタグの記述が不要になり、複雑なスクリプト構文を削減できる。既存のSAKURAScriptとの互換性も保つため、段階的な導入が可能。\n\n基本的な書き方\n\nま05:てすとてすと\nし10:うまくいくやろか。\n\n形式: キャラクター識別字(設定した1文字)+サーフェス番号:テキスト\n\n主要機能\n\n| 機能 | 説明 |\n|------|------|\n| ランダム選択 | パイプ記号で区切った複数テキストから随時選択 |\n| チェイントーク | 等号5つ以上で区切ると連続再生 |\n| 待機時間制御 | 「待ち無し」「待ち多め」など指定可能 |\n| メニュー表示 | クリック選択肢の自動生成 |\n| コメント対応 | # で始まる行は無視される |\n\n動作方式: 字句を自動でウエイト挿入することにより、句読点での待機時間が自動調整される。\n\n導入方法\n\n1. システム辞書と YAYA の最新版を更新\n2. 専用辞書ファイル2つを取得・配置\n3. yaya.txt に読込命令を追記\n4. 設定辞書でキャラ識別字を定義\n\n関連\n\n- システム辞書/yaya_shiori3.dic",
|
|
15979
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/other/talklib/"
|
|
16192
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/other/talklib/",
|
|
16193
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/other/talklib.md"
|
|
15980
16194
|
},
|
|
15981
16195
|
{
|
|
15982
16196
|
"id": "yaya:other/troubleshooting",
|
|
@@ -15984,7 +16198,8 @@
|
|
|
15984
16198
|
"source": "yaya_docs",
|
|
15985
16199
|
"category": "yaya_other",
|
|
15986
16200
|
"content": "困ったときの対処法\n\n動作が遅い\n\n- aya.txt の動作ログ設定を確認。ログを取る設定のままにしていないか?\n- システム辞書のゴーストリスト取得が有効になっていないか確認。最大取得数を減らすか0に設定するとパフォーマンスが向上する。\n\n選択肢が機能しない\n\n辞書ファイル内の {} が閉じられていない可能性がある。波括弧の対応を確認すること。\n\nOnChoiceSelect が正常に動作しない\n\nYAYA バージョン 5.0〜5.2 では、関数名に ( ) [ ] ! ++ -- * / % + - & == != <= >= < > && || = := += -= *= /= %= などの演算子や特殊文字が含まれている場合、選択が失敗することがある。これらの文字を含まない名前に変更する。\n\nセリフに謎の「0」や「1」が現れる\n\n変数の代入に =(代入)ではなく ==(比較)を使っていないか確認。よくある間違いで予期しない出力が発生する。\n\nランダムトークが出ない\n\nスクリプトに OnSecondChange{} が存在するか確認。これがないと OnAiTalk が実行されない。特定の動作が不要でも空の実装を含めること。\n\n起動に失敗する\n\n「玉」構文チェッカーツールでコンパイルエラーを特定する。よくある間違い:\n- クォートが閉じられていない\n- elseif が else if と書かれている\n- カッコ・波括弧の不一致\n- 文字コードの問題(UTF-8 vs Shift-JIS)\n\n関数の型エラー\n\n特定の関数で常に「引数の型が不正です」が表示される場合、ファイル全体で TOINT() や TOSTR() を使って引数の型が要件に合っているか確認する。\n\nSAORIがフリーズする\n\nパス区切りにバックスラッシュを使う:\"saori\\xxx.dll\"(\"saori\\\\xxx.dll\" や \"saori/xxx.dll\" は不可)。\n\nSakuraScriptのカッコ処理\n\n] を含むテキストはクォートで囲み、内部のクォートはダブルにしてエスケープする:'\"' + text + '\"'\n\n配布前のクリーンアップ\n\n配布前に以下のファイルを削除すること:\n- ***_variable.cfg(セーブデータ)\n- ***.log(実行ログ)\n- ssp_shiori_log.txt\n- profile/ と var/ フォルダ\n- 暗号化されていない .dic ファイル\n\n関連\n\n- LOGGING\n- GETERRORLOG\n- GETCALLSTACK",
|
|
15987
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/other/troubleshooting/"
|
|
16201
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/other/troubleshooting/",
|
|
16202
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/other/troubleshooting.md"
|
|
15988
16203
|
},
|
|
15989
16204
|
{
|
|
15990
16205
|
"id": "yaya:other/yaya-as-makoto",
|
|
@@ -15992,7 +16207,8 @@
|
|
|
15992
16207
|
"source": "yaya_docs",
|
|
15993
16208
|
"category": "yaya_other",
|
|
15994
16209
|
"content": "YAYA as MAKOTO\n\n概要\n\nSetoriが作成したモジュール。YAYAの文法でトークやさくらスクリプトを変換するトランスレータ「MAKOTO」を作成できる。YAYAのシステム関数とSAORI機能を活用する。\n\nゴースト側からも利用可能だが、主にシェル側の開発向けに設計されている。\n\n活用例\n\nこのモジュールで作成されたシェルは以下のような機能を持てる:\n- ランダムに変化するセリフパターン\n- 時刻や起動回数に基づくセリフ・サーフェスの変化\n- ウィンドウ座り機能\n- その他カスタマイズされた動作\n\n配布\n\n- UTF-8改善版: Nightworkで入手可能\n- オリジナル2014年版も提供\n\nサンプルプロジェクト\n\n季節による衣装変更やウィンドウインタラクション機能を備えたシェルのデモが文書化されている。\n\n関連\n\n- YAYA as SAORI\n- TRANSLATE",
|
|
15995
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/other/yaya-as-makoto/"
|
|
16210
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/other/yaya-as-makoto/",
|
|
16211
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/other/yaya-as-makoto.md"
|
|
15996
16212
|
},
|
|
15997
16213
|
{
|
|
15998
16214
|
"id": "yaya:other/yaya-as-plugin",
|
|
@@ -16000,7 +16216,8 @@
|
|
|
16000
16216
|
"source": "yaya_docs",
|
|
16001
16217
|
"category": "yaya_other",
|
|
16002
16218
|
"content": "YAYA as PLUGIN\n\n概要\n\nyaya.dllのプラグイン規格対応用辞書セット。YAYA構文でプラグインを作成でき、SAORI連携もサポートする。PLUGIN/2.0仕様に対応し、主にSSP専用のプラグインシステムとして機能する。\n\n配布\n\nThe Maintenance Shop で入手可能。\n\n作成されたプラグイン例\n\n| プラグイン名 | 説明 |\n|-----------|------|\n| きょうの伺か+ | ゴースト向けTwitter連携 |\n| スタンプ帳 | スタンプコレクションプラグイン |\n| BalloonMaker | バルーン作成ユーティリティ |\n| BalloonSelector | バルーン選択サポート |\n\nプラグイン作成方法\n\n必要なファイルは3つ:\n\nyaya_plugin_main.txt\nOnMenuExec イベントハンドラを含む。プラグインメニューアクセス時にどのイベントを起動するか、Reference値、対象ゴースト指定、バルーンマーカー、ダイアログスクリプトを記述。\n\ndescript.txt\n設定ファイル。文字コード(Shift_JIS)、プラグイン名、作者情報、ファイル名(yaya.dll)、プラグインID(UUIDツールで生成)、更新URLを記載。\n\ninstall.txt\nインストールメタデータ。プラグインの種類、名前、ディレクトリ指定を記載。\n\n注意事項\n\n- イベント監視には yaya.txt のログを有効化する\n- 里々経由で値を送信する際、句読点に自動のwaitタグが付く場合がある\n- プラグインのリロードはプラグインエクスプローラーから無効化→有効化のサイクルで行う\n\n関連\n\n- YAYA as SAORI\n- PLUGIN/2.0仕様: http://ssp.shillest.net/ukadoc/manual/spec_plugin.html",
|
|
16003
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/other/yaya-as-plugin/"
|
|
16219
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/other/yaya-as-plugin/",
|
|
16220
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/other/yaya-as-plugin.md"
|
|
16004
16221
|
},
|
|
16005
16222
|
{
|
|
16006
16223
|
"id": "yaya:other/yaya-as-saori",
|
|
@@ -16008,7 +16225,8 @@
|
|
|
16008
16225
|
"source": "yaya_docs",
|
|
16009
16226
|
"category": "yaya_other",
|
|
16010
16227
|
"content": "YAYA as SAORI\n\n概要\n\nSetoriが作成したモジュール。他の SHIORI 実装から yaya.dll を SAORI として呼び出し、YAYA の機能を利用できるようにする。デフォルトでは組み込みシステム関数のみが利用可能だが、カスタムモジュールで機能を拡張できる。\n\n配布\n\n最新バージョン(2021-10-08): yaya_as_saori_2021_10_08.zip(481.2KB)\nGitHub リリースからも追加バージョンを取得可能。\n\nモジュール開発API\n\n引数の取り扱い\n\nSAORIの引数はモジュール内で REQ.ARGS[*] 配列に格納される。Argument0 → REQ.ARGS[0]。\n\n戻り値\n\n- 単一返し: RES.RESULT を使用\n- 複数返し: RES.VALUE* を使用(RES.VALUE* は配列ではないため、代入には EVAL システム関数を使う)\n\nエラー処理\n\n実行失敗を示すには数値 -1 を返す。YAYA as SAORIシステムは -1 を無効な呼び出しとして扱いエラーを通知する。失敗の記録には LOGGING 関数を使用。\n\nモジュール命名規則\n\n関数は モジュール名.関数名 パターンに従う。これにより自動ロード・アンロード管理が可能になる。モジュール関数が初めて呼び出されると、YAYA as SAORI は モジュール名.Load を検索して実行する。アンロード時には モジュール名.Unload が実行される。\n\n追加モジュール\n\n- JSONパーサー(オブジェクト的な操作付き)\n- カレンダー計算関数\n- テキストファイル編集機能\n- SSU(Satori SAORI)互換レイヤー\n- ゴーストメタデータリーダー(Reta)\n\n関連\n\n- SAORIの使い方\n- FUNCTIONEX\n- LOADLIB",
|
|
16011
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/other/yaya-as-saori/"
|
|
16228
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/other/yaya-as-saori/",
|
|
16229
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/other/yaya-as-saori.md"
|
|
16012
16230
|
},
|
|
16013
16231
|
{
|
|
16014
16232
|
"id": "yaya:other/yaya",
|
|
@@ -16016,7 +16234,8 @@
|
|
|
16016
16234
|
"source": "yaya_docs",
|
|
16017
16235
|
"category": "yaya_other",
|
|
16018
16236
|
"content": "YAYA\n\n概要\n\nYAYA(読み: やや)は伺か/Ukagakaのゴーストキャラクター向けSHIORI実装ツール。C言語に似た構文を持つ文字列処理DLLで、与えられた文字列の変形や、プログラムされたルールに基づく文字列生成が可能。\n\n配布・リソース\n\n- GitHub リポジトリでリリース、変更ログ、「玉」やCIチェッカーなどの関連ツールを管理\n- 最終更新: 2025年2月9日\n\nドキュメント構成\n\n| カテゴリ | 内容 |\n|---------|------|\n| スタートアップガイド | YAYA/AYAの紹介、ゴースト作成、他フォーマットからの移行 |\n| マニュアル | 基本、文法、システム辞書、関数リファレンス |\n| Tips | 実装例集 |\n| トラブルシューティング | 困ったときの対処法 |\n\nYAYA以外の用途\n\n| バリアント | 説明 |\n|-----------|------|\n| YAYA as SAORI | SAORI として YAYA を利用する |\n| YAYA as MAKOTO | MAKOTO トランスレータとして YAYA を利用する |\n| YAYA as PLUGIN | プラグインとして YAYA を利用する |\n\n関連\n\n- StartUp/YAYAでゴーストを作る\n- チュートリアル",
|
|
16019
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/other/yaya/"
|
|
16237
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/other/yaya/",
|
|
16238
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/other/yaya.md"
|
|
16020
16239
|
},
|
|
16021
16240
|
{
|
|
16022
16241
|
"id": "yaya:startup/creating-ghost",
|
|
@@ -16024,7 +16243,8 @@
|
|
|
16024
16243
|
"source": "yaya_docs",
|
|
16025
16244
|
"category": "yaya_startup",
|
|
16026
16245
|
"content": "YAYAでゴーストを作る\n\nステップ1: テンプレートゴーストを選ぶ\n\n既存のテンプレートから改造することを推奨。\n\n| テンプレート | 説明 |\n|-----------|------|\n| はろーYAYAわーるど(紺野ややめ) | スタンドアロンテンプレート。そのまま楽しめ、カスタマイズも可能 |\n| SimpleYAYAテンプレート | より最小限の出発点を求める場合に |\n| 紺野りりす | 「強力な開発サポート処理」付き。シンプルさと充実した拡張性を兼ね備えることを目指したテンプレート |\n| デバッガ(玉) | テンプレートではないが、辞書のエラーチェックに推奨される開発ツール |\n\n重要: 紺野ややめや紺野りりすを使う場合、大規模な編集前に yaya_string.txt の homeurl 設定を無効化すること(ネットワーク更新でファイルが変更される恐れがある)。\n\nステップ2: ドキュメントを参照する\n\nテンプレートにない機能を実装したくなったときは以下のドキュメントを参照:\n- このマニュアル\n- 旧AYAドキュメント\n- SAKURA Script仕様\n- 他のSHIORI実装からの移行ガイド\n\nステップ3: トラブルシューティング\n\n行き詰まったら「困ったときの対処法」とTipsセクションを確認する。\n\n関連\n\n- SimpleYAYAテンプレート\n- チュートリアル1: 準備\n- 困ったときの対処法",
|
|
16027
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/startup/creating-ghost/"
|
|
16246
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/startup/creating-ghost/",
|
|
16247
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/startup/creating-ghost.md"
|
|
16028
16248
|
},
|
|
16029
16249
|
{
|
|
16030
16250
|
"id": "yaya:startup/migration-from-aya",
|
|
@@ -16032,7 +16252,8 @@
|
|
|
16032
16252
|
"source": "yaya_docs",
|
|
16033
16253
|
"category": "yaya_startup",
|
|
16034
16254
|
"content": "AYAからの移行\n\n主な変更点\n\nDLL・ファイル名の変更\n\n- aya5.dll → yaya.dll\n- descript.txt と設定ファイルの名前を対応して変更\n- セーブファイル: aya5_variable.cfg → yaya_variable.cfg\n\nセーブデータの引き継ぎ: aya_shiori3.dic の OnLoad 先頭に旧フォーマットを復元・変換するコードを追加する。\n\nシステム辞書の変更\n\nシステム辞書は単純な更新ではなく置き換えが必要。YAYAのデフォルト辞書は AYA5 が自動処理していたバイト値変換を行わなくなった。NAMETOVALUE などの一部の関数はシステム辞書から削除された。\n\n移行手順(aya_shiori3.dic を改変していない場合)\n\n1. descript.txt を aya5.dll → yaya.dll に変更\n2. aya5.dll を削除し yaya.dll をインストール\n3. aya5.txt → yaya.txt にリネーム\n4. 紺野ややめをダウンロードしてシステムファイルを展開\n5. systemフォルダの内容をゴーストにコピー\n6. system_config.txt をゴーストディレクトリにコピー\n7. yaya.txt で aya_shiori3.dic の参照を include, system_config.txt に変更\n8. config.dic を設定: SHIORI3FW.AUTO_DATA_CONVERT=1 と SHIORI3FW.REF_ACCEL=0\n\nネット配布の場合: delete.txt を作成し aya5.dll と aya5.txt を削除対象に追加する。\n\n関連\n\n- StartUp/YAYAでゴーストを作る\n- システム辞書/yaya_shiori3.dic",
|
|
16035
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/startup/migration-from-aya/"
|
|
16255
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/startup/migration-from-aya/",
|
|
16256
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/startup/migration-from-aya.md"
|
|
16036
16257
|
},
|
|
16037
16258
|
{
|
|
16038
16259
|
"id": "yaya:startup/migration-from-satolili",
|
|
@@ -16040,7 +16261,8 @@
|
|
|
16040
16261
|
"source": "yaya_docs",
|
|
16041
16262
|
"category": "yaya_startup",
|
|
16042
16263
|
"content": "里々からの移行\n\n概要\n\n里々から YAYA への移行ガイド。プログラミングの専門知識ではなく、構文と構造の基本的な違いを理解することが成功の鍵。\n\nプログラミング的な処理に強いため複雑なゴースト開発が楽になる。非プログラマーも個人の相性次第で問題なく使用できる。\n\n里々との重要な違い\n\n構文の違い\n\n| 項目 | 里々 | YAYA |\n|------|------|------|\n| イベント定義 | *BootTalk | OnBoot { ... } |\n| テキスト | 引用符不要 | 必ず引用符で囲む \"text\" |\n| 演算子・数値 | 全角可 | 半角のみ |\n| 改行・スペース | 自動適用 | SAKURAScriptタグを明示的に記述 |\n\n変数の違い\n\n- 里々は変数1種類; YAYA は文字列と数値を区別する\n- グローバル変数はプレフィックスなし; ローカル変数にはアンダースコア: _変数名\n- 文字列代入はクォート必須: 変数 = \"テキスト\"; 数値代入は不要: 変数 = 1\n\nイベント定義の違い\n\n里々は同名イベントを繰り返し書けるが、YAYAは同じイベント名を2つ以上書けない。代わりに1つの波括弧内でランダム選択を使う。\n\n必須の準備\n\nテンプレートはほぼ必須。SHIORI/3.0設定スクリプトのため。シンタックスハイライト対応の .dic ファイルエディタを推奨。\n\nコード例(里々→YAYA変換)\n\n基本セリフ\n\n// 里々\n*OnBoot\n\0\s[0]こんにちは。\e\n\n// YAYA\nOnBoot { \"\\0\\s[0]こんにちは。\\e\" }\n\n改行\n\n// YAYA(明示的なタグが必要)\n\"\\0\\s[0]一行目\\n二行目\\e\"\n\nランダム選択\n\n// YAYA(-- で区切る)\nOnBoot { \"こんにちは。\" -- \"おっすー。\" -- \"やっほー。\" }\n\n条件分岐\n\n// YAYA\nif (_name == \"さくら\")\n{\n \"さくらです\"\n}\nelse\n{\n \"さくらじゃない!\"\n}\n\nSAORI連携\n\n// YAYA\nFUNCTIONEX(\"saori/xxx.dll\", Argument0, ...)\n\nよくある問題\n\n| 問題 | 原因・対処 |\n|------|----------|\n| 辞書が読み込まれない | yaya.txt で明示的に辞書を指定する(里々の自動検出と異なる) |\n| ゴーストが動かない | 構文エラーは実行を妨げる。エラーログを確認するか「玉」で検証する |\n| セーブデータ | 里々の satori_savedata.txt に相当するのは yaya_variable.cfg |\n\n関連\n\n- 基本/変数\n- 文法/7.フロー制御\n- 困ったときの対処法",
|
|
16043
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/startup/migration-from-satolili/"
|
|
16264
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/startup/migration-from-satolili/",
|
|
16265
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/startup/migration-from-satolili.md"
|
|
16044
16266
|
},
|
|
16045
16267
|
{
|
|
16046
16268
|
"id": "yaya:startup/tutorial-01-preparation",
|
|
@@ -16048,7 +16270,8 @@
|
|
|
16048
16270
|
"source": "yaya_docs",
|
|
16049
16271
|
"category": "yaya_startup",
|
|
16050
16272
|
"content": "チュートリアル1: 準備\n\n必要なダウンロード\n\n3つのコンポーネントが必要:\n\n1. SSP(最新版): 2013年以降の主要ベースウェア。豊富な機能、軽量動作、継続的なアップデートのためSSPを前提とするチュートリアル。\n\n2. yaya.dll(最新版): YAYA の SHIORI コア。コードリポジトリから入手。\n\n3. テンプレートゴースト: 複数のオプションがある。このチュートリアルでは SimpleYAYAテンプレート を使用。SSP でインストール後、ゴーストのmasterディレクトリ内のバンドルされた yaya.dll を最新版に置き換える。\n\n開発環境のセットアップ\n\nSSP開発パレット\n\n開発機能を有効化: ゴーストを右クリック → 設定 → 全般 → 「開発者用機能を有効にする」にチェック。その後、右クリック → 機能 → 開発パレット でアクセス。\n\n開発中に常時開いておくと便利なデバッグ機能を提供する。\n\nYAYAデバッグツール\n\nデバッガ「玉」をダウンロードして任意の場所に解凍。辞書のエラーチェックに使用する。\n\nオプション: テキストエディタの設定\n\nWindows メモ帳でも動作するが、YAYA固有のシンタックスハイライトが可読性を向上させる。Tipsセクションに .dic ファイル向けの複数のカラースキームオプションがある。\n\nファイル拡張子の関連付け\n\n以下の3つの拡張子をテキストエディタに関連付ける:\n- .dic(辞書ファイル)\n- .log(実行ログ)\n- .cfg(セーブデータ)\n\nYAYA設定済みエディタを使う場合は .dic をそのアプリケーションに専用で関連付けることでシンタックスハイライトが活用できる。\n\n次のステップ\n\n- チュートリアル2: トークを書いてみる\n\n関連\n\n- SimpleYAYAテンプレート\n- 困ったときの対処法",
|
|
16051
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/startup/tutorial-01-preparation/"
|
|
16273
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/startup/tutorial-01-preparation/",
|
|
16274
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/startup/tutorial-01-preparation.md"
|
|
16052
16275
|
},
|
|
16053
16276
|
{
|
|
16054
16277
|
"id": "yaya:startup/tutorial-02-writing-dialogue",
|
|
@@ -16056,7 +16279,8 @@
|
|
|
16056
16279
|
"source": "yaya_docs",
|
|
16057
16280
|
"category": "yaya_startup",
|
|
16058
16281
|
"content": "チュートリアル2: トークを書いてみる\n\n辞書ファイルを開く\n\n開発パレットの「開く」ボタンで GHOST フォルダ内の .dic ファイルを開く。メインの辞書は dic_main.dic。\n\n基本構造\n\nOnBoot イベントでコアの構文を確認:\n\nOnBoot { \"\\0\\s[0]こんにちは。\\e\" }\n\n| 要素 | 説明 |\n|------|------|\n| OnBoot | イベント関数名(ゴースト起動時に発生) |\n| { } | 関数本体の区切り |\n| \" \" | 文字列の区切り(セリフには必須) |\n| \\0 | キャラクター識別子(メインキャラクター) |\n| \\s[0] | サーフェス表示コマンド(キャラクタースプライト) |\n| \\e | 終了トークン |\n\nランダムセリフの作成\n\n{ } 内の複数のクォート文字列はランダムに選ばれる:\n\nOnBoot { \"こんにちは。\" ; \"おっすー。\" ; \"やっほー。\" }\n\n-- セパレータで要素を組み合わせる:\n\nOnBoot { \"\\0\\s[0]\" -- \"こんにちは。\" \"おっすー。\" -- \"\\e\" }\n\n選択修飾子:\n- : nonoverlap — 直前と同じ候補が連続しないようにする\n- : sequential — 順番に選択する\n\nカスタム関数\n\n再利用可能な関数を作成する:\n\nOnBoot { \"\\0\\s[0]きょうは\" -- 天気一覧 -- \"です。\\e\" }\n\n天気一覧 { \"晴れ\" \"雨\" \"曇り\" \"雷\" }\n\n文字列内での呼び出しは %(関数名) を使う。\n\nフォーマットとコメント\n\n- クォートの外のホワイトスペースは無視される\n- // で1行コメント\n- /* */ で複数行コメント\n- 文字列内で行を継続するには末尾に / を付ける\n\nエラーのトラブルシューティング\n\n- 波括弧が閉じているか確認\n- 疑わしいセクションをコメントアウト\n- デバッグツール「玉」を使用\n- yaya.txt でログを有効化\n- SSP右クリックメニューからスクリプトログを表示\n\n重要: 辞書内で同名の関数は1つしか使えない。\n\n次のステップ\n\n- チュートリアル3: 変数を使ってみよう\n\n前のステップ\n\n- チュートリアル1: 準備",
|
|
16059
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/startup/tutorial-02-writing-dialogue/"
|
|
16282
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/startup/tutorial-02-writing-dialogue/",
|
|
16283
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/startup/tutorial-02-writing-dialogue.md"
|
|
16060
16284
|
},
|
|
16061
16285
|
{
|
|
16062
16286
|
"id": "yaya:startup/tutorial-03-variables",
|
|
@@ -16064,7 +16288,8 @@
|
|
|
16064
16288
|
"source": "yaya_docs",
|
|
16065
16289
|
"category": "yaya_startup",
|
|
16066
16290
|
"content": "チュートリアル3: 変数を使ってみよう\n\n変数とは\n\n変数は文字列や数値を格納するコンテナ。ゴースト開発の例:ユーザー名、起動回数、好感度など。\n\n文字列変数と数値変数\n\n// 数値代入(クォートなし)\n変数 = 1\n\n// 文字列代入(クォートあり)\n変数 = \"1\"\n\nクォートの有無で YAYA は文字列か変数参照かを判断する。\n\n型変換関数:\n\n| 関数 | 説明 |\n|------|------|\n| TOSTR(変数) | 文字列に変換 |\n| TOINT(変数) | 整数に変換 |\n| TOAUTO(変数) | 自動変換 |\n\nグローバル変数とローカル変数\n\n| 種類 | プレフィックス | ライフタイム |\n|------|--------------|-------------|\n| ローカル変数 | _変数名 | 一時的。スコープブロックを抜けると自動削除 |\n| グローバル変数 | プレフィックスなし | 永続。明示的に削除するまで保持 |\n\nベストプラクティス: ユーザー名や好感度などの永続データ以外は、ローカル変数を使うこと。\n\n実用例\n\nReference変数の使用\n\nOnMouseDoubleClick {\n \"\\0\\s[0]\"\n reference[3]\n \"番のキャラがつつかれたよ!\\e\"\n}\n\nまたは インライン構文で:\n\n\"\\0\\s[0]%(reference[3])番のキャラがつつかれたよ!\\e\"\n\nカスタム変数の作成\n\nOnMouseDoubleClick {\n プレゼント = \"花束\"\n \"\\0\\s[0]わーい「%(プレゼント)」ありがとう!\\e\"\n}\n\n算術演算\n\n好感度 = 好感度 + 1\n好感度++\n好感度 += 2\n\n文字列の連結も同様:\n\nプレゼント = \"花\" + \"束\"\n\n変数の永続化\n\nゴーストを閉じると yaya_variable.cfg セーブファイルに変数が保存される:\n- 文字列変数: プレゼント,\"花束\",,\n- 数値変数: 好感度,1,,\n\n前のステップ\n\n- チュートリアル2: トークを書いてみる\n\n関連\n\n- 基本/変数\n- 文法/3.値と変数\n- TOSTR\n- TOINT",
|
|
16067
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/startup/tutorial-03-variables/"
|
|
16291
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/startup/tutorial-03-variables/",
|
|
16292
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/startup/tutorial-03-variables.md"
|
|
16068
16293
|
},
|
|
16069
16294
|
{
|
|
16070
16295
|
"id": "yaya:system/error-handling-functions",
|
|
@@ -16072,7 +16297,8 @@
|
|
|
16072
16297
|
"source": "yaya_docs",
|
|
16073
16298
|
"category": "yaya_system",
|
|
16074
16299
|
"content": "エラー処理関数\n\n概要\n\nエラー処理関数は、スクリプト実行中に何かエラーが起きた時に自動的に呼び出されるユーザー関数。\n\nこれらの関数は任意実装。辞書に定義しなくてもスクリプトは正常に動作するが、デバッグやユーザー環境でのエラー分析に役立てられる。\n\n共通特性\n\nすべてのエラー処理関数は以下の特性を持つ:\n\n- 実装は任意 — エラー処理が不要な場合は辞書に書かなくても良い\n- 戻り値は無視 — 戻り値はシステムに無視される\n- GETCALLSTACK 関数を使うと問題箇所を特定できる\n\nエラー処理関数一覧\n\n| 関数 | 説明 |\n|------|------|\n| shiori.OnCallLimit | 呼び出しの深さが限界に達したとき |\n| shiori.OnLoopLimit | ループの反復回数が限界に達したとき |\n| shiori.OnMemoryError | メモリエラーが発生したとき |\n| shiori.OnMemoryLimit | メモリの限界に達したとき |\n\n関連\n\n- GETCALLSTACK",
|
|
16075
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/system/error-handling-functions/"
|
|
16300
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/system/error-handling-functions/",
|
|
16301
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/system/error-handling-functions.md"
|
|
16076
16302
|
},
|
|
16077
16303
|
{
|
|
16078
16304
|
"id": "yaya:system/shiori-OnCallLimit",
|
|
@@ -16080,7 +16306,8 @@
|
|
|
16080
16306
|
"source": "yaya_docs",
|
|
16081
16307
|
"category": "yaya_system",
|
|
16082
16308
|
"content": "shiori.OnCallLimit\n\n概要\n\n呼び出しの深さが限界に達したときに呼び出されるユーザー定義関数。\n\nSignature\n\nshiori.OnCallLimit(_filename_, _linenum_)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| filename | エラーが発生した辞書ファイル名 |\n| linenum | エラーが発生した行番号 |\n\nReturns\n\n戻り値はシステムに無視される。\n\nNotes\n\n- 実装は任意。エラー処理が不要な場合は辞書に書かなくても良い\n- GETCALLSTACK 関数を使って問題箇所を特定できる\n\nCompatibility\n\n- YAYA: Tc564-2 以降\n\nSee Also\n\n- shiori.OnLoopLimit\n- GETCALLSTACK",
|
|
16083
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/system/shiori-OnCallLimit/"
|
|
16309
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/system/shiori-OnCallLimit/",
|
|
16310
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/system/shiori-OnCallLimit.md"
|
|
16084
16311
|
},
|
|
16085
16312
|
{
|
|
16086
16313
|
"id": "yaya:system/shiori-OnLoopLimit",
|
|
@@ -16088,7 +16315,8 @@
|
|
|
16088
16315
|
"source": "yaya_docs",
|
|
16089
16316
|
"category": "yaya_system",
|
|
16090
16317
|
"content": "shiori.OnLoopLimit\n\n概要\n\nループの反復回数が限界に達したときに呼び出されるユーザー定義関数。\n\nSignature\n\nshiori.OnLoopLimit(_filename_, _linenum_)\n\nParameters\n\n| Parameter | Description |\n|-----------|-------------|\n| filename | エラーが発生した辞書ファイル名 |\n| linenum | エラーが発生した行番号 |\n\nReturns\n\n戻り値はシステムに無視される。\n\nNotes\n\n- 実装は任意。エラー処理が不要な場合は辞書に書かなくても良い\n- GETCALLSTACK 関数を使って問題箇所を特定できる\n- ループ上限は基礎設定の looplimit で変更可能(デフォルト: 10000)\n\nCompatibility\n\n- YAYA: Tc564-2 以降\n\nSee Also\n\n- shiori.OnCallLimit\n- GETCALLSTACK",
|
|
16091
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/system/shiori-OnLoopLimit/"
|
|
16318
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/system/shiori-OnLoopLimit/",
|
|
16319
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/system/shiori-OnLoopLimit.md"
|
|
16092
16320
|
},
|
|
16093
16321
|
{
|
|
16094
16322
|
"id": "yaya:system/shiori-OnMemoryError",
|
|
@@ -16096,7 +16324,8 @@
|
|
|
16096
16324
|
"source": "yaya_docs",
|
|
16097
16325
|
"category": "yaya_system",
|
|
16098
16326
|
"content": "shiori.OnMemoryError\n\n概要\n\nメモリエラーが発生したときに呼び出されるユーザー定義関数。\n\nSignature\n\nshiori.OnMemoryError()\n\nParameters\n\nNone\n\nReturns\n\n戻り値はシステムに無視される。\n\nNotes\n\n- 実装は任意。定義しない場合、システムはエラーログを生成するだけ\n- GETCALLSTACK 関数を使って問題箇所を特定できる\n\nCompatibility\n\n- YAYA: Tc567-2 以降\n\nSee Also\n\n- shiori.OnMemoryLimit\n- GETCALLSTACK",
|
|
16099
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/system/shiori-OnMemoryError/"
|
|
16327
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/system/shiori-OnMemoryError/",
|
|
16328
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/system/shiori-OnMemoryError.md"
|
|
16100
16329
|
},
|
|
16101
16330
|
{
|
|
16102
16331
|
"id": "yaya:system/shiori-OnMemoryLimit",
|
|
@@ -16104,7 +16333,8 @@
|
|
|
16104
16333
|
"source": "yaya_docs",
|
|
16105
16334
|
"category": "yaya_system",
|
|
16106
16335
|
"content": "shiori.OnMemoryLimit\n\n概要\n\nメモリの限界に達したときに呼び出されるユーザー定義関数。\n\nSignature\n\nshiori.OnMemoryLimit()\n\nParameters\n\nNone\n\nReturns\n\n戻り値はシステムに無視される。\n\nNotes\n\n- 実装は任意。エラー処理が不要な場合は辞書に書かなくても良い\n- GETCALLSTACK 関数を使って問題箇所を特定できる\n\nCompatibility\n\n- YAYA: Tc567-2 以降\n\nSee Also\n\n- shiori.OnMemoryError\n- GETCALLSTACK",
|
|
16107
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/system/shiori-OnMemoryLimit/"
|
|
16336
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/system/shiori-OnMemoryLimit/",
|
|
16337
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/system/shiori-OnMemoryLimit.md"
|
|
16108
16338
|
},
|
|
16109
16339
|
{
|
|
16110
16340
|
"id": "yaya:system/yaya-optional-dic",
|
|
@@ -16112,7 +16342,8 @@
|
|
|
16112
16342
|
"source": "yaya_docs",
|
|
16113
16343
|
"category": "yaya_system",
|
|
16114
16344
|
"content": "yaya_optional.dic\n\n概要\n\nyaya_optional.dic は SHIORI3 フレームワーク操作のためのユーティリティ関数を含む YAYA システム辞書。SAKURAスクリプトタグの操作、ゴーストの検出、FMO(フレームメモリオブジェクト)テーブル管理の4つの主要機能を提供する。\n\n関数一覧\n\nSHIORI3FW.EscapeDangerousTags\n\n文字列内の危険なSAKURAスクリプトタグを無効化する。\n\nSHIORI3FW.EscapeDangerousTags(script)\n\n危険と判定されるタグ:\n- \\![tag] の中の: updatebymyself, vanishbymyself, enter/passivemode, leave/passivemode, lock/repaint, unlock/repaint, biff, open/browser, open/mailer, raise\n- \\j[] タグ\n\n戻り値: 無効化された文字列\n\n---\n\nSHIORI3FW.EscapeAllTags\n\nすべての SAKURAスクリプトタグ(\\ で始まるもの)を無効化する。\n\nSHIORI3FW.EscapeAllTags(script)\n\n戻り値: エスケープされた文字列\n\n---\n\nSHIORI3FW.IsGhostExist\n\n指定名のゴーストが FMO 経由で現在起動しているか確認する。\n\nSHIORI3FW.IsGhostExist(name [, fmoname])\n\n| 引数 | 説明 |\n|------|------|\n| name | ゴースト名(\\0name) |\n| fmoname | FMO名(省略時デフォルト: \"Sakura\") |\n\n戻り値: 起動中なら 1、起動していなければ 0\n\n内部で RefreshFMOTable を呼び出す。\n\n---\n\nSHIORI3FW.RefreshFMOTable\n\nFMOデータを処理し、リアルタイムのゴースト情報を取得するための文字列配列を生成する。\n\nSHIORI3FW.RefreshFMOTable([fmoname [, hwnd]])\n\n| 引数 | 説明 |\n|------|------|\n| fmoname | FMO名(省略時デフォルト: \"Sakura\") |\n| hwnd | 除外するウィンドウハンドル(省略時: sakurahwnd変数) |\n\n生成されるグローバル変数\n\nSHIORI3FW.FMOTable(簡易配列形式)\n\nid|name|keroname|hwnd|kerohwnd|path|ghostpath,\n\nフィールド: id(ゴーストID)、name(\\0名)、keroname(\\1名)、hwnd(\\0ウィンドウハンドル)、kerohwnd(\\1ウィンドウハンドル)、path(インストールディレクトリ)、ghostpath(ベースディレクトリ)\n\nSHIORI3FW.SakuraNameList(汎用配列)\n\nFMOTableから抽出した \\0名 一覧。ランダムに起動中ゴーストを選ぶなどの操作に使える。\n\n注意: デフォルトでは自分自身の情報は除外される。自分を含めるには hwnd=-1 を指定する。\n\n関連\n\n- yaya_shiori3.dic",
|
|
16115
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/system/yaya-optional-dic/"
|
|
16345
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/system/yaya-optional-dic/",
|
|
16346
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/system/yaya-optional-dic.md"
|
|
16116
16347
|
},
|
|
16117
16348
|
{
|
|
16118
16349
|
"id": "yaya:system/yaya-shiori3-dic",
|
|
@@ -16120,7 +16351,8 @@
|
|
|
16120
16351
|
"source": "yaya_docs",
|
|
16121
16352
|
"category": "yaya_system",
|
|
16122
16353
|
"content": "yaya_shiori3.dic\n\n概要\n\nyaya_shiori3.dic は YAYA ベースのゴーストに核心機能を提供する基本システム辞書。\n\nコア機能\n\nSHIORIイベント処理\nSHIORI/3.0 プロトコルメッセージをベースウェアから受け取り、イベントIDを対応する関数にマッピングする。グローバル変数 basewarename、sender、status、Reference 配列を管理する。\n\nランダムトークシステム\n一定間隔(aitalkinterval)で呼び出される OnAiTalk 関数を実装。ベースウェアのサポートなしに自動AIトークが可能。\n\n内部トランスレータ\nすべてのイベント出力を送信前に処理する OnTranslateInternal 関数。セリフ全体に均一なテキスト変換を適用できる。\n\nチェーンダイアログ\n:chain=識別子 構文でダイアログシーケンスを連鎖させ、ランダム選択ではなく連続した対話を実現する。\n\n遅延評価\n:eval=式 構文で遅延コード実行を行える(デフォルトではセキュリティのため無効)。\n\n配列操作ユーティリティ関数\n\n| 関数 | 説明 |\n|------|------|\n| JOIN | 配列要素をセパレータで連結 |\n| REVERSE | 要素の順序を逆にする |\n| UNIQUE | 重複エントリを削除 |\n| SPLITEX | 空要素を除いた高度な文字列分割 |\n| MAX / MIN | 最大値・最小値を取得(MINは文字列の辞書順にも対応) |\n| AVERAGE | 数値の平均を計算 |\n\nシステム変数\n\n時間変数\nyear、month、day、weekday、hour、minute、second、systemuptime、ghostupmin\n\nメモリ変数\nmemoryload、memorytotalphys、memoryavailphys\n\nセンダー変数\nbasewarenameex、basewarename、sender\n\nSAORI連携\n\nFUNCTIONEX 関数でSAORI DLLの呼び出しを自動ロード・アンロードで簡略化できる。\n構文: FUNCTIONEX(dllname, Argument0, ...) - 結果は valueex 変数に格納される。\n\n関連\n\n- yaya_optional.dic\n- FUNCTIONEX",
|
|
16123
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/system/yaya-shiori3-dic/"
|
|
16354
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/system/yaya-shiori3-dic/",
|
|
16355
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/system/yaya-shiori3-dic.md"
|
|
16124
16356
|
},
|
|
16125
16357
|
{
|
|
16126
16358
|
"id": "yaya:tips/align-text-width",
|
|
@@ -16128,7 +16360,8 @@
|
|
|
16128
16360
|
"source": "yaya_docs",
|
|
16129
16361
|
"category": "yaya_tips",
|
|
16130
16362
|
"content": "テキストの幅を揃える\n\n概要\n\n等幅フォントを使用する環境で、文字列を指定したバイト数に揃える関数 ARRANGETEXT の実装例です。指定バイト数を超える場合はテキストを削り、足りない場合は半角空白で埋めます。\n\n使い方\n\nARRANGETEXT(文字列, 揃えるバイト数)\n\n- 第一引数: 揃える文字列\n- 第二引数: 揃えるバイト数\n\nコード例\n\nARRANGETEXT\n{\n _sb = TOINT(_argv[1])\n _bytes = (GETSTRBYTES(_argv[0], 0))\n if _bytes < _sb {\n // 半角空白で埋める\n _space = (_sb - _bytes)\n _val = _argv[0]\n _lp = 1\n while _lp <= _space {\n _val = _val + ' '\n _lp++\n }\n _val\n }\n elseif _bytes > _sb {\n // 越えていれば削る\n _leng = _sb\n _loop = 0\n _text = _argv[0]\n _byte = 0\n _c = ''\n while _byte < _leng {\n _sub = (SUBSTR((_text), (_loop), 1))\n _c = _c + _sub\n _byte = (GETSTRBYTES(_c, 0))\n _loop++\n if _loop > 200 { break }\n }\n _re = RE_GREP(_c, '.$')\n _re = RE_GETSTR\n if (GETSTRBYTES((_c), 0)) > _leng {\n _c = (RE_REPLACE(_c, '.$', '')) + ' '\n _c\n }\n else { _c }\n }\n else { _argv[0] }\n}\n\n説明\n\n- 文字列が指定バイト数より短い場合: while ループで半角空白 ' ' を末尾に追加\n- 文字列が指定バイト数より長い場合: 1文字ずつ取り出してバイト数を計測し、超過した時点で切り捨て。マルチバイト文字の途中で切れる場合は代わりに半角空白を補完\n- 文字列が指定バイト数と同じ場合: そのまま返す\n- GETSTRBYTES でバイト数を計測、RE_GREP と RE_REPLACE で正規表現処理を行う\n- 等幅フォント環境でのみ正しく機能する\n\n関連項目\n\n- GETSTRBYTES\n- SUBSTR\n- RE_GREP\n- RE_REPLACE",
|
|
16131
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/align-text-width/"
|
|
16363
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/align-text-width/",
|
|
16364
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/align-text-width.md"
|
|
16132
16365
|
},
|
|
16133
16366
|
{
|
|
16134
16367
|
"id": "yaya:tips/check-folder-duplicates",
|
|
@@ -16136,7 +16369,8 @@
|
|
|
16136
16369
|
"source": "yaya_docs",
|
|
16137
16370
|
"category": "yaya_tips",
|
|
16138
16371
|
"content": "フォルダ重複をチェックする\n\n概要\n\nゴースト開発時に、インストール先フォルダ名が他のゴーストと重複していないかを確認する方法を説明しています。\n\n> 「文に直接関係ありませんが、必要なTipsです」\n\nゴーストのインストール先フォルダ名が他のゴーストと被っていると、インストール時に上書きされるなどのトラブルが発生します。リリース前にフォルダ名の衝突を確認することを推奨しています。\n\n説明\n\nゴーストセンターに登録された大量のゴースト情報を活用してフォルダ名の重複をチェックできるツールが紹介されています。\n\nチェックツール URL:\nhttp://ghosttown.mikage.jp/check/gd_checker.cgi\n\nこのツールに自分のゴーストのインストール先フォルダ名を入力することで、既存のゴーストとの衝突を確認できます。\n\nコード例\n\nこのページにはYAYAコード例はありません。外部ツールの利用を案内する情報提供型のTipsです。",
|
|
16139
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/check-folder-duplicates/"
|
|
16372
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/check-folder-duplicates/",
|
|
16373
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/check-folder-duplicates.md"
|
|
16140
16374
|
},
|
|
16141
16375
|
{
|
|
16142
16376
|
"id": "yaya:tips/collision-response-satolili-style",
|
|
@@ -16144,7 +16378,8 @@
|
|
|
16144
16378
|
"source": "yaya_docs",
|
|
16145
16379
|
"category": "yaya_tips",
|
|
16146
16380
|
"content": "見切れ・重なり反応を里々風に\n\n概要\n\nYAYAで里々スタイルの見切れ・重なりイベント処理を実装する方法を説明します。里々では見切れ・重なり状態でも「多少の間を空けてから」イベントが発生するため、YAYAでもこの自然な動作を再現できます。\n\nタイマー機構を使って5秒の遅延を設けてから反応させることで、即時反応ではなく自然な挙動を実現します。\n\nコード例\n\n実装例1(基本版)\n\nOnSecondChangeイベント内でタイマー機構を使用します。\n\nOnSecondChange {\n // 見切れ処理\n if reference1 == 0 {\n // メインキャラが見切れている\n if mikireflag == 0 {\n mikireflag = 1\n mikiretimer = 5\n }\n elseif mikiretimer > 0 {\n mikiretimer--\n }\n else {\n // 5秒経過で反応\n mikireflag = 0\n \"\\0\\s[0]はみ出てます。\\e\"\n }\n }\n else {\n mikireflag = 0\n mikiretimer = 0\n }\n\n // 重なり処理\n if kasanarienable {\n if reference2 == 1 {\n if kasanaritimer > 0 {\n kasanaritimer--\n }\n else {\n kasanarienable = 0\n \"\\0\\s[0]重なってます。\\e\"\n }\n }\n else {\n kasanaritimer = 5\n }\n }\n}\n\n実装例2(改良版)\n\n配列形式のreference[1]・reference[2]を使用し、ISVAR()関数で変数初期化を確認するより堅牢な構造です。\n\nOnSecondChange {\n // 変数の初期化確認\n if !ISVAR(mikiretimer) {\n mikiretimer = 0\n mikireflag = 0\n }\n\n if reference[1] == 0 {\n if mikireflag == 0 {\n mikireflag = 1\n mikiretimer = 5\n }\n elseif mikiretimer > 0 {\n mikiretimer--\n }\n else {\n mikireflag = 0\n \"\\0\\s[0]はみ出てます。\\e\"\n }\n }\n else {\n mikireflag = 0\n mikiretimer = 0\n }\n}\n\n説明\n\n主な変数の役割:\n\n| 変数 | 説明 |\n|------|------|\n| mikiretimer | 見切れ検出までの待機時間(5秒) |\n| mikireflag | 見切れ状態を追跡するフラグ |\n| reference1 / reference[1] | メインキャラの表示状態 |\n| kasanaritimer | 重なり検出用タイマー |\n| kasanarienable | 重なり反応の有効フラグ |\n\n改良版ではreference[1]・reference[2]の配列形式を使用し、ISVAR()で変数の初期化チェックを行うことで、より安全な実装が可能です。\n\n作者: 関谷博志\n最終更新: 2021年2月27日\n\n関連項目\n\n- ISVAR\n- 高速化",
|
|
16147
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/collision-response-satolili-style/"
|
|
16381
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/collision-response-satolili-style/",
|
|
16382
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/collision-response-satolili-style.md"
|
|
16148
16383
|
},
|
|
16149
16384
|
{
|
|
16150
16385
|
"id": "yaya:tips/complex-in-check",
|
|
@@ -16152,7 +16387,8 @@
|
|
|
16152
16387
|
"source": "yaya_docs",
|
|
16153
16388
|
"category": "yaya_tips",
|
|
16154
16389
|
"content": "複雑な in チェック\n\n概要\n\nゴーストのトーク判定などで、文字列に何かが含まれているかどうかを複雑な条件で判定するための関数。\n\n_in_ 演算子は1つの文字列が含まれるかどうかしか調べられないが、この関数を使うと AND・OR・否定を組み合わせた条件をまとめて書ける。\n\n(文責:浮子屋)\n\n関数\n\nInStrCheck\n\nInStrCheck(チェック対象文字列, チェック文字列1, チェック文字列2, ...)\n\nチェック対象文字列の中にチェック文字列が含まれているかどうかを判定し、条件を満たせば 1、満たさなければ 0 を返す。\n\n- 2つ目以降の引数(チェック文字列)はすべて AND 条件になる\n- チェック文字列は | で区切れる。区切った場合は OR 条件になる\n- チェック文字列の先頭が ! の場合、「含まれる」「含まれない」の判定が逆になる\n- ! による逆転は、| で区切ったあとの各文字列ごとに評価される\n\n判定の例\n\n// hoge が含まれ、かつ hemo が含まれるか → 1\nInStrCheck(\"hogehemo\", \"hoge\", \"hemo\")\n\n// hoge が含まれず、かつ hemo が含まれるか → 0\nInStrCheck(\"hogehemo\", \"!hoge\", \"hemo\")\n\n// hoge が含まれる、または pepe が含まれるか → 1\nInStrCheck(\"hogehemo\", \"hoge|pepe\")\n\n// (hoge が含まれる、または pepe が含まれない)、かつ humu が含まれないか → 1\nInStrCheck(\"hogehemo\", \"hoge|!pepe\", \"!humu\")\n\nコード\n\n//*****************************************************************************\n//\tInStrCheck\n//\t対象文字列の中にチェック文字列が含まれているかどうかを\n//\t複雑な条件によって判定する\n//\targv0:\t\tチェック対象文字列\n//\targv1以降:\tチェック文字列\n//\n//\tresult:0(チェック失敗)または1(チェック合格)\n//\n//\t・argv1以降の引数はAND条件となる。\n//\t・チェック文字列は | で分割可能。この場合はOR条件となる。\n//\t・チェック文字列の先頭が ! の場合、含まれる、含まれないの判定が逆になる\n//\t・上記逆転は分割後に評価される\n//*****************************************************************************\nInStrCheck\n{\n\tfor _i=1 ; _i<_argc ; _i++ {\n\t\t_words=SPLIT(_argv[_i],'|')\n\t\t_isHit=0\n\t\tforeach _words ; _word {\n\t\t\t_onHit=1\n\t\t\tif SUBSTR(_word,0,1) == '!' {\n\t\t\t\t_word=SUBSTR(_word,1,STRLEN(_word)-1)\n\t\t\t\t_onHit=0\n\t\t\t}\n\t\t\tif _word _in_ _argv[0] {\n\t\t\t\t_isHit=_isHit || _onHit\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_isHit=_isHit || (1-_onHit)\n\t\t\t}\n\t\t}\n\t\tif ! _isHit {\n\t\t\t0\n\t\t\treturn\n\t\t}\n\t}\n\t1\n}\n\n使用例\n\nOnCommunicate\n{\n if InStrCheck(reference[1], \"好き|大好き\", \"!嫌い\") {\n \"\\0\\s[1]ありがとう!\\e\"\n }\n}\n\n関連項目\n\n- 演算(in 演算子)\n- SPLIT\n- SUBSTR",
|
|
16155
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/complex-in-check/"
|
|
16390
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/complex-in-check/",
|
|
16391
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/complex-in-check.md"
|
|
16156
16392
|
},
|
|
16157
16393
|
{
|
|
16158
16394
|
"id": "yaya:tips/create-array-from-text",
|
|
@@ -16160,7 +16396,8 @@
|
|
|
16160
16396
|
"source": "yaya_docs",
|
|
16161
16397
|
"category": "yaya_tips",
|
|
16162
16398
|
"content": "テキストファイルから汎用配列を作成\n\n概要\n\n改行で区切られたテキストファイルの内容を読み込んで、汎用配列として変数に格納する方法を説明しています。\n\n例として words\\food.txt に以下の内容が記載されている場合を想定:\n\nだいふく\nおさしみ\nとうふ\nラーメン\n\nコード例\n\nFCHARSET(\"Shift-JIS\")\n_flag = FOPEN(\"words\\food.txt\", \"r\")\nfood = IARRAY\nwhile 1 {\n _word = FREAD(\"words\\food.txt\")\n if (_word == -1) {\n break\n }\n food = (food, _word)\n}\nFCLOSE(\"words\\food.txt\")\n\n説明\n\n処理の流れ:\n\n1. FCHARSET でファイルの文字コードを指定(UTF-8 の場合は \"UTF-8\" に変更)\n2. FOPEN でファイルを読み込みモード \"r\" で開く\n3. IARRAY で空の汎用配列を初期化\n4. FREAD でファイルから1行ずつ読み込む\n5. FREAD の戻り値が -1(ファイル終端)になったら break で終了\n6. 配列に要素を (food, _word) の形で追加\n7. FCLOSE でファイルを閉じる\n\n実行結果:\n\n| インデックス | 値 |\n|-------------|-----|\n| food[0] | だいふく |\n| food[1] | おさしみ |\n| food[2] | とうふ |\n| food[3] | ラーメン |\n\n関連項目\n\n- FOPEN\n- FREAD\n- FCLOSE\n- FCHARSET\n- IARRAY",
|
|
16163
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/create-array-from-text/"
|
|
16399
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/create-array-from-text/",
|
|
16400
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/create-array-from-text.md"
|
|
16164
16401
|
},
|
|
16165
16402
|
{
|
|
16166
16403
|
"id": "yaya:tips/date-event",
|
|
@@ -16168,7 +16405,8 @@
|
|
|
16168
16405
|
"source": "yaya_docs",
|
|
16169
16406
|
"category": "yaya_tips",
|
|
16170
16407
|
"content": "日付イベント\n\n概要\n\n特定の日付にのみ発動するイベント(クリスマス、誕生日など)を実装する方法です。テンプレートゴースト「紺野あやめ」に含まれる aya_bootend.dic の GetTimeSlot 関数を活用します。\n\nコード例\n\nステップ 1: GetTimeSlot 関数に月日の判定を追加\n\naya_bootend.dic 内の GetTimeSlot 関数に条件を追記します。\n\nelseif month == 12 && day == 25\n{\n\t\"クリスマス\"\n}\n\nステップ 2: OnBoot 内でイベント発動条件を設定\n\nOnBoot\n{\n\t_timeslot = GetTimeSlot\n\n\telseif _timeslot == \"クリスマス\"\n\t{\n\t\t\"\\1\\s[10]\\0\\s[0]今日はクリスマスです。\\e\"\n\t}\n}\n\n説明\n\n動作の仕組み\n\n1. GetTimeSlot 関数が現在の月日を判定して時間帯・日付の名前を返す\n2. OnBoot イベントで GetTimeSlot の戻り値を確認する\n3. 戻り値が \"クリスマス\" であれば対応するセリフを実行する\n\n他の日付イベントへの応用\n\n同じ方法で様々な日付イベントを追加できます。\n\n// バレンタイン\nelseif month == 2 && day == 14\n{\n\t\"バレンタイン\"\n}\n\n// お正月\nelseif month == 1 && day == 1\n{\n\t\"元旦\"\n}\n\n注意\n\naya_bootend.dic は「紺野あやめ」テンプレートに付属のファイルです。別のテンプレートを使用している場合は、GetTimeSlot の実装を自分で追加するか、直接 month と day 変数で判定してください。\n\n関連項目\n\n- GETTIME\n- month(システム変数)\n- day(システム変数)",
|
|
16171
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/date-event/"
|
|
16408
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/date-event/",
|
|
16409
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/date-event.md"
|
|
16172
16410
|
},
|
|
16173
16411
|
{
|
|
16174
16412
|
"id": "yaya:tips/day-count-calculation",
|
|
@@ -16176,7 +16414,8 @@
|
|
|
16176
16414
|
"source": "yaya_docs",
|
|
16177
16415
|
"category": "yaya_tips",
|
|
16178
16416
|
"content": "日数計算\n\n概要\n\nYAYA で 2 つの日付の間の日数差・時間差を計算する方法を解説します。通日(ユリウス通日)を利用した J_DATE 関数と、日数・時間差を返す DateTimeCalc 関数が紹介されています。\n\n作成者: せきやひろし\n\nコード例\n\nJ_DATE 関数(通日を取得)\n\n年・月・日を指定してその日付の通日を取得します。\n\nJ_DATE\n{\n\t_y = TOINT(_argv[0])\n\t_m = TOINT(_argv[1])\n\t_d = TOINT(_argv[2])\n\n\tif _m <= 2 {\n\t\t_y--\n\t\t_m += 12\n\t}\n\n\t_jd = TOINT(365.25 * (_y + 4716)) + TOINT(30.6001 * (_m + 1)) + _d - 1524\n\n\t_jd\n}\n\nDateTimeCalc 関数(日数と時間差を計算)\n\n比較元と比較先の日付・時間を入力し、日数差と時間差を返します。\n\nDateTimeCalc\n{\n\t// 比較元日付(配列で受け取る)\n\t_from_date = _argv[0]\n\t_from_year = _from_date[0]\n\t_from_month = _from_date[1]\n\t_from_day = _from_date[2]\n\t_from_hour = _from_date[3]\n\t_from_min = _from_date[4]\n\t_from_sec = _from_date[5]\n\n\t// 比較先日付(配列で受け取る)\n\t_to_date = _argv[1]\n\t_to_year = _to_date[0]\n\t_to_month = _to_date[1]\n\t_to_day = _to_date[2]\n\t_to_hour = _to_date[3]\n\t_to_min = _to_date[4]\n\t_to_sec = _to_date[5]\n\n\t// 通日の差\n\t_day_diff = J_DATE(_to_year, _to_month, _to_day) - J_DATE(_from_year, _from_month, _from_day)\n\n\t// 秒単位に変換して差を計算\n\t_from_seconds = _from_hour * 3600 + _from_min * 60 + _from_sec\n\t_to_seconds = _to_hour * 3600 + _to_min * 60 + _to_sec\n\t_time_diff = _to_seconds - _from_seconds\n\n\t_result = IARRAY\n\t_result ,= _day_diff\n\t_result ,= _time_diff\n\t_result\n}\n\n説明\n\nJ_DATE 関数の仕組み\n\n通日(Julian Day Number)を計算することで、異なる日付同士の差を単純な引き算で求められます。グレゴリオ暦に対応しており、月が 1 月・2 月の場合は年と月を補正してから計算します。\n\nDateTimeCalc 関数の使い方\n\n引数は日付情報を格納した配列を 2 つ渡します。戻り値は日数差と秒数差の配列です。\n\n// 使用例\n_from = IARRAY\n_from ,= 2024 // 年\n_from ,= 1 // 月\n_from ,= 1 // 日\n_from ,= 0 // 時\n_from ,= 0 // 分\n_from ,= 0 // 秒\n\n_to = GETTIME // 現在時刻\n\n_result = DateTimeCalc(_from, _to)\n_days = _result[0] // 日数差\n_secs = _result[1] // 時間差(秒)\n\nYAYA 標準関数による代替\n\nより簡単な方法として、以下の関数でも日数計算が可能です。\n\n- GETTIME — 現在の日時を取得する\n- GETSECCOUNT — UNIX タイムスタンプ(エポック秒)を取得して差を計算する\n\n関連項目\n\n- GETTIME\n- GETSECCOUNT\n- TOINT",
|
|
16179
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/day-count-calculation/"
|
|
16417
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/day-count-calculation/",
|
|
16418
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/day-count-calculation.md"
|
|
16180
16419
|
},
|
|
16181
16420
|
{
|
|
16182
16421
|
"id": "yaya:tips/delete-nonempty-directory",
|
|
@@ -16184,7 +16423,8 @@
|
|
|
16184
16423
|
"source": "yaya_docs",
|
|
16185
16424
|
"category": "yaya_tips",
|
|
16186
16425
|
"content": "中身の残っているディレクトリを削除する\n\n概要\n\n標準の RMDIR 関数は空のディレクトリしか削除できません。このページで提供される DELTREE 関数を使うと、ファイルが含まれているディレクトリも再帰的に削除できます。\n\n注意事項:\n- 読み取り専用ファイルも強制削除される\n- ファイルはゴミ箱に入らず完全削除される\n- ディレクトリ指定を間違えると取り返しが付かない事態になることがある\n\n作成者: せきやひろし\n\nコード例\n\n//ディレクトリ削除関数(再帰あり)\nDELTREE\n{\n\t_dirname = _argv[0]\n\n\t_attr_array = FATTRIB(_dirname)\n\n\tif (_attr_array == -1) {\n\t\t-1\n\t\treturn\n\t} elseif (_attr_array[2] == 1) {\n\t\twhile 1 {\n\t\t\t_files = FENUM(_dirname, '|')\n\t\t\t_files = REPLACE(_files, '\\', '/')\n\t\t\t_file_array = SPLIT(_files, '|')\n\n\t\t\tif (ARRAYSIZE(_file_array) == 0) {\n\t\t\t\tRMDIR(_dirname)\n\t\t\t\treturn\n\t\t\t} else {\n\t\t\t\tforeach _file_array; _filename {\n\t\t\t\t\t_targetfilename = \"%(_dirname)/%(_filename)\"\n\t\t\t\t\tvoid DELTREE(_targetfilename)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} elseif (_attr_array[2] == 0) {\n\t\tFDEL(_dirname)\n\t\treturn\n\t} else {\n\t\t0\n\t\treturn\n\t}\n}\n\n説明\n\n使用方法\n\nDELTREE(削除したいディレクトリ・ファイル名)\n\n動作の流れ\n\n1. FATTRIB 関数でファイル属性を取得する\n2. ディレクトリの場合、FENUM 関数で内容を列挙する\n3. 再帰呼び出しで全ファイル・サブディレクトリを削除する\n4. 最後に RMDIR 関数でディレクトリ本体を削除する\n5. ファイルの場合は FDEL 関数で直接削除する\n\n関連項目\n\n- RMDIR\n- FDEL\n- FATTRIB\n- FENUM",
|
|
16187
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/delete-nonempty-directory/"
|
|
16426
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/delete-nonempty-directory/",
|
|
16427
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/delete-nonempty-directory.md"
|
|
16188
16428
|
},
|
|
16189
16429
|
{
|
|
16190
16430
|
"id": "yaya:tips/detect-software",
|
|
@@ -16192,7 +16432,8 @@
|
|
|
16192
16432
|
"source": "yaya_docs",
|
|
16193
16433
|
"category": "yaya_tips",
|
|
16194
16434
|
"content": "使用しているソフトを判別\n\n概要\n\nYAYA でゴーストが動作しているベースウェア(実行環境)を判別する方法を説明します。basewarename 変数または basewarenameex 変数を利用します。\n\nコード例\n\nBwName\n{\n\tif basewarename == \"embryo\"\n\t{\n\t\t//---- 伺か専用\n\t\t\"MATERIA\"\n\t}\n\telseif basewarename == \"SSP\"\n\t{\n\t\t//---- SSP専用\n\t\t\"SSP\"\n\t}\n\telseif basewarename == \"crow\"\n\t{\n\t\t//---- CROW専用\n\t\t\"CROW\"\n\t}\n\telse\n\t{\n\t\t//---- その他の場合\n\t\t\"etc\"\n\t}\n}\n\n説明\n\nbasewarename と basewarenameex\n\nbasewarename は必ずしもベースウェアの正確な名前を返すとは限りません。そのため basewarenameex に置き換えることが推奨されています。\n\nbasewarenameex は「はろーYAYAわーるど」や「SimpleYAYAテンプレート」などに含まれていますが、全てのテンプレートに存在するわけではありません。\n\n活用方法\n\n- トークネタ(会話内容)をベースウェアごとに変更する\n- ベースウェアごとに機能を制限する\n- ベースウェア固有の機能を条件付きで使用する\n\n主なベースウェア名\n\n| 変数値 | ベースウェア |\n|--------|------------|\n| \"embryo\" | 伺か (MATERIA) |\n| \"SSP\" | SSP |\n| \"crow\" | CROW |\n\n関連項目\n\n- basewarename\n- basewarenameex",
|
|
16195
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/detect-software/"
|
|
16435
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/detect-software/",
|
|
16436
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/detect-software.md"
|
|
16196
16437
|
},
|
|
16197
16438
|
{
|
|
16198
16439
|
"id": "yaya:tips/detect-weekday",
|
|
@@ -16200,7 +16441,8 @@
|
|
|
16200
16441
|
"source": "yaya_docs",
|
|
16201
16442
|
"category": "yaya_tips",
|
|
16202
16443
|
"content": "曜日を判別\n\n概要\n\nYAYA で現在の曜日を判別し、トークネタの変更や機能制限など様々な用途に応用する 3 つの実装パターンを紹介します。weekday 変数(0 = 日曜日、6 = 土曜日)を使用します。\n\nコード例\n\n方法 1: 条件分岐による基本実装\n\nGetWeekdayName\n{\n\tif weekday == 0 {\n\t\t\"日\"\n\t}\n\telseif weekday == 1 {\n\t\t\"月\"\n\t}\n\telseif weekday == 2 {\n\t\t\"火\"\n\t}\n\telseif weekday == 3 {\n\t\t\"水\"\n\t}\n\telseif weekday == 4 {\n\t\t\"木\"\n\t}\n\telseif weekday == 5 {\n\t\t\"金\"\n\t}\n\telseif weekday == 6 {\n\t\t\"土\"\n\t}\n}\n\n方法 2: 汎用配列による実装\n\nGetWeekdayName\n{\n\t_days = IARRAY\n\t_days ,= \"日\"\n\t_days ,= \"月\"\n\t_days ,= \"火\"\n\t_days ,= \"水\"\n\t_days ,= \"木\"\n\t_days ,= \"金\"\n\t_days ,= \"土\"\n\n\t_days[weekday]\n}\n\n方法 3: 簡易配列による実装\n\nGetWeekdayName\n{\n\t_days = \"日,月,火,水,木,金,土\"\n\tSPLIT(_days, \",\")[weekday]\n}\n\n説明\n\nweekday 変数\n\nYAYA のシステム変数 weekday は現在の曜日を 0〜6 の整数で返します。\n\n| 値 | 曜日 |\n|----|------|\n| 0 | 日曜日 |\n| 1 | 月曜日 |\n| 2 | 火曜日 |\n| 3 | 水曜日 |\n| 4 | 木曜日 |\n| 5 | 金曜日 |\n| 6 | 土曜日 |\n\n各方法の比較\n\n| 方法 | 特徴 |\n|------|------|\n| 条件分岐 | わかりやすく、各曜日で異なる処理を書きやすい |\n| 汎用配列 | 簡潔。月の異名など他の用途にも応用しやすい |\n| 簡易配列 | 最も短く書けるが、汎用配列より低速 |\n\n活用例\n\n- 曜日によってトークネタを変える\n- 平日・休日で機能を制限する\n- 特定曜日にのみイベントを発動させる\n\n// 活用例: 曜日に応じた挨拶\nOnBoot\n{\n\tif weekday == 0 || weekday == 6 {\n\t\t\"\\0今日はお休みですね。\\e\"\n\t}\n\telse {\n\t\t\"\\0今日もお仕事ですか?\\e\"\n\t}\n}\n\n関連項目\n\n- GETTIME\n- weekday(システム変数)\n- SPLIT\n- IARRAY",
|
|
16203
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/detect-weekday/"
|
|
16444
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/detect-weekday/",
|
|
16445
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/detect-weekday.md"
|
|
16204
16446
|
},
|
|
16205
16447
|
{
|
|
16206
16448
|
"id": "yaya:tips/dictionary-encryption",
|
|
@@ -16208,7 +16450,8 @@
|
|
|
16208
16450
|
"source": "yaya_docs",
|
|
16209
16451
|
"category": "yaya_tips",
|
|
16210
16452
|
"content": "辞書の暗号化\n\n概要\n\nAYA/YAYAの辞書ファイルを暗号化してゴーストを配布する方法を説明します。aycencodeというツールを使って、通常の辞書ファイル(.dic等)を暗号化された.ayc形式に変換します。\n\n手順\n\nステップ1: aycencodeのダウンロード\n\n- 配布元: http://umeici.onjn.jp/\n- 再配布および独自ソフトウェアへの同梱が可能\n\nステップ2: ツールの起動\n\nダウンロードしたファイルを展開し、aycencode.exeを実行します。\n\nステップ3: 辞書を暗号化\n\n暗号化したいAYA/YAYA辞書ファイルをaycencodeのウィンドウにドラッグ&ドロップします。成功すると、同じフォルダに.aycファイルが生成されます。\n\nステップ4: 辞書の読み込み設定\n\naya.txtまたはyaya.txtで暗号化された辞書を参照します。\n\ndic, xxxxx.ayc\n\n拡張子は必要に応じて変更可能です。また、すべての辞書を暗号化する必要はなく、一部のみ暗号化することもできます。\n\n注意事項\n\n- 限定的なセキュリティ: 一般ユーザーによる閲覧は防げますが、解析者に対する完全な保護ではありません\n- 配布時: 暗号化前の元辞書ファイルはゴーストパッケージに含めないこと。ネットワーク更新ツールの対象からも除外すること\n- バックアップ: 将来の編集のために、元の暗号化前辞書ファイルは必ず手元に残しておくこと\n\n関連項目\n\n- yaya_shiori3.dic",
|
|
16211
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/dictionary-encryption/"
|
|
16453
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/dictionary-encryption/",
|
|
16454
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/dictionary-encryption.md"
|
|
16212
16455
|
},
|
|
16213
16456
|
{
|
|
16214
16457
|
"id": "yaya:tips/discard-return-value",
|
|
@@ -16216,7 +16459,8 @@
|
|
|
16216
16459
|
"source": "yaya_docs",
|
|
16217
16460
|
"category": "yaya_tips",
|
|
16218
16461
|
"content": "関数の返り値を捨てる\n\n概要\n\nYAYAでは、関数を呼び出した際の返り値が変数に代入されない場合、その値が出力候補となります。これにより、意図せず「0」や「1」などがバルーンに表示されてしまうことがあります。このページでは返り値を捨てる方法を説明します。\n\n問題の例\n\n// SRAND関数は返り値を返すので出力候補になる\n// 50%の確率で「0」か「1」が表示されてしまう\nOnBoot {\n 乱数のシードを設定\n SRAND(\"ほげほげ\")\n \"\\0\\s[0]おはよう。\\e\"\n}\n\n解決方法1: 変数への代入\n\n返り値を一時変数に代入することで、出力候補から除外できます。\n\n_hoge = SRAND(\"ほげほげ\")\n\n解決方法2: void キーワード\n\nvoidを使って返り値を明示的に破棄します。\n\nvoid SRAND(\"ほげほげ\")\n\n説明\n\nvoidは代入演算子(=)を使わずに返り値を直接破棄します。_hoge = SRAND(...) との違いは、変数への代入が行われない点です。\n\nどちらの方法でも問題を解決できますが、返り値が不要であることを明示したい場合はvoidの使用が意図をより明確に表現できます。\n\n関連項目\n\n- SRAND\n- 関数",
|
|
16219
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/discard-return-value/"
|
|
16462
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/discard-return-value/",
|
|
16463
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/discard-return-value.md"
|
|
16220
16464
|
},
|
|
16221
16465
|
{
|
|
16222
16466
|
"id": "yaya:tips/easy-case-branching",
|
|
@@ -16224,7 +16468,8 @@
|
|
|
16224
16468
|
"source": "yaya_docs",
|
|
16225
16469
|
"category": "yaya_tips",
|
|
16226
16470
|
"content": "caseを使って条件分岐で手抜きをする\n\n概要\n\n条件分岐を書くとき、if〜elseif〜else では同じ変数への比較を何度も書く必要があって冗長になる。case〜when〜others を使うとすっきり書ける。\n\n基本的な使い方\n\nゴースト切り替えイベントへの適用\n\nOnGhostChanging_normal\n{\n case reference0\n when \"タケシ\" { \"タケシのところに行くのね。\" }\n when \"所長たん\" { \"所長たんに呼ばれたの?\" }\n others { reference0 + \"のところね。\" }\n}\n\nOnGhostChanged_normal\n{\n case reference0\n when \"タケシ\" { \"タケシから戻ってきたよ。\" }\n when \"所長たん\" { \"所長たんから戻ってきたよ。\" }\n others { reference0 + \"から戻ってきたよ。\" }\n}\n\n応用テクニック\n\n複数条件の同時指定\n\nwhen はカンマ区切りで複数の値を同時にマッチさせられる:\n\n// 春(3〜5月)の処理\nwhen 3,4,5 { \"春だよ。\" }\n\n範囲指定\n\n連続した数値はハイフンで範囲指定できる:\n\nGetSeasonSlot\n{\n case GETTIME[1]\n when 3-5 { \"春\" }\n when 6-8 { \"夏\" }\n when 9-11 { \"秋\" }\n others { \"冬\" }\n}\n\nwhen 3-5 は when 3,4,5 と等価。\n\n関連項目\n\n- フロー制御\n- GETTIME",
|
|
16227
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/easy-case-branching/"
|
|
16471
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/easy-case-branching/",
|
|
16472
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/easy-case-branching.md"
|
|
16228
16473
|
},
|
|
16229
16474
|
{
|
|
16230
16475
|
"id": "yaya:tips/easy-favorites",
|
|
@@ -16232,7 +16477,8 @@
|
|
|
16232
16477
|
"source": "yaya_docs",
|
|
16233
16478
|
"category": "yaya_tips",
|
|
16234
16479
|
"content": "お気に入りを書きやすくする\n\n概要\n\nお気に入りメニューのエントリを記述する際、CHR(1) や CHR(2) などの制御文字を直接書く必要があり冗長になる。ヘルパー関数を使ってより読みやすい記法で書けるようにするTips。\n\nコア関数\n\nLinkMenuConvert\n{\n _text = ''\n _data = IARRAY\n for _i = 0 ; _i < _argc ; _i++ {\n _data = (RE_SPLIT(_argv[_i],'\\[ \\t\\]*\\|\\[ \\t\\]*'),'','')\n _text += \"%(_data[0])%(CHR(1))%(_data[1])%(CHR(1))%(_data[2])%(CHR(1))%(CHR(2))\"\n }\n _text;\n}\n\n使い方\n\n制御文字を直接書く代わりに、パイプ文字 | で区切った読みやすい形式で定義する:\n\nOn_sakura.recommendsites_EX : array\n{\n 'Site Name | http://url.com/ | '\n 'Another | http://other/ | '\n}\n\nその後、LinkMenuConvert(On_sakura.recommendsites_EX) として呼び出す。\n\nパイプ文字(|)がフィールドの区切りとなり、前後の空白は無視される。\n\n注意\n\nこのソリューションを実装するには ???_string.dic ファイルへの修正が必要。\n\n関連項目\n\n- IARRAY\n- RE_SPLIT\n- CHR",
|
|
16235
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/easy-favorites/"
|
|
16480
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/easy-favorites/",
|
|
16481
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/easy-favorites.md"
|
|
16236
16482
|
},
|
|
16237
16483
|
{
|
|
16238
16484
|
"id": "yaya:tips/editor-color-files",
|
|
@@ -16240,7 +16486,8 @@
|
|
|
16240
16486
|
"source": "yaya_docs",
|
|
16241
16487
|
"category": "yaya_tips",
|
|
16242
16488
|
"content": "エディタ色分けファイル\n\n概要\n\nYAYAスクリプト開発向けのエディタシンタックスハイライト設定ファイルを提供するページ。\n\n対応エディタ\n\n桜エディタ(Sakura Editor)\n\n- 提供者: AI9200\n- ファイル: mn2728_0.zip(1.6KB、2009/03/28アップロード)\n- インストール方法:\n 1. 設定 → 共通設定 → 強調キーワードタブ から .kwd ファイルをインポート\n 2. 設定 → タイプ別設定 → カラー から .col ファイルをインポート\n\nEmEditor\n\n- 外部サイト(ukiya.sakura.ne.jp)のドキュメントを参照\n\nJmEditor\n\n- ファイル: jme_yaya.lzh(2.0KB、2009/03/28アップロード)\n- インストール方法: 同梱の readme.txt を参照\n\n関連項目\n\n- C言語利用者のためのヒント",
|
|
16243
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/editor-color-files/"
|
|
16489
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/editor-color-files/",
|
|
16490
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/editor-color-files.md"
|
|
16244
16491
|
},
|
|
16245
16492
|
{
|
|
16246
16493
|
"id": "yaya:tips/escape-sakura-tags",
|
|
@@ -16248,7 +16495,8 @@
|
|
|
16248
16495
|
"source": "yaya_docs",
|
|
16249
16496
|
"category": "yaya_tips",
|
|
16250
16497
|
"content": "SAKURAスクリプトタグをエスケープする\n\n概要\n\n中身に何が入っているかわからない変数をバルーンに表示するとき、SAKURAスクリプトタグをそのまま表示させる(無効化する)方法。「中身に何が入ってるかわからない変数をバルーンに表示するときはこの関数を使っておいた方が安心」とされている。\n\n関数\n\nエスケープ関数は yaya_optional.dic(はろーYAYAわーるど / SimpleYAYAテンプレート)に収録されている。\n\nEscapeAllTags\n\nEscapeAllTags(エスケープしたい文字列)\n\nすべてのSAKURAスクリプトタグを無効化する。\n\nEscapeDangerousTags\n\nEscapeDangerousTags(エスケープしたい文字列)\n\n「実行されたら困る」タグ(vanishbymyself など)のみを処理する。外部トークンの実行時に推奨。\n\nコード例\n\nOnGhostChanged\n{\n _name = EscapeAllTags(reference[0])\n \"%(\\_name)さんから交代したよ~。\\e\"\n}\n\nreference[0] には交代前ゴーストの名前が入るが、その名前にSAKURAスクリプトタグが含まれていても安全に表示できる。\n\n方針の選択\n\n| 状況 | 推奨関数 |\n|------|---------|\n| 内容が完全に不明な変数を表示する | EscapeAllTags |\n| 外部ゴーストや外部トークンのテキストを処理する | EscapeDangerousTags |\n\n関連項目\n\n- SAKURAスクリプトタグを取り除く\n- システム辞書/yaya_optional.dic",
|
|
16251
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/escape-sakura-tags/"
|
|
16498
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/escape-sakura-tags/",
|
|
16499
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/escape-sakura-tags.md"
|
|
16252
16500
|
},
|
|
16253
16501
|
{
|
|
16254
16502
|
"id": "yaya:tips/execute-after-seconds",
|
|
@@ -16256,7 +16504,8 @@
|
|
|
16256
16504
|
"source": "yaya_docs",
|
|
16257
16505
|
"category": "yaya_tips",
|
|
16258
16506
|
"content": "指定秒数経過後にイベントを実行\n\n概要\n\nYAYA で一定時間経過後にイベントを実行する方法を 2 通り解説します。システム辞書の SetDelayEvent 関数を使う方法と、OnSecondChange イベントを使って自作する方法があります。\n\nコード例\n\n方法 1: SetDelayEvent 関数を使用\n\n30秒待たせるイベント\n{\n\t\"\\0\\s[0]それでは30秒お待ち下さい。\\e\"\n\tSHIORI3FW.SetDelayEvent('30秒待った', 30)\n}\n\nSetDelayEvent で指定秒数後に実行するイベント名を登録します。経過時間は DelayEventTime で確認できます。\n\n方法 2: OnSecondChange を使った自作実装\n\n// タイマー開始\nOnTimerStart\n{\n\t_sec = _argv[0]\n\ttimer_count = _sec\n}\n\n// 毎秒実行(OnSecondChange から呼び出す)\nOnTimerCounter\n{\n\ttimer_count--\n\tif timer_count <= 0 {\n\t\tOnTimerEnd\n\t}\n}\n\n// タイマー終了時の処理\nOnTimerEnd\n{\n\t\"\\0\\s[0]時間になりました。\\e\"\n}\n\n説明\n\n方法 1 の特徴\n\nシステム辞書(SHIORI3FW)に組み込まれた SetDelayEvent を使うシンプルな方法です。指定したイベント名が、指定秒数後に自動的に呼び出されます。\n\n方法 2 の特徴\n\nOnSecondChange イベント(毎秒発生)を利用してカウンターを実装します。より柔軟なカスタマイズが可能ですが、複数タイマーを同時計測する場合は追加の工夫が必要です。\n\n関連項目\n\n- OnSecondChange\n- SHIORI3FW.SetDelayEvent\n- GETSECCOUNT",
|
|
16259
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/execute-after-seconds/"
|
|
16507
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/execute-after-seconds/",
|
|
16508
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/execute-after-seconds.md"
|
|
16260
16509
|
},
|
|
16261
16510
|
{
|
|
16262
16511
|
"id": "yaya:tips/format-time-hms",
|
|
@@ -16264,7 +16513,8 @@
|
|
|
16264
16513
|
"source": "yaya_docs",
|
|
16265
16514
|
"category": "yaya_tips",
|
|
16266
16515
|
"content": "秒数を○時間○分○秒形式にする\n\n概要\n\n秒数の整数値を「○時間○分○秒」形式に変換するYAYA関数の実装例です。\n\nコード例\n\nsec_hms {\n _v=TOINT(_argv[0])\n _a1=_v/3600\n _a2=(_v-(_a1*3600))/60\n _a3=(_v-(_a1*3600))-(_a2*60)\n _v=(_a1,_a2,_a3)\n _v\n}\n\n説明\n\nシグネチャ: sec_hms( 秒数 )\n\n返り値は配列で、以下の要素を持ちます。\n\n| インデックス | 内容 |\n|------------|------|\n| [0] | 時間 |\n| [1] | 分 |\n| [2] | 秒 |\n\n注意: 時間が24を超えた場合でも日数には変換せず、そのまま時間として返します。必要に応じて追加の処理を実装してください。\n\n使用例\n\nゴーストの起動時間(ghostuptime)と組み合わせた使用例:\n\nゴースト起動時間 {\n _h = sec_hms(ghostuptime)[0]\n _m = sec_hms(ghostuptime)[1]\n _s = sec_hms(ghostuptime)[2]\n \"\\0\\s[0]起動してから%(_h)時間%(_m)分%(_s)秒経ちました。\\e\"\n}\n\n関連項目\n\n- TOINT\n- GETSECCOUNT",
|
|
16267
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/format-time-hms/"
|
|
16516
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/format-time-hms/",
|
|
16517
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/format-time-hms.md"
|
|
16268
16518
|
},
|
|
16269
16519
|
{
|
|
16270
16520
|
"id": "yaya:tips/get-array-size",
|
|
@@ -16272,7 +16522,8 @@
|
|
|
16272
16522
|
"source": "yaya_docs",
|
|
16273
16523
|
"category": "yaya_tips",
|
|
16274
16524
|
"content": "配列の要素数を取得\n\n概要\n\nYAYAで配列の要素数(サイズ)を取得する方法を説明します。\n\n方法1: ARRAYSIZE関数(推奨)\n\n最もシンプルな方法は組み込みのARRAYSIZE関数を使用することです。\n\ni = (\"A\",\"B\",\"C\")\nj = ARRAYSIZE(i)\n// j == 3\n\n方法2: ANY関数\n\n文5にはANY関数があり、配列からランダムに1要素を取り出せます(要素数取得とは用途が異なりますが、配列操作の一種です)。\n\n方法3: カスタム関数(dim_enum)\n\nユーザー投稿のカスタム関数で、文字列内のカンマ数をカウントすることで要素数を返します。\n\ndim_enum {\n _s = _argv[0]\n _count = 1\n _i = 0\n for _i < STRLEN(_s) {\n if SUBSTR(_s, _i, 1) == \",\" {\n _count++\n }\n _i++\n }\n _count\n}\n\nユーザーに覚えてもらった言葉をランダムに取り出す際の乱数範囲指定など、動的なサイズを扱う場面で役立ちます。\n\n説明\n\n通常はARRAYSIZE関数を使えば十分です。カスタム関数(dim_enum)は、カンマ区切り文字列を汎用配列に変換せずに要素数だけを知りたい場合に使えますが、SPLITで変換してからARRAYSIZEを使う方がシンプルです。\n\n協力者: 沢渡みかげ、silky\n\n関連項目\n\n- ARRAYSIZE\n- 簡易配列→汎用配列の変換\n- 簡易配列からメニューを構築する",
|
|
16275
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/get-array-size/"
|
|
16525
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/get-array-size/",
|
|
16526
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/get-array-size.md"
|
|
16276
16527
|
},
|
|
16277
16528
|
{
|
|
16278
16529
|
"id": "yaya:tips/ghost-install-datetime",
|
|
@@ -16280,7 +16531,8 @@
|
|
|
16280
16531
|
"source": "yaya_docs",
|
|
16281
16532
|
"category": "yaya_tips",
|
|
16282
16533
|
"content": "ゴーストのインストール日時を取得する\n\n概要\n\nゴーストがインストールされた日時を取得する方法。最新バージョンのYAYAのみ対応。\n\nコード例\n\nインストール日時の取得\n\nGETTIME(FATTRIB('../../')[9])\n\nFATTRIB('../../')[9] はゴーストのルートディレクトリの属性情報の9番目(インストール日時のタイムスタンプ)を返す。\n\nGETTIME() に渡すことで、以下の要素を含む汎用配列として取得できる:\n\n| インデックス | 内容 |\n|-------------|------|\n| 0 | 年 |\n| 1 | 月 |\n| 2 | 日 |\n| 3 | 曜日 |\n| 4 | 時 |\n| 5 | 分 |\n| 6 | 秒 |\n\nインストールからの経過時間\n\nGETSECCOUNT() - FATTRIB('../../')[9]\n\nGETSECCOUNT() から FATTRIB('../../')[9] を引くことで、インストールからの経過秒数を算出できる。\n\n関連項目\n\n- GETTIME\n- FATTRIB\n- GETSECCOUNT",
|
|
16283
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/ghost-install-datetime/"
|
|
16534
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/ghost-install-datetime/",
|
|
16535
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/ghost-install-datetime.md"
|
|
16284
16536
|
},
|
|
16285
16537
|
{
|
|
16286
16538
|
"id": "yaya:tips/ghost-switch-message-new",
|
|
@@ -16288,7 +16540,8 @@
|
|
|
16288
16540
|
"source": "yaya_docs",
|
|
16289
16541
|
"category": "yaya_tips",
|
|
16290
16542
|
"content": "ゴースト切替えメッセージを変化させる(新)\n\n概要\n\n複数ゴーストへの切り換え反応を管理する際の可読性を向上させた実装方法。従来の OnGhostChanging と OnGhostChanged を専用ヘルパー関数に置き換え、ゴーストごとに個別の関数を定義できるようにします。\n\nゴースト名に含まれる特殊文字(!, %, \", #, $, &, (, ), *, +, ,, -, /, :, ;, <, =, >, ?, @, [, ], `, {, |, }, ~ など)はすべてアンダースコア _ に置換されます。\n\n例: +Emily+ → 関数名 OnGhostChanged__Emily_\n\nコード例\n\nヘルパー関数(辞書の末尾に追加)\n\nTranslateSystemChar\n{\n _text = TOSTR(_argv[0])\n _text = RE_REPLACE(_text,\"[ !%(CHR(0x22))%(CHR(0x25))#$&()*+,\\-/:;<=>?@\\[\\]`{|}~]\",\"_\")\n _text\n}\n\nExecuteChangeCallTalk\n{\n _ghostname = TranslateSystemChar(reference0)\n _funcname = \"%(_argv[0])_%(_ghostname)\"\n if ISFUNC(_funcname) {\n _script = EVAL(_funcname)\n if STRLEN(_script) != 0 {\n _script\n return\n }\n }\n _funcname = \"%(_argv[0])Other\"\n if ISFUNC(_funcname) {\n _script = EVAL(_funcname)\n if STRLEN(_script) != 0 {\n _script\n return\n }\n }\n if _argc >= 2 {\n _script = EVAL(_argv[1])\n if STRLEN(_script) != 0 {\n REPLACE(_script,\"\\\\-\",\"\")\n return\n }\n }\n}\n\nOnGhostChanging { ExecuteChangeCallTalk(\"OnGhostChanging\",\"OnClose\") }\nOnGhostChanged { ExecuteChangeCallTalk(\"OnGhostChanged\",\"OnBoot\") }\nOnGhostCalling { ExecuteChangeCallTalk(\"OnGhostCalling\") }\nOnGhostCalled { ExecuteChangeCallTalk(\"OnGhostCalled\",\"OnBoot\") }\nOnGhostCallComplete { ExecuteChangeCallTalk(\"OnGhostCallComplete\") }\nOnOtherGhostClosed { ExecuteChangeCallTalk(\"OnOtherGhostClosed\") }\n\nゴースト専用関数の定義(命名規則: [イベント名]_[Sakura名])\n\nOnGhostChanged_ゴーストA\n{\n if \"お料理\" _in_ reference1 {\n \"(文章1)\"\n }\n elseif \"薬\" _in_ reference1 {\n \"(文章2)\"\n }\n else {\n \"(文章3)\"\n }\n}\n\n説明\n\n対応イベント一覧\n\n| 関数名 | 機能 |\n|--------|------|\n| OnGhostChanging | 他ゴーストへ切り替え時 |\n| OnGhostChanged | 他ゴーストから切り替えられた時 |\n| OnGhostCalling | ゴースト呼び出し開始時 |\n| OnGhostCallComplete | ゴースト呼び出し完了時 |\n| OnGhostCalled | 他ゴーストから呼び出された時 |\n| OnOtherGhostClosed | 他ゴースト終了時 |\n\nExecuteChangeCallTalk の動作\n\n1. reference0(ゴースト名)の特殊文字をアンダースコアに変換\n2. [イベント名]_[ゴースト名] の関数があれば実行\n3. なければ [イベント名]Other の関数があれば実行\n4. それもなければフォールバック(OnClose / OnBoot 等)を実行\n\n関連項目\n\n- ゴースト切替えメッセージを変化させる\n- ISFUNC\n- EVAL",
|
|
16291
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/ghost-switch-message-new/"
|
|
16543
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/ghost-switch-message-new/",
|
|
16544
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/ghost-switch-message-new.md"
|
|
16292
16545
|
},
|
|
16293
16546
|
{
|
|
16294
16547
|
"id": "yaya:tips/ghost-switch-message",
|
|
@@ -16296,7 +16549,8 @@
|
|
|
16296
16549
|
"source": "yaya_docs",
|
|
16297
16550
|
"category": "yaya_tips",
|
|
16298
16551
|
"content": "ゴースト切替えメッセージを変化させる\n\n概要\n\n特定のゴーストに切り替わった際に、前のゴーストが話した内容(セリフ)に基づいて異なる反応を返す方法を説明しています。OnGhostChanged イベントで reference0(前のゴースト名)と reference1(前のゴーストの最後のセリフ)を参照し、キーワード検索 _in_ 演算子で条件分岐します。\n\nコード例\n\nOnGhostChanged\n{\n if reference0 == \"ゴーストA\"\n {\n if \"お料理\" _in_ reference1\n {\n \"(文章1)\"\n }\n elseif \"薬\" _in_ reference1\n {\n \"(文章2)\"\n }\n else\n {\n \"(文章3)\"\n }\n }\n}\n\n説明\n\n- reference0 : 切替え前のゴースト名\n- reference1 : 切替え前のゴーストが最後に話したセリフ\n- _in_ : 文字列が含まれるかチェックする演算子\n- キーワード条件を増やしたい場合は elseif ブロックを追加する\n- 既存の辞書に追加する場合は、先頭の if ではなく elseif を使用すること\n\n関連項目\n\n- ゴースト切替えメッセージを変化させる(新)\n- フロー制御",
|
|
16299
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/ghost-switch-message/"
|
|
16552
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/ghost-switch-message/",
|
|
16553
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/ghost-switch-message.md"
|
|
16300
16554
|
},
|
|
16301
16555
|
{
|
|
16302
16556
|
"id": "yaya:tips/handle-special-chars",
|
|
@@ -16304,7 +16558,8 @@
|
|
|
16304
16558
|
"source": "yaya_docs",
|
|
16305
16559
|
"category": "yaya_tips",
|
|
16306
16560
|
"content": "特殊文字を扱いたい\n\n概要\n\nUnicode で特殊なコードポイントが割り当てられている文字(™ など)をバルーン表示や内部処理で使う方法を解説します。\n\nコード例\n\nバルーンに表示するだけの場合\n\n\\_u[コード] 構文を使用します(16 進数または 10 進数)。\n\n\"\\0\\_u[0x2122]これは商標マーク(™)です。\\e\"\n\n内部処理でも使用する場合\n\nCHR 関数を使用します。\n\nCHR(0x2122)\n\n文字列への埋め込み:\n\n// 変数展開で埋め込む\n\"Enbug Masters%(CHR(0x2122))\"\n\n// 文字列連結で埋め込む\n'Enbug Masters' + CHR(0x2122)\n\ncharset.output の設定(CHR でバルーン出力する場合)\n\nCHR で生成した文字列をバルーンに正しく出力するには、基礎設定ファイルに以下を追記します。\n\ncharset.output, UTF-8\n\n既存の charset.output 設定がある場合は、右辺の値を UTF-8 に変更してください。\n\n説明\n\n_u[コード] と CHR の違い\n\n| 方法 | 用途 | 注意点 |\n|------|------|--------|\n| \\_u[コード] | バルーン表示のみ | 内部文字列として使えない |\n| CHR(コード) | 内部処理・文字列操作 | バルーン出力には charset.output 設定が必要 |\n\nコードの指定方法\n\n16 進数と 10 進数の両方が使えます。\n\n// 16進数\nCHR(0x2122) // ™ (TRADE MARK SIGN)\n\n// 10進数\nCHR(8482) // 同上\n\nよく使う特殊文字の例\n\n| 文字 | Unicode | 16 進数 |\n|------|---------|---------|\n| ™ | U+2122 | 0x2122 |\n| © | U+00A9 | 0x00A9 |\n| ® | U+00AE | 0x00AE |\n| ♪ | U+266A | 0x266A |\n\n関連項目\n\n- CHR\n- CHRCODE\n- charset.output(基礎設定)",
|
|
16307
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/handle-special-chars/"
|
|
16561
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/handle-special-chars/",
|
|
16562
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/handle-special-chars.md"
|
|
16308
16563
|
},
|
|
16309
16564
|
{
|
|
16310
16565
|
"id": "yaya:tips/hints-for-c-users",
|
|
@@ -16312,7 +16567,8 @@
|
|
|
16312
16567
|
"source": "yaya_docs",
|
|
16313
16568
|
"category": "yaya_tips",
|
|
16314
16569
|
"content": "C言語利用者のためのヒント\n\n概要\n\nC言語を知っているプログラマがYAYA(AYA)を学ぶ際に陥りやすい落とし穴をまとめたページ。「マニュアルをよく読めば回避できた過去の失敗メモ」として記述されている。\n\n戻り値の扱い\n\nC言語と異なり、return 文は存在しない。関数の戻り値は「これまでに出力された候補から選ばれる」方式。\n\n空文字列が候補に混入していると、無音応答が発生するバグを引き起こす。void やアウトプットファイナライザ -- を活用して防ぐこと。\n\n文字列展開\n\n- ダブルクォート \"\" の中では変数・関数が展開される\n- シングルクォート '' はリテラル扱い(展開されない)\n- %変数名 のような括弧なしのパーセント記法は最長一致展開を行うため計算コストが高い\n\n// 以下は等価\n\"abc%(hemo)efg\"\n'abc' + EVAL('hemo') + 'efg'\n\n変数と演算子\n\n- ローカル変数は _ (アンダースコア) で始める\n- グローバル変数はロードをまたいで保持される\n- 変数の初期値は空文字列(0 ではない)\n- 文字列 + 数値 = 文字列 になる\n- 未定義変数を == で空文字列と比較すると true が返る\n\n未初期化変数のインクリメントは数値にならず文字列の連結になる:\n\n// _sum が初期化されていないと文字列連結になる\nhogehoge\n{\n // ここに _sum=0 が必要。無いとこの関数の結果は空文字\n for _i=0 ; _i<10 ; _i++ {\n _sum+=_i\n }\n _sum\n}\n\n制御フロー\n\n- else if ではなく elseif を使う\n- switch ではなく case / when を使う\n- ループ変数に _ プレフィックスを忘れると無限ループになる\n\n// 誤り(_i がグローバル変数になる)\nfor i=1; i<10; i++ { ... }\n\n// 正しい\nfor _i=1; _i<10; _i++ { ... }\n\nゴーストテンプレートの注意点\n\n- OnAiTalk はAYA固有。aitalkinterval 秒ごとに自動発火する\n- res_reference0 に値をセットすると、応答に Reference?: ヘッダが追加される\n- ghostexlist / ghostexcount は不正確な場合がある\n\nSAORI(外部DLL)の扱い\n\n- SAORIは初回呼び出し時にロードされ、SHIORIシャットダウン時にアンロードされる\n- 明示的に終了させたい場合は UNLOADLIB を使う\n\n動的関数呼び出し\n\n// 変数の値に応じて関数を動的に選択\nEVAL(\"func_%(var)\")\n\n関連項目\n\n- 関数\n- 値と変数\n- フロー制御",
|
|
16315
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/hints-for-c-users/"
|
|
16570
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/hints-for-c-users/",
|
|
16571
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/hints-for-c-users.md"
|
|
16316
16572
|
},
|
|
16317
16573
|
{
|
|
16318
16574
|
"id": "yaya:tips/independent-choice-function",
|
|
@@ -16320,7 +16576,8 @@
|
|
|
16320
16576
|
"source": "yaya_docs",
|
|
16321
16577
|
"category": "yaya_tips",
|
|
16322
16578
|
"content": "選択肢をいきなり独立した関数で書く\n\n概要\n\nYAYAゴーストスクリプトで、選択肢やアンカーの選択を処理する際に、選択肢の識別子と一致する独立した関数を作成することで、OnChoiceSelect内の条件分岐を省略できるテクニックを紹介します。\n\nコード例\n\nOnChoiceSelect {\n if ISFUNC(reference0) {\n EVAL(reference0)\n }\n}\n\nOnAnchorSelect {\n if ISFUNC(reference0) {\n EVAL(reference0)\n }\n}\n\n説明\n\nこのアプローチにより、\\q[]タグや\\\\_a[]タグで使用する識別子と同名の関数を辞書内に書くだけで、選択肢の処理が完結します。\n\n例えば、選択肢タグで \\q[はい,AnswerYes] と書いた場合、以下の関数を作成するだけで対応できます。\n\nAnswerYes {\n \"\\0\\s[0]よかった!\\e\"\n}\n\nOnChoiceSelect内で大量のcase文を書く必要がなくなります。\n\n関数識別子の命名制限\n\n選択肢名(関数識別子)には以下のものを使用できません。\n\n- 数字またはアンダースコアで始まるもの\n- スペースや以下の特殊文字を含むもの: ! \" # $ % & ( ) * + , - / : ; < = > ? @ [ ] \\ { | } ~`\n- 予約語と一致するもの\n\n関連項目\n\n- 直前の会話をもう一度再生する\n- 誕生日を覚える\n- ISFUNC\n- EVAL",
|
|
16323
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/independent-choice-function/"
|
|
16579
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/independent-choice-function/",
|
|
16580
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/independent-choice-function.md"
|
|
16324
16581
|
},
|
|
16325
16582
|
{
|
|
16326
16583
|
"id": "yaya:tips/independent-switch-function",
|
|
@@ -16328,7 +16585,8 @@
|
|
|
16328
16585
|
"source": "yaya_docs",
|
|
16329
16586
|
"category": "yaya_tips",
|
|
16330
16587
|
"content": "切り替え反応もいきなり独立した関数で書く\n\n概要\n\nゴーストの切り替え時(OnGhostChanged, OnGhostCalled など)のメッセージを、「選択肢をいきなり独立した関数で書く」の手法と同様に独立した関数として実装する方法です。\n\n最終更新: 2006年12月9日\n\n説明\n\nこのページは「選択肢をいきなり独立した関数で書く」と「ゴースト切替えメッセージを変化させる(新)」を前提とした内容です。\n\nゴースト切り替えメッセージを独立した関数として記述することで、辞書ファイルの構造をより整理しやすくなります。選択肢の場合と同様の手法が適用できます。\n\n関連項目\n\n- 選択肢をいきなり独立した関数で書く\n- ゴースト切替えメッセージを変化させる(新)",
|
|
16331
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/independent-switch-function/"
|
|
16588
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/independent-switch-function/",
|
|
16589
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/independent-switch-function.md"
|
|
16332
16590
|
},
|
|
16333
16591
|
{
|
|
16334
16592
|
"id": "yaya:tips/menu-from-array",
|
|
@@ -16336,7 +16594,8 @@
|
|
|
16336
16594
|
"source": "yaya_docs",
|
|
16337
16595
|
"category": "yaya_tips",
|
|
16338
16596
|
"content": "簡易配列からメニューを構築する\n\n概要\n\n動的に要素数が変化する配列からメニューを構築し、選択判定を行う実装方法を説明します。\n\nコード例\n\n初期化関数\n\nMyTestMenuItem {\n testmenuitem1 = \"てすと1,てすと2,てすと3\"\n testmenuitem2 = \"テスト1,テスト2,テスト3,テスト4,テスト5\"\n}\n\nOpenMenu関数内でのメニュー表示\n\nOpenMenu {\n // ...(通常のメニュー項目)\n \"\\q[メニュー1,TESTMENU1]\\n\"\n \"\\q[メニュー2,TESTMENU2]\\n\"\n // ...\n}\n\nOnChoiceSelectでの選択判定\n\nSTRSTRとERASE関数を組み合わせてメニュー項目IDを抽出し、case文で処理を分岐します。\n\nOnChoiceSelect {\n if STRSTR(reference0, \"TESTMENU\") >= 0 {\n _id = ERASE(reference0, \"TESTMENU\")\n case _id {\n when \"1\" {\n // testmenuitem1の処理\n _items = SPLIT(testmenuitem1, \",\")\n _i = 0\n for _i < ARRAYSIZE(_items) {\n // 各要素を処理\n _i++\n }\n }\n when \"2\" {\n // testmenuitem2の処理\n }\n }\n }\n}\n\n実装手順\n\n1. OnFirstBootおよびOnBootイベントで初期化関数MyTestMenuItemを呼び出す\n2. OpenMenu関数内にメニュー選択肢タグを埋め込む\n3. OnChoiceSelectで選択されたIDを判定し、対応する配列を処理する\n4. forループで配列の各要素を動的に処理する\n\n説明\n\nこの実装パターンは、要素数が動的に変化する配列を扱う場合に適しています。カンマ区切り文字列を配列として扱い、ARRAYSIZEで要素数を取得してforループで繰り返し処理することで、配列の要素数に依存しない汎用的なメニュー構築が可能です。\n\n関連項目\n\n- 配列の要素数を取得\n- 選択肢をいきなり独立した関数で書く\n- ARRAYSIZE\n- SPLIT",
|
|
16339
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/menu-from-array/"
|
|
16597
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/menu-from-array/",
|
|
16598
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/menu-from-array.md"
|
|
16340
16599
|
},
|
|
16341
16600
|
{
|
|
16342
16601
|
"id": "yaya:tips/menu-horizontal-invert",
|
|
@@ -16344,7 +16603,8 @@
|
|
|
16344
16603
|
"source": "yaya_docs",
|
|
16345
16604
|
"category": "yaya_tips",
|
|
16346
16605
|
"content": "メニューを横一ライン反転\n\n概要\n\nメニュー選択肢をバルーンの幅いっぱいに反転表示させることで、選択しやすくする実装方法を説明しています。メニュー項目の後ろに半角空白を補完して、指定バイト数まで埋める MENUITEM 関数を定義します。\n\nコード例\n\nMENUITEM 関数の定義\n\nMENUITEM\n{\n _menuitem = _argv[0]\n for _i = GETSTRBYTES(_menuitem) ; _i < 48 ; _i++\n {\n _menuitem += \" \"\n }\n _menuitem\n}\n\nメニュー項目の後ろにスペースを補完して48バイトに揃えます。バルーンの幅に合わせて 48 の値を調整してください。\n\n実装方法1: 文字列埋め込み(AYA5.7 fix3 以降)\n\n%(...) 演算子を使った手抜き構文:\n\nOpenMenu\n{\n \"\\0\\s[0]\"\n --\n \"はい、なんでしょうか?\"\n --\n \"\\n\\n/\n \\q[%(MENUITEM('なんか話して')),AITALK]\\n/\n \\q[%(MENUITEM('しゃべり頻度を変えて')),TALKINTERVAL]\\n/\n \\q[%(MENUITEM('コミュニケート')),COMMUNICATEOPEN]\\n/\n \\q[%(MENUITEM('AIについて')),ABOUTAYA]\\n/\n \\q[%(MENUITEM('なんでもない')),CANCEL]\\e\"\n}\n\n実装方法2: セミコロン使用版\n\nOpenMenu\n{\n \"\\0\\s[0]\"\n --\n \"はい、なんでしょうか?\"\n --\n \"\\n\\n/\n \\q[\";--;MENUITEM(\"なんか話して\");--;\",AITALK]\\n/\n \\q[\";--;MENUITEM(\"しゃべり頻度を変えて\");--;\",TALKINTERVAL]\\n/\n \\q[\";--;MENUITEM(\"コミュニケート\");--;\",COMMUNICATEOPEN]\\n/\n \\q[\";--;MENUITEM(\"AIについて\");--;\",ABOUTAYA]\\n/\n \\q[\";--;MENUITEM(\"なんでもない\");--;\",CANCEL]\\e\"\n}\n\n実装方法3: セミコロン非使用版\n\nOpenMenu\n{\n \"\\0\\s[0]\"\n --\n \"はい、なんでしょうか?\"\n --\n \"\\n\\n/\n \\q[\"\n --\n MENUITEM(\"なんか話して\")\n --\n \",AITALK]\\n/\n \\q[\"\n --\n MENUITEM(\"しゃべり頻度を変えて\")\n --\n \",TALKINTERVAL]\\n/\n \\q[\"\n --\n MENUITEM(\"コミュニケート\")\n --\n \",COMMUNICATEOPEN]\\n/\n \\q[\"\n --\n MENUITEM(\"AIについて\")\n --\n \",ABOUTAYA]\\n/\n \\q[\"\n --\n MENUITEM(\"なんでもない\")\n --\n \",CANCEL]\\e\"\n}\n\n説明\n\n- GETSTRBYTES でメニュー項目のバイト数を計測し、48 バイトに満たない分を半角空白で補完する\n- 変数や関数の結果を連結したい場合は方法2または方法3を使用すること\n- 48 の値はバルーンのサイズに合わせて調整する\n\n関連項目\n\n- GETSTRBYTES",
|
|
16347
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/menu-horizontal-invert/"
|
|
16606
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/menu-horizontal-invert/",
|
|
16607
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/menu-horizontal-invert.md"
|
|
16348
16608
|
},
|
|
16349
16609
|
{
|
|
16350
16610
|
"id": "yaya:tips/multiple-personality-mode",
|
|
@@ -16352,7 +16612,8 @@
|
|
|
16352
16612
|
"source": "yaya_docs",
|
|
16353
16613
|
"category": "yaya_tips",
|
|
16354
16614
|
"content": "多重人格モード\n\n概要\n\nmode 変数でモードを管理し、EVAL または CALLBYNAME を使って動的に関数を切り替えることで、複数の人格(モード)を持つゴーストを実装する方法です。\n\n情報源: et cetera. の雑記より引用\n\nコード例\n\nVersion 5 での記述\n\nOnAiTalk\n{\n\tEVAL(\"OnAiTalk%mode\")\n}\n\nVersion 4 での記述\n\nOnAiTalk\n{\n\tCALLBYNAME(\"OnAiTalk%mode\")\n}\n\nモード別イベント定義\n\nOnAiTalk0\n{\n\t// モード 0\n\t\"\\0ユーザーさん大好きっ。\\e\"\n}\n\nOnAiTalk1\n{\n\t// モード 1\n\t\"\\0くたばれ腐れユーザーさん。\\e\"\n}\n\n説明\n\n動作の仕組み\n\nmode 変数の値(例: 0 または 1)を関数名に埋め込んで、EVAL または CALLBYNAME で動的に呼び出します。mode が 0 なら OnAiTalk0、1 なら OnAiTalk1 が実行されます。\n\n各バージョンの違い\n\n- Version 5: EVAL を使用して関数名文字列を評価・実行する\n- Version 4: CALLBYNAME を使用して文字列で指定した関数を呼び出す\n\n応用方法\n\nこの手法はランダムトークイベントに限定されません。他の各種イベントも同様に記述し、モード別に辞書ファイルをまとめることで、完全な多重人格ゴーストを実現できます。\n\nモードの切り替えは mode 変数に値を代入することで行います。会話の途中で切り替える方法は「会話の途中で人格を切り替える」を参照してください。\n\n関連項目\n\n- 会話の途中で人格を切り替える\n- EVAL\n- CALLBYNAME",
|
|
16355
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/multiple-personality-mode/"
|
|
16615
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/multiple-personality-mode/",
|
|
16616
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/multiple-personality-mode.md"
|
|
16356
16617
|
},
|
|
16357
16618
|
{
|
|
16358
16619
|
"id": "yaya:tips/natural-mouse-response",
|
|
@@ -16360,7 +16621,8 @@
|
|
|
16360
16621
|
"source": "yaya_docs",
|
|
16361
16622
|
"category": "yaya_tips",
|
|
16362
16623
|
"content": "マウス反応(なで反応)を自然なものにする\n\n概要\n\nマウスの撫で反応をより自然に実装する方法を説明しています。\n\n素のなで反応実装では、「ちょっと撫でる→撫でカウントが設定値ギリギリまで溜まる→カーソルが外れる→カーソルが乗った瞬間にカウンタが設定値に達し、瞬時に撫で反応発動」という不自然な状態が起きます。\n\n解決策: 撫で間隔が一定時間(例: 1秒)以上開いたときにカウンタをリセットすることで、自然な反応を実現します。\n\nコード例\n\nOnMouseMove\n{\n if reference[4] != \"\" {\n //----どこかが撫でられている\n if reference[4] == prev_reference4 {\n _nade_interval = systemuptime - nade_prev\n if _nade_interval > 1 {\n //1秒以上間隔が空いたらカウンタをリセット\n stroke = 0\n }\n nade_prev = systemuptime\n\n stroke++\n //---- 撫でられた量が一定量に達したら「なでられている」と判断\n if stroke >= 96 {\n //---- 撫でられた。撫でられた部位を見てトークする\n EVAL(\"MouseReaction%(reference[3])%(reference[4])\")\n stroke = 0\n }\n }\n else {\n stroke = 0\n }\n prev_reference4 = reference[4]\n }\n else {\n // 定義された部位はどこも撫でられていない\n stroke = 0\n }\n}\n\nMouseReaction0Head\n{\n \"\"\n}\n\n説明\n\n- reference[3] : キャラクター番号(0 = さくら側, 1 = うにゅう側)\n- reference[4] : ヒット領域の識別子(撫でられている部位名)\n- stroke : 撫でカウンター。96 以上で「なでられた」と判定\n- nade_prev : 前回の撫で時刻(systemuptime で記録)\n- prev_reference4 : 前フレームのヒット領域。変わったらカウンタリセット\n- _nade_interval > 1 の 1 は秒数。調整可能\n- MouseReaction[キャラクター番号][ヒット識別子] の形式でトーク関数を定義する\n- 同様の手法は OnMouseWheel でも適用可能\n\n関連項目\n\n- ホイール反応を自然なものにする\n- EVAL",
|
|
16363
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/natural-mouse-response/"
|
|
16624
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/natural-mouse-response/",
|
|
16625
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/natural-mouse-response.md"
|
|
16364
16626
|
},
|
|
16365
16627
|
{
|
|
16366
16628
|
"id": "yaya:tips/natural-wheel-response",
|
|
@@ -16368,7 +16630,8 @@
|
|
|
16368
16630
|
"source": "yaya_docs",
|
|
16369
16631
|
"category": "yaya_tips",
|
|
16370
16632
|
"content": "ホイール反応を自然なものにする\n\n概要\n\nマウスホイール操作でゴーストのトークが複数回連続で発生する問題を、一定間隔の時間判定を加えることで解決する手法です。\n\nマウスの種類や設定によっては、一回ホイールを回しただけで2〜3回連続してトークが発生してしまう場合があります。systemuptime を使って前回の反応からの経過時間を計測し、一定時間(デフォルト1秒)以上経過した場合にのみ反応するようにします。\n\nコード例\n\n基本実装(改善前)\n\nOnMouseWheel\n{\n if reference[3] == 0 {\n \"\\0ころころすんな!\\e\"\n }\n}\n\n改善版(インターバル制御あり)\n\nOnMouseWheel\n{\n _wheel_interval = systemuptime - wheel_prev\n if _wheel_interval > 1 {\n wheel_prev = systemuptime\n if reference[3] == 0 {\n \"\\0ころころすんな!\\e\"\n }\n }\n}\n\nOnGhostUnload\n{\n ERASEVAR('wheel_prev')\n}\n\n説明\n\n- systemuptime : システム起動からの経過時間(秒)\n- wheel_prev : 前回ホイール反応を実行した時刻を記録するグローバル変数\n- _wheel_interval > 1 の 1 は秒数。好みに応じて調整可能\n- reference[3] : ホイールの回転方向(0 = 下向き、1 = 上向き)\n- OnGhostUnload で wheel_prev 変数を削除する処理が必須\n\n関連項目\n\n- マウス反応(なで反応)を自然なものにする\n- ERASEVAR",
|
|
16371
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/natural-wheel-response/"
|
|
16633
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/natural-wheel-response/",
|
|
16634
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/natural-wheel-response.md"
|
|
16372
16635
|
},
|
|
16373
16636
|
{
|
|
16374
16637
|
"id": "yaya:tips/number-guessing-game",
|
|
@@ -16376,7 +16639,8 @@
|
|
|
16376
16639
|
"source": "yaya_docs",
|
|
16377
16640
|
"category": "yaya_tips",
|
|
16378
16641
|
"content": "数当てゲーム\n\n概要\n\n0〜99 の範囲の数字を当てるシンプルなゲームの実装例です。RAND による乱数生成と inputbox による入力受付を組み合わせて実現します。\n\nコード例\n\nChoicekazuate\n{\n\tKazuate_a = RAND\n\t\"\\0\\s[5]数当てゲーム開始ー。\\n/\n\t私がイメージする0~99までの数を当ててみてね。\n\t\\![open,inputbox,OnInputKazuate_b,-1]\\e\"\n}\n\nOnInputKazuate_b\n{\n\tKazuate_b = reference0\n\tif Kazuate_b == Kazuate_a\n\t{\n\t\t\"\\0\\s[6]正解!私がイメージしたのは%Kazuate_aでした~\\e\"\n\t}\n\telseif Kazuate_b > Kazuate_a\n\t{\n\t\t\"\\0\\s[5]答えよりも大きいよ。\\n/\n\t\tさぁ、もう一度数を予想してみて。\n\t\t\\![open,inputbox,OnInputKazuate_b,-1]\\e\"\n\t}\n\telseif Kazuate_b < Kazuate_a\n\t{\n\t\t\"\\0\\s[5]答えよりも小さいよ。\\n/\n\t\tさぁ、もう一度数を予想してみて。\n\t\t\\![open,inputbox,OnInputKazuate_b,-1]\\e\"\n\t}\n}\n\n説明\n\n関数の役割\n\n| 関数 | 役割 |\n|------|------|\n| Choicekazuate | ゲーム開始。乱数を生成して inputbox を開く |\n| OnInputKazuate_b | ユーザーの入力値と答えを比較して結果を返す |\n\n実装のポイント\n\n- RAND で 0〜99 の乱数を生成し Kazuate_a に保存する\n- \\![open,inputbox,OnInputKazuate_b,-1] でユーザー入力を受け付ける\n- reference0 でユーザーが入力した値を取得する\n- 正解・大きい・小さいの 3 分岐で結果を返す\n- 不正解の場合は再帰的に inputbox を開いてゲームを継続する\n\n呼び出し方\n\n選択肢やトークから Choicekazuate を呼び出すことでゲームが始まります。「選択肢をいきなり独立した関数で書く」の手法と組み合わせると便利です。\n\n関連項目\n\n- RAND\n- 選択肢をいきなり独立した関数で書く",
|
|
16379
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/number-guessing-game/"
|
|
16642
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/number-guessing-game/",
|
|
16643
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/number-guessing-game.md"
|
|
16380
16644
|
},
|
|
16381
16645
|
{
|
|
16382
16646
|
"id": "yaya:tips/on-file-drop2",
|
|
@@ -16384,7 +16648,8 @@
|
|
|
16384
16648
|
"source": "yaya_docs",
|
|
16385
16649
|
"category": "yaya_tips",
|
|
16386
16650
|
"content": "OnFileDrop2の使い方\n\n概要\n\nゴーストにファイルをドラッグ&ドロップすると OnFileDrop2 イベントが発生する。このイベントを利用することで、壁紙の変更や音楽データの再生などの機能を実装できる。\n\n応用例\n\n- 壁紙変更機能\n- 音楽データ再生機能\n\n必要なSAORI\n\n実装には以下の外部DLLが必要:\n\n| SAORI | 作者 |\n|-------|------|\n| MCIAudioR | umeiさん |\n| set_wallpaper | 櫛ヶ浜やぎさん |\n| PROXY.DLL | 橋本孔明さん |\n\n実装サンプル\n\n実装に必要なサンプルコード(OnFileDrop2.txt)がページの添付ファイルとして提供されている。\n\n関連項目\n\n- SAORIの使い方\n- 選択肢をいきなり独立した関数で書く(関連テクニック)",
|
|
16387
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/on-file-drop2/"
|
|
16651
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/on-file-drop2/",
|
|
16652
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/on-file-drop2.md"
|
|
16388
16653
|
},
|
|
16389
16654
|
{
|
|
16390
16655
|
"id": "yaya:tips/on-translate-event",
|
|
@@ -16392,7 +16657,8 @@
|
|
|
16392
16657
|
"source": "yaya_docs",
|
|
16393
16658
|
"category": "yaya_tips",
|
|
16394
16659
|
"content": "OnTranslateイベント\n\n概要\n\nOnTranslate イベントを使用すると、ゴーストが出力するすべての文字列を事後的に書き換えることができる。特に敬称の重複(「さん様」「さま様」など)を回避するのに役立つ。\n\nコード例\n\nOnTranslate\n{\n reference0 = REPLACE(reference0, \"ちゃんさん\", \"ちゃん\")\n reference0 = REPLACE(reference0, \"くんさん\", \"くん\")\n reference0 = REPLACE(reference0, \"さんさん\", \"さん\")\n reference0\n}\n\n説明\n\nreference0 にはゴーストが出力しようとしているスクリプトテキストが格納されている。REPLACE 関数を使って置換処理を順次実行し、最終的な文字列を出力する。\n\n複数の REPLACE 呼び出しを連続して記述することで、複数のパターンを順番に処理できる。\n\n関連項目\n\n- OnTranslateの使い方\n- REPLACE\n- RE_REPLACE",
|
|
16395
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/on-translate-event/"
|
|
16660
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/on-translate-event/",
|
|
16661
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/on-translate-event.md"
|
|
16396
16662
|
},
|
|
16397
16663
|
{
|
|
16398
16664
|
"id": "yaya:tips/on-translate-usage",
|
|
@@ -16400,7 +16666,8 @@
|
|
|
16400
16666
|
"source": "yaya_docs",
|
|
16401
16667
|
"category": "yaya_tips",
|
|
16402
16668
|
"content": "OnTranslateの使い方\n\n概要\n\nOnTranslate は、ゴーストがしゃべるスクリプトをまとめて後処理で置き換える際に使うイベント。語尾の変更や敬称の重複回避に有用。\n\n基本実装例\n\nOnTranslate\n{\n _text = reference0\n\n _text = REPLACE(_text, \"、\", \"、\\w5\")\n _text = REPLACE(_text, \"。\", \"。\\w5\")\n _text = REPLACE(_text, \"…\", \"…\\w5\")\n\n _text = REPLACE(_text, \"たん殿\", \"たん\")\n _text = RE_REPLACE(_text,\"(ちゃん|くん|さん|殿)殿\",\"殿\")\n\n _text\n}\n\n説明\n\n置換の仕組み\n\nREPLACE(_text, \"置換前\", \"置換後\") でテキストを変換する。上記例では句読点の後に自動ウエイト \\w5 を挿入している。\n\n正規表現の活用\n\nRE_REPLACE を使えば複数パターンを一括処理できる。括弧と | で複数の選択肢を指定できる:\n\nRE_REPLACE(_text, \"(ちゃん|くん|さん|殿)殿\", \"殿\")\n\nこれにより「ちゃん殿」「くん殿」「さん殿」「殿殿」をまとめて「殿」に変換する。\n\nTextOnlyTranslator\n\nタグ内部を誤って置換しないよう、テキスト部分のみを処理する TextOnlyTranslator 関数の実装も紹介されている。\n\n関連項目\n\n- OnTranslateイベント\n- REPLACE\n- RE_REPLACE",
|
|
16403
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/on-translate-usage/"
|
|
16669
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/on-translate-usage/",
|
|
16670
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/on-translate-usage.md"
|
|
16404
16671
|
},
|
|
16405
16672
|
{
|
|
16406
16673
|
"id": "yaya:tips/optimization",
|
|
@@ -16408,7 +16675,8 @@
|
|
|
16408
16675
|
"source": "yaya_docs",
|
|
16409
16676
|
"category": "yaya_tips",
|
|
16410
16677
|
"content": "高速化\n\n概要\n\nAYA v5でのゴースト開発における主要なパフォーマンス最適化のガイドラインです。以下の3つの観点から最適化方法を説明します。\n\n1. 起動時の最適化\n\nインストール済みゴーストが多い環境では、aya_shiori3.dicの以下の設定を変更することで起動を高速化できます。\n\n// 内部ゴースト情報検索を無効化\nIGLIST_MAX = 0\n\n// 通信解析行数を削減(推奨値: 30)\nREQUEST_LINES_LIMIT = 30\n\nさらに積極的な最適化として、On_installedghostname関数全体をコメントアウトしてゴースト情報取得を無効化する方法もあります。\n\n2. ランダムトークのパフォーマンス最適化\n\n大量のランダムトークがある場合、ダブルクォートの代わりシングルクォートを使用することでパフォーマンスが向上します。\n\n通常の書き方:\nRandomTalk {\n \"\\0\\s[0]こんにちは。\\e\"\n \"\\0\\s[0]今日もいい天気ですね。\\e\"\n // ...(数百行)\n}\n\n最適化された書き方(EVAL()とCHR(0x22)を組み合わせて埋め込み処理を遅延させる):\nRandomTalk {\n EVAL(CHR(0x22) + '\\0\\s[0]こんにちは。\\e' + CHR(0x22))\n EVAL(CHR(0x22) + '\\0\\s[0]今日もいい天気ですね。\\e' + CHR(0x22))\n // ...\n}\n\nシングルクォートで書くことで辞書読み込み時の埋め込み処理が省略され、大量のエントリがある場合に効果が出ます。\n\n3. 高度な最適化\n\nEmily/Phase4ゴーストを参考例として、さらに高度な最適化テクニックが紹介されています。\n\n注意事項\n\nこれらの変更は通常の用途では必要なく、予期しない問題が発生するリスクもあります。パフォーマンス問題が実際に発生した場合にのみ適用することを推奨します。\n\n関連項目\n\n- EVAL\n- CHR\n- 玉を使った辞書エラーチェック",
|
|
16411
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/optimization/"
|
|
16678
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/optimization/",
|
|
16679
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/optimization.md"
|
|
16412
16680
|
},
|
|
16413
16681
|
{
|
|
16414
16682
|
"id": "yaya:tips/paging",
|
|
@@ -16416,7 +16684,8 @@
|
|
|
16416
16684
|
"source": "yaya_docs",
|
|
16417
16685
|
"category": "yaya_tips",
|
|
16418
16686
|
"content": "ページング\n\n概要\n\n用語リストなどをページング(複数ページに分けて表示)するための簡単な関数ライブラリを提供しています。AYA および YAYA の両環境で動作するよう設計されています。\n\n> 「ライセンスは何してもOKです」\n\n> 追記(2018/03/01): バグ修正しました\n\n提供ファイル\n\nページからダウンロードできる添付ファイル:\n\n| ファイル名 | サイズ | 更新日 |\n|-----------|--------|--------|\n| aya_pager_new.dic | 3.9KB | 2018/03/01 |\n| aya_pager.dic | 3.5KB | 2008/04/06 |\n| pager.png | 19.1KB | スクリーンショット |\n\n説明\n\n- 高度な関数を使用していないため、AYA/YAYA の両環境で動作する\n- コードは添付ファイル(.dic)に含まれており、ページ上には掲載されていない\n- 最新版は aya_pager_new.dic(2018年バグ修正済み)を使用すること\n\nコード例\n\n実装コードは添付の aya_pager_new.dic を参照してください(ページ上にはコードは掲載されていません)。",
|
|
16419
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/paging/"
|
|
16687
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/paging/",
|
|
16688
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/paging.md"
|
|
16420
16689
|
},
|
|
16421
16690
|
{
|
|
16422
16691
|
"id": "yaya:tips/play-sound",
|
|
@@ -16424,7 +16693,8 @@
|
|
|
16424
16693
|
"source": "yaya_docs",
|
|
16425
16694
|
"category": "yaya_tips",
|
|
16426
16695
|
"content": "音を鳴らす\n\n概要\n\nYAYAでSAORI「MCIAudioR」(作者: umeici)を使って音声・MIDIを再生する方法を説明します。\n\n前提条件\n\nmciaudior.dllとaya.dllを同じフォルダに配置してください。\n\n基本的な使い方\n\nMIDIの読み込みと再生\n\n// MIDIデータの読み込み\nFUNCTIONEX(\"mciaudior.dll\", \"load\", \"fuga.mid\")\n\n// 再生開始\nFUNCTIONEX(\"mciaudior.dll\", \"play\")\n\n再生停止\n\nFUNCTIONEX(\"mciaudior.dll\", \"stop\")\n\n応用: トーク中に音を鳴らす\n\n\\\\![raise]コマンドを使って、ゴーストのトーク中にユーザー定義イベントを発火させ、音を再生させます。\n\n関数の作成\n\nOnPlayMusic {\n FUNCTIONEX(\"mciaudio.dll\", \"play\")\n}\n\nOnStopMusic {\n FUNCTIONEX(\"mciaudio.dll\", \"stop\")\n}\n\nトーク内での使用\n\nSomeTalk {\n // MIDIを読み込んでからトークを開始\n FUNCTIONEX(\"mciaudio.dll\", \"load\", \"bgm.mid\")\n \"\\0\\s[0]音楽が流れ始めました。\\![raise,OnPlayMusic]\\e\"\n}\n\n停止\n\nマウス操作など適切なタイミングでOnStopMusicを呼び出して再生を停止します。\n\n説明\n\nFUNCTIONEXはSAORI(外部DLL)を呼び出すための関数です。mciaudior.dllはWindows MCI(Media Control Interface)を使って音声を再生するSAORIです。\n\n最終更新: 2006-12-09\n\n関連項目\n\n- FUNCTIONEX\n- 高速化\n- SAORIの使い方(その他)",
|
|
16427
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/play-sound/"
|
|
16696
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/play-sound/",
|
|
16697
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/play-sound.md"
|
|
16428
16698
|
},
|
|
16429
16699
|
{
|
|
16430
16700
|
"id": "yaya:tips/reliable-boot-shutdown",
|
|
@@ -16432,7 +16702,8 @@
|
|
|
16432
16702
|
"source": "yaya_docs",
|
|
16433
16703
|
"category": "yaya_tips",
|
|
16434
16704
|
"content": "ゴーストの起動と終了に確実に何かする\n\n概要\n\nゴーストのロード・アンロード時に確実に処理を実行する方法。SAORIの持続的なロードや変数の初期化などに使う。\n\n基本的な方法\n\n任意の辞書ファイルに以下のイベントハンドラを追加する:\n\nOnGhostLoad\n{\n // 起動時の処理をここに書く\n}\n\nOnGhostUnload\n{\n // 終了時の処理をここに書く\n}\n\n> 注意: これらのハンドラに書いたスクリプトは出力を生成しない。ダイアログ(会話)は OnBoot などのイベントで別途実装する必要がある。\n\nより確実な方法\n\nSSPにはロード済みゴーストをメモリに保持するキャッシュ機能がある。ゴーストの開閉時に確実に処理を実行するには、以下も合わせて実装する:\n\nOnCacheSuspend\n{\n // キャッシュへの退避時の処理\n}\n\nOnCacheRestore\n{\n // キャッシュからの復帰時の処理\n}\n\n> 「通常の開発ではここまで考慮する必要はない」とページで述べられている。\n\n関連項目\n\n- 変数\n- SAORIの使い方",
|
|
16435
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/reliable-boot-shutdown/"
|
|
16705
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/reliable-boot-shutdown/",
|
|
16706
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/reliable-boot-shutdown.md"
|
|
16436
16707
|
},
|
|
16437
16708
|
{
|
|
16438
16709
|
"id": "yaya:tips/remember-birthday",
|
|
@@ -16440,7 +16711,8 @@
|
|
|
16440
16711
|
"source": "yaya_docs",
|
|
16441
16712
|
"category": "yaya_tips",
|
|
16442
16713
|
"content": "誕生日を覚える\n\n概要\n\nユーザーの誕生日をゴーストが記憶する機能の実装方法を説明します。InputBoxを使って誕生日の入力を促し、変数に保存します。\n\nコード例\n\n誕生日入力関数(文バージョン4)\n\nChoiceBirthdayEntry {\n \"\\0誕生日を教えてください。\\n\\n\\\n形式はYYYYMMDDとか、YYYY年MM月DD日とか、\\n\\\nYYYY/MM/DD等でお願いします。\\![open,inputbox,OnInputBirthday,-1]\\e\"\n}\n\n入力結果の処理(文バージョン4)\n\nBirthday.txtの内容を辞書に組み込み、OnInputBirthdayコールバック関数で処理を実装します。\n\n文バージョン5での変更点\n\nバージョン5ではSUBSTR関数の動作が変わり、「半角・全角問わず1文字を1としてカウントする」ようになったため、SUBSTRを使った文字列処理部分を修正する必要があります。\n\n修正版サンプルとして Birthday_revised_edition.dic(4.3KB)が配布されていました。\n\n説明\n\n実装の概要:\n\n1. メニューなどから誕生日入力画面を呼び出す\n2. InputBoxで「YYYYMMDD」や「YYYY年MM月DD日」などの形式で入力してもらう\n3. OnInputBirthdayコールバックで入力値を受け取り、変数に保存する\n4. GETTIMEなどと組み合わせて誕生日チェックを実装する\n\n文バージョン4と5ではSUBSTRの動作が異なるため、バージョンに応じた実装が必要です。\n\n関連項目\n\n- 選択肢をいきなり独立した関数で書く\n- SUBSTR\n- GETTIME",
|
|
16443
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/remember-birthday/"
|
|
16714
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/remember-birthday/",
|
|
16715
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/remember-birthday.md"
|
|
16444
16716
|
},
|
|
16445
16717
|
{
|
|
16446
16718
|
"id": "yaya:tips/remember-username",
|
|
@@ -16448,7 +16720,8 @@
|
|
|
16448
16720
|
"source": "yaya_docs",
|
|
16449
16721
|
"category": "yaya_tips",
|
|
16450
16722
|
"content": "ユーザーの名前を覚える\n\n概要\n\nゴーストがユーザーの名前を inputbox ダイアログを通じて取得し、グローバル変数 username に保存する方法を説明しています。保存した名前はその後のセリフで %username として参照できます。\n\nコード例\n\n基本実装(シンプル版)\n\nChoiceUsernameEntry\n{\n \"\\0お名前、教えてください。\\![open,inputbox,OnInputUsername,-1]\\e\"\n}\n\nOnInputUsername\n{\n username = EscapeAllTags(reference[0])\n if username == \"\"\n {\n username = '名無し'\n \"\\0教えてくれないの?\\n\\w9じゃあ勝手に%usernameって呼んじゃうね。\\e\"\n }\n else\n {\n \"\\0じゃあこれから、\\w5%usernameって呼ぶね。\\e\"\n }\n}\n\n- EscapeAllTags でSakuraスクリプトタグを除去してから保存する\n- 空入力の場合は '名無し' をデフォルト値として使用する\n\n応用実装(敬称選択付き)\n\nChoiceUsernameEntry\n{\n \"\\0お名前、教えてください。\\![open,inputbox,OnInputUsername,-1]\\e\"\n}\n\nOnInputUsername\n{\n inputted_name = reference[0]\n \"/\n \\0呼び方は、どうするの?\\n\\n[half]/\n \\![*]\\q[ちゃん,Oninputted_name1]\\n/\n \\![*]\\q[さん,Oninputted_name2]\\e\"\n}\n\nOninputted_name1\n{\n \"/\n \\0「%inputted_nameちゃん」でいい?\\n\\n[half]/\n \\![*]\\q[いいよ,Oninputted_name1_determination]\\n/\n \\![*]\\q[まちがい,ChoiceUsernameEntry]\\e\"\n}\n\nOninputted_name1_determination\n{\n username = \"%inputted_nameちゃん\"\n \"\\0じゃあこれから、\\w5%usernameってよぶね。\\e\"\n}\n\nOninputted_name2\n{\n \"/\n \\0「%inputted_nameさん」でいい?\\n\\n[half]/\n \\![*]\\q[いいよ,Oninputted_name2_determination]\\n/\n \\![*]\\q[まちがい,ChoiceUsernameEntry]\\e\"\n}\n\nOninputted_name2_determination\n{\n username = \"%inputted_nameさん\"\n \"\\0じゃあこれから、\\w5%usernameって呼ぶね。\\e\"\n}\n\n説明\n\n- \\![open,inputbox,コールバック関数名,-1] : inputbox ダイアログを開く Sakura スクリプト\n- reference[0] : ユーザーが入力したテキスト\n- EscapeAllTags : 入力値から Sakura スクリプトタグを除去するセキュリティ処理\n- 敬称選択版では inputted_name に一時保存し、確認後に username へ格納する\n- 保存した名前は %username でセリフ内から参照できる\n\n関連項目\n\n- SAVEVAR(変数の永続化)",
|
|
16451
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/remember-username/"
|
|
16723
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/remember-username/",
|
|
16724
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/remember-username.md"
|
|
16452
16725
|
},
|
|
16453
16726
|
{
|
|
16454
16727
|
"id": "yaya:tips/remove-sakura-tags",
|
|
@@ -16456,7 +16729,8 @@
|
|
|
16456
16729
|
"source": "yaya_docs",
|
|
16457
16730
|
"category": "yaya_tips",
|
|
16458
16731
|
"content": "SAKURAスクリプトタグを取り除く\n\n概要\n\n文字列に含まれるSAKURAスクリプトタグを完全に除去する関数。バージョン4/5互換版とバージョン5専用版の2種類が提供されている。\n\nバージョン4/5互換版\n\nダウンロードファイル(EraseTag1.txt / EraseTag2.txt)としてページに添付されており、コピーして利用する。\n\nバージョン5専用版(正規表現使用)\n\n基本版\n\nRemoveSakuraScript\n{\n _text = RE_REPLACE(_argv[0],'\\\\__{0,2}[a-zA-Z0-9\\*!&-](\\d|\\[(\"([^\"]|\\\\\")+?\"|([^\\]]|\\\\]+?)+?\\])?','')\n _text = REPLACE(_text,'\\\\','\\')\n _text\n}\n\nネガティブ後読みアサーション版(エスケープされたタグを無視)\n\nRemoveSakuraScript\n{\n _text = RE_REPLACE(_argv[0],'(?<!\\\\)\\\\_{0,2}[a-zA-Z0-9\\*!&-](\\d|\\[(\"([^\"]|\\\\\")+?\"|([^\\]]|\\\\]+?)+?\\])?','')\n _text = REPLACE(_text,'\\\\','\\')\n _text\n}\n\n説明\n\n- 引数として文字列を受け取り、SAKURAスクリプトタグを除去した文字列を返す\n- 基本版は「かなりざっくりした」実装と作者が注記している\n- ネガティブ後読みアサーション (?<!\\\\) を使うことで、エスケープされたタグ(\\\\ で始まるもの)を除去対象から外せる\n\n関連項目\n\n- SAKURAスクリプトタグをエスケープする\n- RE_REPLACE",
|
|
16459
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/remove-sakura-tags/"
|
|
16732
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/remove-sakura-tags/",
|
|
16733
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/remove-sakura-tags.md"
|
|
16460
16734
|
},
|
|
16461
16735
|
{
|
|
16462
16736
|
"id": "yaya:tips/replay-last-talk",
|
|
@@ -16464,7 +16738,8 @@
|
|
|
16464
16738
|
"source": "yaya_docs",
|
|
16465
16739
|
"category": "yaya_tips",
|
|
16466
16740
|
"content": "直前の会話をもう一度再生する\n\n概要\n\nゴーストが直前に話した内容をもう一度再生する機能の実装方法を説明します。「文」プラットフォームにはこの機能が組み込まれていないため、辞書側で対応します。\n\n実装手順\n\n1. OnAiTalk関数の変更\n\nもともとOnAiTalkはRandomTalkやChainTalkを呼び出すだけですが、返り値をlastTalk変数に保存するよう変更します。\n\nOnAiTalk {\n lastTalk = RandomTalk\n lastTalk\n}\n\n2. メニューへの追加\n\nOpenMenu関数を変更して、lastTalkが存在する場合にのみ再生オプションを表示します。\n\nif lastTalk != \"\" {\n \"\\q[さっきなんて言ったの?,OnLastTalk]\\n\"\n}\n\n3. OnLastTalk関数の作成\n\n保存した会話を再生する新しい関数を作成します。\n\nOnLastTalk {\n \"\\0\\s[0]えっと‥‥‥\\c/\n%lastTalk\"\n}\n\n説明\n\n- lastTalkはグローバル変数として、直前のトーク内容を保持します\n- メニューに「さっきなんて言ったの?」という選択肢を追加し、lastTalkが空でない場合のみ表示します\n- OnLastTalkが呼ばれると、保存された内容を再度出力します\n\n応用\n\n配列構造を使って複数の過去の会話を保存し、N回前の会話にアクセスできるよう拡張することも可能です。\n\n関連項目\n\n- 選択肢をいきなり独立した関数で書く",
|
|
16467
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/replay-last-talk/"
|
|
16741
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/replay-last-talk/",
|
|
16742
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/replay-last-talk.md"
|
|
16468
16743
|
},
|
|
16469
16744
|
{
|
|
16470
16745
|
"id": "yaya:tips/saori-usage",
|
|
@@ -16472,7 +16747,8 @@
|
|
|
16472
16747
|
"source": "yaya_docs",
|
|
16473
16748
|
"category": "yaya_tips",
|
|
16474
16749
|
"content": "SAORIの使い方\n\n概要\n\nYAYA/03 でSAORI(外部DLL)を使う方法の解説。SAORI-universal(DLL形式)とSAORI-basic(EXE形式)の2種類がある。\n\nSAORI-universal(DLL形式)\n\nFUNCTIONEX() を使って呼び出す。戻り値は2種類:\n\n- Result: FUNCTIONEX() 自体の戻り値\n- Value0, Value1, ...: 実行後に valueex0, valueex1 変数に格納される\n\n基本構文\n\nTest\n{\n _Result = FUNCTIONEX('SAORI\\saori.dll', Argument0, Argument1, ...)\n valueex0\n}\n\n第1引数は yaya.dll からの相対パスで指定する。\n\n実装例(形態素解析)\n\nkisaragi.dll を使った形態素解析の例:\n\nMorphAnalysis\n{\n _text = \"今日はいい天気だ\"\n _Rank = FUNCTIONEX('SAORI\\kisaragi\\kisaragi.dll', 'parse', _text)\n for _i = 0; _i<_Rank; _i++ {\n valueex[_i]+\"\\n\"\n }\n}\n\nSAORI-basic(EXE形式)\n\nコマンドライン引数と標準出力を使うEXEファイル形式。proxy_ex.dll を仲介として使う必要がある。\n\n注意事項\n\n- SAORIはSAKURAスクリプト再生中に呼び出す場合、別途考慮が必要(音声出力などのTipsページを参照)\n\n関連項目\n\n- FUNCTIONEX\n- LOADLIB\n- UNLOADLIB\n- SAORIの使い方(その他)",
|
|
16475
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/saori-usage/"
|
|
16750
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/saori-usage/",
|
|
16751
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/saori-usage.md"
|
|
16476
16752
|
},
|
|
16477
16753
|
{
|
|
16478
16754
|
"id": "yaya:tips/satori-style-random-talk",
|
|
@@ -16480,7 +16756,8 @@
|
|
|
16480
16756
|
"source": "yaya_docs",
|
|
16481
16757
|
"category": "yaya_tips",
|
|
16482
16758
|
"content": "ランダムトークをさとりっぽく\n\n概要\n\nAYA5 辞書内で里々(さとり)風スクリプト構文を使ってランダムトークを実装する方法を説明しています。添付の satori_for_aya.dic を読み込むことで、里々形式のタグが AYA 辞書内で使用できるようになります。\n\n> 「AYA辞書内で里々風スクリプトものを使うことが出来ます。しかしながら、基本的には当然AYAなので」\n\n> 「バグ潰しなんてやってません。動かなかったら、ごめん」(作成者: ちに)\n\n説明\n\n対応タグ\n\n| タグ | 説明 |\n|------|------|\n| (数字) | サーフェス番号の指定 |\n| @ | @テキスト 形式(> と同一処理) |\n| > | >テキスト 形式(@ と同一処理) |\n| _ | 選択肢を生成。(_テキスト) は \\\\_q[テキスト,_テキスト] と同等 |\n\n里々風スクリプトは RandomTalk.Satori 関数内でのみ有効です。\n\n使い方\n\n1. aya_aitalk.dic の OnAiTalk.RandomTalk 部分を OnAiTalk.Satori に置き換える(または追加する)\n2. トーク内容を RandomTalk.Satori 関数内に里々風スクリプトで記述する\n\nテスト方法\n\n「玉」などのツールで動作確認する際の SHIORI/3.0 リクエスト例:\n\nGET SHIORI/3.0\nID: OnAiTalk.Satori\nSender: CallAIMist\nSecurityLevel: local\nCharset: Shift_JIS\n\nコード例\n\n実装コードは添付の satori_for_aya.dic を参照してください。ページ上には直接コードは掲載されていません。",
|
|
16483
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/satori-style-random-talk/"
|
|
16759
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/satori-style-random-talk/",
|
|
16760
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/satori-style-random-talk.md"
|
|
16484
16761
|
},
|
|
16485
16762
|
{
|
|
16486
16763
|
"id": "yaya:tips/shell-free-movement",
|
|
@@ -16488,7 +16765,8 @@
|
|
|
16488
16765
|
"source": "yaya_docs",
|
|
16489
16766
|
"category": "yaya_tips",
|
|
16490
16767
|
"content": "シェルの自由移動\n\n概要\n\nSSP/CROW ベースのシェルをデスクトップ上で自由に移動させる機能の実装方法を説明しています。\n\n> 注意: SSP/CROW でのみ使用できます。Materia では自由移動になりません。\n\nコード例\n\n基本: 起動時に自由移動を有効にする\n\n会話スクリプト内で以下を実行する:\n\n\\0\\1\\_s\\![set,alignmenttodesktop,free]\\_s\n\nOnBoot に組み込む例:\n\nOnBoot\n{\n \"\\0\\s[0]\\1\\s[10]\\0\\1\\_s\\![set,alignmenttodesktop,free]\\_s\"\n _timeslot = GetTimeSlot\n if _timeslot == \"朝\"\n ...\n}\n\n応用: 自由移動と画面下固定の切り替え\n\nFree_movement { \"\\0\\s[0]どうされますか?...\" }\nFree_movement_On { movement = 1; \"\\0\\1\\_s\\![set,alignmenttodesktop,free]\\_s\\e\" }\nFree_movement_Off { movement = 0; \"\\0\\1\\_s\\![set,alignmenttodesktop,bottom]\\_s\\e\" }\n\nmovement_status { CALLBYNAME(\"movement_status%movement\") }\nmovement_status0 { \"\\0\\1\\_s\\![set,alignmenttodesktop,bottom]\\_s\" }\nmovement_status1 { \"\\0\\1\\_s\\![set,alignmenttodesktop,free]\\_s\" }\n\nOnBoot、OnGhostChanged、OnShellChanged などのイベントで %movement_status を呼び出して状態を反映させる:\n\nOnShellChanged { \"\\0\\s[0]%reference0シェルに替わりました...%movement_status\\e\" }\n\n説明\n\n- alignmenttodesktop,free : デスクトップ上を自由に移動できるモード\n- alignmenttodesktop,bottom : 画面下部に固定するモード\n- グローバル変数 movement で現在のモードを管理する(0: 下固定, 1: 自由移動)\n- movement_status 関数はモードに応じたスクリプトを返すヘルパー関数\n\n関連項目\n\n- CALLBYNAME",
|
|
16491
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/shell-free-movement/"
|
|
16768
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/shell-free-movement/",
|
|
16769
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/shell-free-movement.md"
|
|
16492
16770
|
},
|
|
16493
16771
|
{
|
|
16494
16772
|
"id": "yaya:tips/shorthand-writing",
|
|
@@ -16496,7 +16774,8 @@
|
|
|
16496
16774
|
"source": "yaya_docs",
|
|
16497
16775
|
"category": "yaya_tips",
|
|
16498
16776
|
"content": "関数・変数・さくらスクリプトを短縮して書く\n\n概要\n\n#defineや#globaldefineディレクティブを使って、頻繁に使う関数名・変数名・さくらスクリプトの断片を短縮形で書く方法を説明します。\n\nコード例\n\n#define Ref reference\n\nOnGhostChanged\n{\n \"\\0\\s[0]%(Ref[0])さんから交代。\\e\"\n}\n\nこのように#define Ref referenceと書くことで、辞書内でRef[*]と書けばreference[*]として処理されます。\n\n説明\n\nスコープの違い\n\n| ディレクティブ | 有効範囲 |\n|--------------|---------|\n| #define | 次の行からそのファイルの末尾まで |\n| #globaldefine | 以降に読み込まれる全辞書ファイル(yaya.txt/aya.txtの読み込み順) |\n\n処理順序\n\n#defineは#globaldefineよりも先に処理されます。\n\nREPLACEとの違い\n\nOnTranslate内のREPLACE関数は表示直前にさくらスクリプトを変換しますが、#defineは辞書読み込み時に辞書テキスト自体を置換します。目的に応じて使い分けてください。\n\n注意事項\n\n辞書内のすべてのテキストが置換対象になるため、既存のテキストと衝突しない置換文字列を慎重に選ぶ必要があります。\n\n関連項目\n\n- プリプロセス\n- PROCESSGLOBALDEFINE\n- SETGLOBALDEFINE",
|
|
16499
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/shorthand-writing/"
|
|
16777
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/shorthand-writing/",
|
|
16778
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/shorthand-writing.md"
|
|
16500
16779
|
},
|
|
16501
16780
|
{
|
|
16502
16781
|
"id": "yaya:tips/simple-to-generic-array",
|
|
@@ -16504,7 +16783,8 @@
|
|
|
16504
16783
|
"source": "yaya_docs",
|
|
16505
16784
|
"category": "yaya_tips",
|
|
16506
16785
|
"content": "簡易配列→汎用配列の変換\n\n概要\n\nカンマ区切りなどで区切られた簡易配列(デリミタ区切り文字列)を、YAYAの汎用配列(ユニバーサル配列)に変換する方法を説明します。\n\n現在の方法(最新バージョン)\n\nSPLIT関数を使用します。\n\ni = SPLIT(\"Sakura,Seriko,Mayura,Naru\", \",\")\n\nSPLIT関数は単純な区切り文字による分割だけでなく、さまざまな用途に使用できます。詳細はマニュアルを参照してください。\n\n旧来の方法\n\n以前のバージョンではRE_SPLIT関数(正規表現ベース)が使われていました。\n\ni = RE_SPLIT(\"Sakura,Seriko,Mayura,Naru\", \",\")\n\n説明\n\nSPLITとRE_SPLITの主な違い:\n\n| 項目 | SPLIT | RE_SPLIT |\n|------|-------|----------|\n| 正規表現 | 不要 | 必要 |\n| シンプルな分割 | 向いている | 過剰な場合がある |\n| パターンマッチ | 非対応 | 対応 |\n\n単純な区切り文字による分割にはSPLITを使うと簡潔に書けます。複雑なパターンによる分割が必要な場合はRE_SPLITを使用します。\n\n関連項目\n\n- SPLIT\n- RE_SPLIT\n- 配列の要素数を取得",
|
|
16507
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/simple-to-generic-array/"
|
|
16786
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/simple-to-generic-array/",
|
|
16787
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/simple-to-generic-array.md"
|
|
16508
16788
|
},
|
|
16509
16789
|
{
|
|
16510
16790
|
"id": "yaya:tips/surface-value-addition",
|
|
@@ -16512,7 +16792,8 @@
|
|
|
16512
16792
|
"source": "yaya_docs",
|
|
16513
16793
|
"category": "yaya_tips",
|
|
16514
16794
|
"content": "サーフェス値加算\n\n概要\n\nサーフェス番号に値を加算する方法を説明しています。時間帯や服装モードなどの変数に応じてサーフェス番号を動的に変更するために使用します。OnSurfaceChange を使わずにサーフェス切り替えを実現できます。\n\nコード例\n\n方法1: sf 関数(手動でサーフェス命令を埋め込む)\n\n服装モード変数 dressmode の値に応じてサーフェス番号に100単位で加算する例:\n\nsf\n{\n _surface = _argv[0]\n if TOSTRING2(dressmode) == \"\" {\n dressmode = 0\n }\n _surface = _surface + dressmode*100\n \"\\s[%_surface]\"\n}\n\n時間帯に応じてサーフェスを変更する例(23時〜4時はパジャマモード):\n\nsf\n{\n _surface = _argv[0]\n if hour >= 23 || hour =< 4 { _surface += 100 }\n \"\\s[%_surface]\"\n}\n\n方法2: sfcnv 関数(既存スクリプトを自動変換)\n\nOnTranslate を経由して、スクリプト内のすべてのサーフェス参照を自動変換する方法:\n\nsfcnv\n{\n _script = _argv[0];\n _script = REPLACE(_script,\"\\\\\",CHR(1));\n\n _count = RE_GREP(_script,\"\\\\s\\[(\\d+)\\]\");\n _grep = RE_GETSTR;\n foreach _grep;_string {\n _count = RE_GREP(_string,\"\\d+\");\n _surface = TOINT(RE_GETSTR[0]);\n if ((_surface < 10)||(19 < _surface)) {\n _surface += SurfaceMode * 500;\n _script = REPLACE(_script,_string,\"\\s[%(_surface)]\");\n }\n }\n\n _script = REPLACE(_script,CHR(1),\"\\\\\");\n _script;\n}\n\nOnTranslate\n{\n reference0 = sfcnv(reference0);\n reference0\n}\n\n説明\n\n- 方法1 は個別のセリフに %(sf(サーフェス番号)) のように組み込んで使用する\n- 方法2 は OnTranslate を使ってすべてのスクリプトを自動変換するため、既存コードを変更せずに使える\n- sfcnv では \\s[0]〜\\s[19] の範囲は変換せず、それ以外のサーフェスのみ加算する設計になっている\n\n関連項目\n\n- OnTranslate\n- RE_GREP\n- RE_REPLACE\n- REPLACE",
|
|
16515
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/surface-value-addition/"
|
|
16795
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/surface-value-addition/",
|
|
16796
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/surface-value-addition.md"
|
|
16516
16797
|
},
|
|
16517
16798
|
{
|
|
16518
16799
|
"id": "yaya:tips/switch-personality-mid-talk",
|
|
@@ -16520,7 +16801,8 @@
|
|
|
16520
16801
|
"source": "yaya_docs",
|
|
16521
16802
|
"category": "yaya_tips",
|
|
16522
16803
|
"content": "会話の途中で人格を切り替える\n\n概要\n\nゴーストの会話中に、変数によってモード(人格)を管理し、特定の会話トリガーで別のモードへ切り替える実装方法です。例では 0(通常モード)と 1(怒りモード)の 2 段階を設定しています。\n\nコード例\n\nRandomTalk イベントの記述例\n\nOnAiTalk\n{\n\tif ISINTEGER(mode) == 0 { mode = 0 }\n\t_t = CALLBYNAME(\"RandomTalk%mode\")\n}\n\n現在のモード値に応じた対応する会話関数を呼び出します。\n\nモード 0(通常)の会話関数\n\nRandomTalk0\n{\n\t\"\\0\\s[0]こんにちは。\\e\"\n\t\"\\0\\s[0]いい天気ですね。\\e\"\n\t\"\\0\\s[0]怒ったぞー。\\e->mode=1\"\n}\n\nモード 1(怒り)の会話関数\n\nRandomTalk1\n{\n\t\"\\0\\s[7]うるさい!\\e\"\n\t\"\\0\\s[7]話しかけるな!\\e\"\n\t\"\\0\\s[0]許してあげる。\\e->mode=0\"\n}\n\n説明\n\n切り替え方法\n\n会話文の末尾に ->mode=? を記述します(? は切り替え先のモード番号)。\n\n- \"怒ったぞー。\\e->mode=1\" → モード 1 へ変更\n- \"許してあげる。\\e->mode=0\" → モード 0 へ戻す\n\nスクリプトが自動的に末尾の指令を検出してモード値を更新し、会話テキストから削除します。\n\nモードの初期化\n\nISINTEGER(mode) == 0 で変数が未設定かどうかをチェックし、初回は mode = 0 に設定します。\n\n表情の使い分け\n\n各モードで異なる表情インデックス(\\s[0] や \\s[7] など)を使うことで、視覚的にも人格の変化を表現できます。\n\n関連項目\n\n- 多重人格モード\n- CALLBYNAME",
|
|
16523
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/switch-personality-mid-talk/"
|
|
16804
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/switch-personality-mid-talk/",
|
|
16805
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/switch-personality-mid-talk.md"
|
|
16524
16806
|
},
|
|
16525
16807
|
{
|
|
16526
16808
|
"id": "yaya:tips/talk-battler",
|
|
@@ -16528,7 +16810,8 @@
|
|
|
16528
16810
|
"source": "yaya_docs",
|
|
16529
16811
|
"category": "yaya_tips",
|
|
16530
16812
|
"content": "文バトラー\n\n概要\n\nYAYA スクリプトを使用してユーザーとゴーストが一対一でバトルを行うスクリプトの実装例です。そのまま使えるサンプルファイル「AyaBattler.dic」(10.4KB)が添付されています。\n\n作成者: ひと:Couperin\n\nコード例\n\ndamage_value 関数(ダメージ計算)\n\ndamage_value\n{\n\t// ゴースト側の処理\n\tif _argv[0] == 0 {\n\t\t// 弱攻撃: 1~14\n\t\t_dmg = RAND(14) + 1\n\t\t// 中攻撃: 11~22\n\t\t_dmg = RAND(12) + 11\n\t\t// 強攻撃: 21~30\n\t\t_dmg = RAND(10) + 21\n\n\t\t// 体力が20未満なら攻撃力2倍\n\t\tif ghost_hp < 20 {\n\t\t\t_dmg = _dmg * 2\n\t\t}\n\t}\n\t// ユーザー側の処理\n\telse {\n\t\t// 弱攻撃: 1~14\n\t\t_dmg = RAND(14) + 1\n\t\t// 中攻撃: 11~22\n\t\t_dmg = RAND(12) + 11\n\t\t// 強攻撃: 21~30\n\t\t_dmg = RAND(10) + 21\n\n\t\t// 体力が20未満なら攻撃力2倍\n\t\tif user_hp < 20 {\n\t\t\t_dmg = _dmg * 2\n\t\t}\n\t}\n\t_dmg\n}\n\n説明\n\nダメージシステム\n\n3 段階の攻撃力が設定されています。\n\n| 攻撃種別 | ダメージ範囲 |\n|---------|------------|\n| 弱攻撃 | 1〜14 |\n| 中攻撃 | 11〜22 |\n| 強攻撃 | 21〜30 |\n\n特殊メカニクス\n\n体力が 20 未満になると攻撃力が 2 倍になります。ピンチ状態での逆転要素として機能します。\n\nサンプルファイル\n\n添付の「AyaBattler.dic」をそのまま辞書として使用できます。「選択肢をいきなり独立した関数で書く」の手法と組み合わせると、より効果的な実装が可能です。\n\n関連項目\n\n- RAND\n- 選択肢をいきなり独立した関数で書く",
|
|
16531
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/talk-battler/"
|
|
16813
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/talk-battler/",
|
|
16814
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/talk-battler.md"
|
|
16532
16815
|
},
|
|
16533
16816
|
{
|
|
16534
16817
|
"id": "yaya:tips/talk-different-simultaneously",
|
|
@@ -16536,7 +16819,8 @@
|
|
|
16536
16819
|
"source": "yaya_docs",
|
|
16537
16820
|
"category": "yaya_tips",
|
|
16538
16821
|
"content": "同時に違うことを喋る\n\n概要\n\n\\0 と \\1 でキャラクターが同時に異なるセリフを話す方法を解説します。\\_q と \\_w[20] を使った擬似的な方法の代わりとなる、より効率的なソリューションが紹介されています。\n\n方法\n\n方法 1: SAORI を利用する\n\n「parallel」という専用 SAORI を活用する方式です。外部ツールに依存しますが、シンプルに実装できます。\n\n方法 2: スクリプトのみで実装する\n\n添付ファイル「aya_parallel.txt」として提供されているサンプル辞書ファイルを使用します。SAORI に依存せずスクリプトだけで実現します。\n\n方法 3: ぱたぱたさん(簡易的なアプローチ)\n\n「ぱたぱたさん」(Bottle Tool 用のエディタツール)を使う方法です。SSTP Bottle 用特殊スクリプト編集ツールですが、通常のゴースト開発にも活用できます。\n\n説明\n\n通常の \\_s タグは 0 と 1 に同じセリフを話させますが、これらの方法では異なるセリフを同時に話させることができます。\n\n\\_q と \\_w[20] を組み合わせた擬似的な方法でも似た効果を得られますが、タイミングの制御が難しいという問題があります。上記の方法を使うと、より正確に同時発話を制御できます。\n\n関連項目\n\n- SAORI の利用方法",
|
|
16539
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/talk-different-simultaneously/"
|
|
16822
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/talk-different-simultaneously/",
|
|
16823
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/talk-different-simultaneously.md"
|
|
16540
16824
|
},
|
|
16541
16825
|
{
|
|
16542
16826
|
"id": "yaya:tips/talk-truth-lie",
|
|
@@ -16544,7 +16828,8 @@
|
|
|
16544
16828
|
"source": "yaya_docs",
|
|
16545
16829
|
"category": "yaya_tips",
|
|
16546
16830
|
"content": "文のウソ・ホント\n\n概要\n\nYAYA(文)でよくある誤解や思い込み(ウソ)と、実際の動作(ホント)を解説するページです。パフォーマンス最適化に関する誤解を中心に取り上げています。\n\n内容\n\n1. ローカル変数とグローバル変数\n\nウソ: グローバル変数を積極的に使って構わない。\n\nホント: グローバル変数を放置するとそのまま保存されてセーブファイルのサイズが大きくなり、処理速度が低下します。ローカル変数を積極的に活用すべきです。\n\n2. ERASEVAR の頻繁な使用\n\nウソ: ERASEVAR を頻繁に使えばメモリが解放されてパフォーマンスが向上する。\n\nホント: ERASEVAR での頻繁な削除は効果的ではなく、むしろ検索処理により動作が遅くなる可能性があります。ただし「グローバル変数を終了直前に削除すればセーブファイルの肥大化を防げる」という実用的な用途はあります。\n\n3. 配列のパフォーマンス\n\nウソ: 配列は遅いので変数を大量に作った方がいい。\n\nホント: 汎用配列は十分に高速で、変数を大量に作るより効率的な場合もあります。ただし簡易配列は遅いため、IARRAY などの汎用配列の活用が推奨されます。\n\n4. フィードバック演算子の速度\n\nウソ: フィードバック演算子を使えば関数呼び出しが高速化する。\n\nホント: フィードバック演算子の使用は高速化につながらず、むしろ遅くなる可能性があります。\n\n5. if 文の括弧\n\nウソ: if 文の条件式を括弧で囲むと処理が遅くなる。\n\nホント: if 文の条件式を括弧で囲むかどうかは性能に影響しません。括弧は辞書読み込み時に破棄されます。\n\n6. 日本語の関数名・変数名\n\nウソ: 日本語の関数名や変数名は使えない。\n\nホント: 日本語(漢字、ひらがななど)の関数名・変数名は使用可能です。禁止されるのは以下の場合のみです。\n\n- 数字で始まる名前\n- アンダースコアで始まる名前\n- 演算子を含む名前\n\n説明\n\nこれらの情報は現在の実装状態を反映したものであり、将来のバージョンで変わる可能性があります。\n\n関連項目\n\n- IARRAY\n- ERASEVAR",
|
|
16547
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/talk-truth-lie/"
|
|
16831
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/talk-truth-lie/",
|
|
16832
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/talk-truth-lie.md"
|
|
16548
16833
|
},
|
|
16549
16834
|
{
|
|
16550
16835
|
"id": "yaya:tips/tama-error-check",
|
|
@@ -16552,7 +16837,8 @@
|
|
|
16552
16837
|
"source": "yaya_docs",
|
|
16553
16838
|
"category": "yaya_tips",
|
|
16554
16839
|
"content": "玉を使った辞書エラーチェック\n\n概要\n\nYAYAのデバッグツール「玉(tama)」を使って、ゴースト開発中の辞書エラーを検出する方法を説明します。\n\nダウンロード先\n\n- 玉改善プロジェクト: GitHub Releases\n- 旧配布サイト: \"tama (debugger for aya)\"\n\n手順1(基本の方法)\n\n1. ゴーストを起動する前に、まず玉を起動する\n2. ゴーストを起動する → エラーが色付きのテキストで表示される\n3. エラーを確認する\n - オレンジ色:警告(基本動作は可能)\n - 赤色:致命的なエラー(ゴーストが機能しなくなる。要修正)\n\nエラーの表示形式:\nファイル名(行番号) : error E????\n\n手順2(別の方法)\n\n1. 起動中のゴーストをすべて終了する\n2. AYAのDLL(辞書ファイルではなくDLL本体)を玉にドラッグ&ドロップする\n3. 手順1と同じ方法でエラーを確認する\n\n右クリックメニューの機能\n\n| 機能 | 説明 |\n|------|------|\n| 先頭/末尾へジャンプ | ナビゲーションショートカット |\n| クリップボードへコピー | 結果をエクスポート |\n| 受信 | 起動中ゴーストの動作表示のON/OFF切り替え |\n| リロード | DLLを再ドロップせずに編集後の再チェック |\n| 終了 | ツールを閉じる |\n\n関連項目\n\n- 高速化",
|
|
16555
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/tama-error-check/"
|
|
16840
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/tama-error-check/",
|
|
16841
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/tama-error-check.md"
|
|
16556
16842
|
},
|
|
16557
16843
|
{
|
|
16558
16844
|
"id": "yaya:tips/tooltip",
|
|
@@ -16560,7 +16846,8 @@
|
|
|
16560
16846
|
"source": "yaya_docs",
|
|
16561
16847
|
"category": "yaya_tips",
|
|
16562
16848
|
"content": "ツールチップ\n\n概要\n\nWindowsにおいて、マウスポインタの下に適宜表示される小さな説明窓のこと。YAYA/SSP では2種類のツールチップを実装できます。改行には \\n を使用します。\n\nコード例\n\n1. シェルツールチップ(SSP 2.1.58 以降)\n\nシェルキャラクターの上に表示されるツールチップ。ヒット領域ごとにテキストを定義します。\n\nOn_tooltip\n{\n AYATEMPLATE.MouseEventExec('tooltip')\n}\n\ntooltip0Bust\n{\n 'ここにテキスト'\n}\n\ntooltip1Bust\n{\n 'ここにテキスト'\n}\n\nAYATEMPLATE.MouseEventExec\n{\n _fname = _argv[0] + TOSTR(reference[3]) + TOSTR(reference[4])\n if ISFUNC(_fname) {\n EVAL(_fname)\n return\n }\n\n _fname = _argv[0] + TOSTR(reference[3])\n if ISFUNC(_fname) {\n EVAL(_fname)\n return\n }\n}\n\n- tooltip[キャラクター番号][ヒット識別子] : 特定領域のツールチップ\n- tooltip[キャラクター番号] : 未定義領域のデフォルトツールチップ\n\n2. バルーンツールチップ(SSP 2.1.62 以降)\n\nバルーンのメニュー選択肢の上に表示されるツールチップ。\n\n方法A: 選択ID(reference[1])による指定\n\nmenu {\n \"\\1\\s[10]\\0\\s[0]/\n \\q[何か話して,Talking]\\n/\n \\q[自己紹介,Profile]\\n/\n \\q[閉じる,CloseBalloon]\\n/\n \\e\"\n}\n\nOn_balloon_tooltip {\n if ISFUNC( \"BalloonTooltip_%(reference[1])\" ) {\n EVAL( \"BalloonTooltip_%(reference[1])\" )\n }\n}\n\nBalloonTooltip_Talking { \"お話します\" }\nBalloonTooltip_Profile { \"わたしのこと\" }\nBalloonTooltip_CloseBalloon { \"バルーンを閉じます\\n(放置しても閉じます)\" }\n\n方法B: ラベルテキスト(reference[0])による指定\n\nOn_balloon_tooltip {\n if ISFUNC( \"BalloonTooltip_%(reference[0])\" ) {\n EVAL( \"BalloonTooltip_%(reference[0])\" )\n }\n}\n\nBalloonTooltip_何か話して { \"お話します\" }\nBalloonTooltip_自己紹介 { \"わたしのこと\" }\nBalloonTooltip_閉じる { \"バルーンを閉じます\\n(放置しても閉じます)\" }\n\n> 注意: ラベルに !, @, [, ] などの特殊文字が含まれる場合は、文字の除去や全角への変換などのワークアラウンドが必要です。\n\n3. URLのツールチップ表示\n\n選択肢がURLの場合に移動先を表示する応用例:\n\nOn_balloon_tooltip {\n if ISFUNC( \"BalloonTooltip_%(reference[0])\" ) {\n EVAL( \"BalloonTooltip_%(reference[0])\" )\n }\n else {\n if RE_MATCH( reference[0], 'http://.+' ) {\n \"以下のURLをブラウザで開きます\\n%(reference[0])\"\n }\n }\n}\n\n説明\n\n| 種別 | 互換性 | 表示位置 | イベント |\n|------|--------|----------|----------|\n| シェルツールチップ | SSP 2.1.58+ | シェルキャラクターの上 | On_tooltip |\n| バルーンツールチップ | SSP 2.1.62+ | バルーンメニューの上 | On_balloon_tooltip |\n\n関連項目\n\n- ISFUNC\n- EVAL\n- RE_MATCH",
|
|
16563
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/tooltip/"
|
|
16849
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/tooltip/",
|
|
16850
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/tooltip.md"
|
|
16564
16851
|
},
|
|
16565
16852
|
{
|
|
16566
16853
|
"id": "yaya:tips/url-jump-from-anchor",
|
|
@@ -16568,7 +16855,8 @@
|
|
|
16568
16855
|
"source": "yaya_docs",
|
|
16569
16856
|
"category": "yaya_tips",
|
|
16570
16857
|
"content": "アンカータグからURLジャンプ\n\n概要\n\nアンカータグをクリックしたときに、IDが http:// で始まる場合はブラウザでURLを開く機能の実装方法。RSSの記事タイトルをクリックしてURLジャンプする場合などにも使える。\n\nアンカータグの記法\n\n\\_a[URL]表示文字列\\_a/\n\nコード例\n\nOnAnchorSelect / OnAnchorSelectEx\n\nOnAnchorSelect\n{\n _id = reference[0]\n // アンカーのIDの冒頭に「http://~」があればWebサイトを開く\n if RE_MATCH(_id, 'http://.+') {\n _url = AYATEMPLATE.EscapeText(_id)\n \"\\C\\j[%(_url)] \\e\"\n // それ以外はIDと同じ名前のイベントへジャンプ\n } elseif ISFUNC(_id) {\n EVAL(_id)\n }\n}\n\nOnAnchorSelectEx\n{\n _id = reference[1]\n // アンカーのIDの冒頭に「http://~」があればWebサイトを開く\n if RE_MATCH(_id, 'http://.+') {\n _url = AYATEMPLATE.EscapeText(_id)\n \"\\C\\j[%(_url)] \\e\"\n // それ以外はIDと同じ名前のイベントへジャンプ\n } elseif ISFUNC(_id) {\n EVAL(_id)\n }\n}\n\nURLエスケープ用ヘルパー関数\n\nAYATEMPLATE.EscapeText\n{\n _r = _argv[0]\n if RE_SEARCH(_r,'[,\"\\[\\]]') {\n '\"' + REPLACE(_r,'\"','\"\"') + '\"'\n }\n else {\n _r\n }\n}\n\n使用例\n\nsample\n{\n \"\\1\\s[10]\\0\\s[0]/\n YAYAマニュアルを開きます。\\n\\n/\n \\_a[https://yaya-shiori.github.io/yaya-docs/]ここをクリック\\_a/\n \\e\"\n}\n\n説明\n\n- \\C タグを使うとSSP環境ではバルーン表示のままURLジャンプが可能\n- 他のベースウェアではバルーンが空白表示されてからジャンプする\n- ツールチップと組み合わせることで、クリック前にジャンプ先URLをユーザーに表示できる\n\n関連項目\n\n- RE_MATCH\n- ISFUNC\n- EVAL",
|
|
16571
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/url-jump-from-anchor/"
|
|
16858
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/url-jump-from-anchor/",
|
|
16859
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/url-jump-from-anchor.md"
|
|
16572
16860
|
},
|
|
16573
16861
|
{
|
|
16574
16862
|
"id": "yaya:tips/vary-boot-talk-by-absence",
|
|
@@ -16576,7 +16864,8 @@
|
|
|
16576
16864
|
"source": "yaya_docs",
|
|
16577
16865
|
"category": "yaya_tips",
|
|
16578
16866
|
"content": "起動してなかった時間により起動トークを変える\n\n概要\n\nゴーストが終了していた時間の長さに応じて、起動時のトークを変える実装方法を説明します。GETSECCOUNT()を使って終了時と起動時の時刻を記録・比較することで、文脈に応じた反応が可能になります。\n\nコード例\n\n終了時のタイムスタンプ保存\n\nOnGhostUnload {\n LastCloseSecCount = GETSECCOUNT()\n}\n\n起動時のトーク分岐\n\nOnBoot {\n _elapsed = GETSECCOUNT() - LastCloseSecCount\n _days = _elapsed / (60 * 60 * 24)\n\n if _elapsed < 60 * 10 {\n // 10分未満\n \"\\0\\s[0]あれ、もう戻ってきたの?\\e\"\n }\n elseif _days >= 7 {\n // 7日以上\n \"\\0\\s[0]%(_days)日ぶりだね!久しぶり!\\e\"\n }\n else {\n // 通常\n \"\\0\\s[0]おかえり。\\e\"\n }\n}\n\n説明\n\n実装のポイント:\n\n| 処理 | 内容 |\n|------|------|\n| GETSECCOUNT() | 現在のシステム時刻を秒数として取得 |\n| LastCloseSecCount | 終了時のタイムスタンプを保存するグローバル変数 |\n| _elapsed | 経過秒数 |\n| _days | 経過日数(秒数 ÷ 86400) |\n\n経過時間を条件として分岐させることで、短時間の離席と長期間の不在で異なるトークを実現できます。7日以上の不在では具体的な日数を表示するなど、より個性的な演出が可能です。\n\n関連項目\n\n- GETSECCOUNT\n- GETTIME",
|
|
16579
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/vary-boot-talk-by-absence/"
|
|
16867
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/vary-boot-talk-by-absence/",
|
|
16868
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/vary-boot-talk-by-absence.md"
|
|
16580
16869
|
},
|
|
16581
16870
|
{
|
|
16582
16871
|
"id": "yaya:tips/xaoric-rss",
|
|
@@ -16584,7 +16873,8 @@
|
|
|
16584
16873
|
"source": "yaya_docs",
|
|
16585
16874
|
"category": "yaya_tips",
|
|
16586
16875
|
"content": "xaoric.dllを使ったRSS読み取り\n\n概要\n\nxaoric.dll はXMLパースライブラリで、RSSファイルの解析に利用できる。\n\n> 注意: SSP 2.4.11以降では [execute,rss-get] コマンドが標準サポートされたため、このライブラリの使用は必須ではなくなっている。\n\n処理の流れ\n\n1. [execute,http-get] でリモートのRSSファイルをHTTPダウンロード\n2. ローカルの var フォルダに一時保存\n3. xaoric.dll の open・get・close 関数でXMLノードを抽出\n4. SPLIT() で複数項目を配列変数に変換\n\n実装例\n\nニコニコ動画の「ゲーム実況」タグ検索結果を新着順に取得するコード例が紹介されている。取得する情報:\n\n- 動画タイトル(配列変数に格納)\n- URL(配列変数に格納)\n- 投稿日時(配列変数に格納)\n- 説明文(配列変数に格納)\n\n推奨事項\n\nサーバー負荷を軽減するため、リクエスト頻度を制限すること。例:「1時間に1回のみ実行」。\n\n関連項目\n\n- SAORIの使い方\n- FUNCTIONEX\n- SPLIT",
|
|
16587
|
-
"url": "https://yaya-shiori.github.io/yaya-docs/tips/xaoric-rss/"
|
|
16876
|
+
"url": "https://yaya-shiori.github.io/yaya-docs/tips/xaoric-rss/",
|
|
16877
|
+
"rawUrl": "https://raw.githubusercontent.com/YAYA-shiori/yaya-docs/refs/heads/main/tips/xaoric-rss.md"
|
|
16588
16878
|
},
|
|
16589
16879
|
{
|
|
16590
16880
|
"id": "satori:特殊記号一覧#b8d31e89",
|
|
@@ -22632,7 +22922,8 @@
|
|
|
22632
22922
|
"source": "aosora_wiki",
|
|
22633
22923
|
"category": "aosora_general",
|
|
22634
22924
|
"content": "はじめに\nこれは伺かゴースト用のSHIORI「蒼空」(aosora, aosora-shiori)の説明ドキュメントです。 \n初めての場合は、別冊のチュートリアルからはじめるか、順を追って読んでいくといいでしょう。\n\nある程度プログラミング言語に親しみのある方は、気になったところから読んでいっても十分理解できると思います。\n\nどんなSHIORIなの?\n蒼空は、処理とトークの両方をかんたんに書けることを目指したSHIORIです。 \n処理向けの関数ブロック記法とトーク向けのトークブロック記法が存在していて、相互に呼び出しあうことでそれぞれの利点を生かしたゴースト開発ができます。\n\n使うツールは?\nゴーストを起動できる環境があれば、あとはテキストエディタがあれば開発できます。 \nおすすめは VisualStudio Code です。\n[[VSCode拡張|14_VisualStudio_Code拡張]]があるので、便利に開発できます。 \nもちろん、好きなテキストエディタがあればそれを選んでも構いません。\n\n加筆のご協力のお願い\n一人で理解できるドキュメントをまとめるのはとても大変なので、編集してくださる方はぜひご協力をお願いします。",
|
|
22635
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/01_%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB"
|
|
22925
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/01_%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB",
|
|
22926
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/01_%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB.md"
|
|
22636
22927
|
},
|
|
22637
22928
|
{
|
|
22638
22929
|
"id": "aosora:02_最低限必要なファイル",
|
|
@@ -22640,7 +22931,8 @@
|
|
|
22640
22931
|
"source": "aosora_wiki",
|
|
22641
22932
|
"category": "aosora_general",
|
|
22642
22933
|
"content": "最低限必要なファイル\n\n蒼空を起動するために必要なファイル、設定群です。 \nこれらは、ghost/master以下に配置します。これ以外に、ゴーストのための descript.txt などはほかのSHIORI同様に用意します。\n\naosora.dll\n\nSHIORI本体のファイルです。 \nsatori.dll などと同じ立ち位置のファイルです。dllを配置したうえで、ゴーストのdescript.txt でSHIORIとして使用するように設定します。\n\ngithubのReleaseページから、最新版をもってくるといいです。\n\nghost.asproj\n\n蒼空の設定ファイルです。aosora.dllと同じフォルダに、この名前で配置します。 \n読み込むスクリプトファイルの相対パスを1行に1つ書くほか、設定を記載します。\n\n例 main.as を読み込む場合: \nmain.as\n\n読み込むスクリプトはここに書かれていないと、ghost/masterにスクリプトファイルがあっても読み込まれないため注意してください。 \n逆に、ネットワーク更新で ghost.asproj を更新して使用するファイルを変更すれば、ベースウェア側で delete.txt 設定によってスクリプトファイルを削除しなくてもゴーストに読み込まれないようにできます。\n\nこのドキュメントのスクリプトを実際に使う場合は、次のように任意のスクリプトファイルの名前を ghost.asproj に書いたうえで、そのスクリプトファイルにドキュメントの内容を書いてゴーストを起動します。\n\nデバッグ用設定をかきこむための debug.asproj もあれば読み込まれます。 \n詳しくは「[[プロジェクトファイル設定|10_プロジェクトファイル設定]]」の項目をご覧ください。\n\nスクリプトファイル\nゴーストの処理やトーク内容を書くファイルです。ほかのSHIORIでは辞書ファイルとよばれることがあります。\n\nghost.asproj で指定されていれば拡張子は問いませんが、エディタの拡張機能を使うために *.as の形にすることを推奨しています。 \n文字コードはUTF-8にする必要があります。\n\n実際に蒼空で書ける内容は各章で紹介しています。\n\n記述例\ntalk OnBoot {\n \\s[0]こんにちは!\n}\nこのように書くと、OnBoot(起動時)でゴーストが喋ります。",
|
|
22643
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/02_%E6%9C%80%E4%BD%8E%E9%99%90%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB"
|
|
22934
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/02_%E6%9C%80%E4%BD%8E%E9%99%90%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB",
|
|
22935
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/02_%E6%9C%80%E4%BD%8E%E9%99%90%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB.md"
|
|
22644
22936
|
},
|
|
22645
22937
|
{
|
|
22646
22938
|
"id": "aosora:03_スクリプトの書き方",
|
|
@@ -22648,7 +22940,8 @@
|
|
|
22648
22940
|
"source": "aosora_wiki",
|
|
22649
22941
|
"category": "aosora_grammar",
|
|
22650
22942
|
"content": "スクリプトの書き方\nスクリプトは、プログラミング言語的な関数の記法と、里々的なトークの記法とをそれぞれ同じファイルで書けるようにしています。 \nそのため、それぞれ functionからはじめる関数ブロック、 talkから始めるトークブロックとして区切って、その中でそれぞれの記法をつかう形になっています。\n\nざっくりと、 \ntalk トーク名 {\n ここにトーク\n}\n\nfunction 関数名 {\n ここに処理\n} \n...こういう感じです。\n\nもう少し具体的に、こんな感じです。\n* トークブロックでは喋らせる内容をそのまま書くことができます。\n* 関数ブロックでは処理を書くことができます。\n * 関数ブロックでは一部例外を除いて文末にセミコロンをつけます。\n* いずれもSHIORI Eventが発生したときには一致する名前のものが呼び出され、結果をベースウェアに返します。\ntalk OnMouseDoubleClick {\n \\s[0]つつかれたよー。\n つつくなよー。\n}\n\nfunction OnBoot {\n local colors = [\"赤\", \"青\", \"緑\"];\n local lucky = Random.Select(colors);\n return \"\\0\\s[0]こんにちは!\\n今日のラッキーカラーは{lucky}だよ!\";\n}\n\nそれぞれの詳しい説明は、各章をごらんください。",
|
|
22651
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/03_%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9"
|
|
22943
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/03_%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9",
|
|
22944
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/03_%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9.md"
|
|
22652
22945
|
},
|
|
22653
22946
|
{
|
|
22654
22947
|
"id": "aosora:04_00_関数ブロック",
|
|
@@ -22656,7 +22949,8 @@
|
|
|
22656
22949
|
"source": "aosora_wiki",
|
|
22657
22950
|
"category": "aosora_grammar",
|
|
22658
22951
|
"content": "関数(function)ブロック\n\n関数ブロックでは、一般的なスクリプトのようにプログラムコードを書くためのブロックです。関数定義内部のほか、スクリプトの一番外側のブロックが関数ブロックとして扱われます。\n\n// ここは関数ブロック\n\nfunction OnBoot {\n\t// ここも関数ブロック\n}\n\ntalk {\n\tここはトークブロック\n}\n\nコメント\nコメントはスクリプトに好きなようにメモを書くための記法です。存在する処理を一時的に無効化しておくためにも使えます。\n\nコメントは // で行コメント、 /* */ で範囲コメントです。 \nC#やJavascriptと同じと考えていいと思います。多分。関数ブロック専用なのでトークブロックでは使えません。\n\n// つつかれたときの処理\nfunction OnMouseDoubleClick {\n\t/* あとで処理をつくっておくこと */\n\t// return \"\";\n}",
|
|
22659
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_00_%E9%96%A2%E6%95%B0%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF"
|
|
22952
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_00_%E9%96%A2%E6%95%B0%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF",
|
|
22953
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/04_00_%E9%96%A2%E6%95%B0%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF.md"
|
|
22660
22954
|
},
|
|
22661
22955
|
{
|
|
22662
22956
|
"id": "aosora:04_01_関数を書く",
|
|
@@ -22664,7 +22958,8 @@
|
|
|
22664
22958
|
"source": "aosora_wiki",
|
|
22665
22959
|
"category": "aosora_grammar",
|
|
22666
22960
|
"content": "関数を書く\n関数とは、一連の処理を書けるものです。書いた処理は別な関数から使えますし、SHIORI Eventによって呼び出されることもあります。\n\nこれはあたらしい関数を用意する記法です。 \nこの記法で関数を用意することで、同名のSHIORI Eventが発生したときに呼び出され、戻り値(return 文で指定した値)をレスポンスとして返します。\n\n試してみましょう。\n// ゴースト起動時にトークする\nfunction OnBoot {\n return \"\\0\\s[0]Hello!\";\n}\n通常、この記法はスクリプトファイルのもっとも外側(別のfunctionの中ではない場所)で書くようにします。 \nそうすることで広く呼び出せるユニット変数として関数が作られます。\n\n関数内で書いた場合、その関数内でだけ使えるローカル変数として関数が用意されます。もし、関数内で何度も使う処理を用意したい場合があれば使うことは可能です。\n// 引数をとらない関数\nfunction OnBoot {\n return \"\\0\\s[0]Hello!\";\n}\n\n// 引数をとる関数\nfunction HelloWorld(name) {\n return \"\\0\\s[0]Hello, \" + name + \"!\";\n}\n \n// 呼び出し条件付き関数\nfunction HelloWorld if(Time.GetNowHour() > 16) {\n return \"\\0\\s[0]Good evening, World!\";\n}\n\nまず関数ということを示すために function を書き、次に関数名、仮引数リスト、呼び出し条件が続きます。最後に中括弧 { } で関数全体をくくります。\n\n* 関数名はカンマ区切りで複数の名前を指定できます。\n * 例: function OnBoot, OnGhostChanged() { }\n* 完全な動的型付けのため、仮引数リストには名前だけをつけます。\n * 例: function Func(arg1) { }\n* 引数はカンマ区切りで複数渡せます。\n * 例: function Func(arg1,arg2) { }\n* 引数がない場合は仮引数リスト全体を省略できます。\n * 例: function OnBoot { }\n* 仮引数リストの位置のあとに if(…) で呼び出し条件を指定できます。\n * 例: function OnBoot if(Time.GetNowHour() > 16 ) { }\n * 制御文としての if ブロックと似ていますが、動作は全く違います。たとえば、elseブロックを書くことはできません。\n* function を talk に置き換えることで、トーク定義になります。トークは文字列を返す関数として扱われるので呼び出し方や定義の仕方は同じです。詳しくはトークブロックの章をよんでみてください。\n\n引数\n引数というのは、関数にデータを渡す方法の1つです。 \nこのように書くと、Testの呼び出しで渡した 10 が Test関数内では arg1 に入ります。\n\n* 関数側に用意された引数よりも少ない引数で関数を呼び出した場合、足りないところにはnullが渡されます。\n* 関数側に用意された引数よりも多い引数で関数を呼び出した場合、多すぎる部分は無視されます。\nfunction Test(arg1, arg2){\n //何かする\n}\n\nTest(10, 20);\n\nランダムオーバーロード\n蒼空では同じ関数名(トーク名)を複数用意することができます。これをオーバーロードといいます。 \n同じ名前のなかからランダムで1つが呼び出されます。同じ名前同士では重複回避が働くので、1周するまで同じ関数は呼び出されません。",
|
|
22667
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_01_%E9%96%A2%E6%95%B0%E3%82%92%E6%9B%B8%E3%81%8F"
|
|
22961
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_01_%E9%96%A2%E6%95%B0%E3%82%92%E6%9B%B8%E3%81%8F",
|
|
22962
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/04_01_%E9%96%A2%E6%95%B0%E3%82%92%E6%9B%B8%E3%81%8F.md"
|
|
22668
22963
|
},
|
|
22669
22964
|
{
|
|
22670
22965
|
"id": "aosora:04_02_リテラル",
|
|
@@ -22672,7 +22967,8 @@
|
|
|
22672
22967
|
"source": "aosora_wiki",
|
|
22673
22968
|
"category": "aosora_grammar",
|
|
22674
22969
|
"content": "リテラル\n3, \"item\", 1.9, true などは、ある決まった値を示す「リテラル」とプログラミング的には言います。\n\n蒼空で使えるリテラルは次の通りです。\n数値\n8, 1.6 など、直接スクリプト上に数値を書き込んで計算に使えます。 \n蒼空では整数と小数点数に明確な区別はありません。1を2で割ると0.5です。1と1.0は同じ意味です。\nfunction Test {\n // 自由に計算できます\n local v = 1.2 + 1.8;\n return v + 15;\n}\n文字列\n文字列は\" \"で囲んだ任意の内容です。\n\n文字列への埋め込み\n文字列内に { }で囲んだ式を書くと、計算結果が文字列内に埋め込まれます。 \nトークブロック内でも同じように埋め込みを使えます。\nlocal a = 123;\nlocal str = \"数値は{a + 27}\"; // 数値は150\n\nブロックの埋め込み\nパーセントつきの中括弧 %{ } で囲むと、文字列内にコードブロックを入れることができます。ただし、こちらは結果を返しても文字列化はされません。主にトークブロック内で処理を行いたいときに使用します。\ntalk Talk {\n %{\n local a = 1234;\n }\n 今月のお小遣いは{a}円だよ!\n}\n\n生文字列\n' 'で囲んだ範囲の文字列は、埋め込みを行いません。\n\nエスケープ\nプログラミング言語によっては\\をエスケープ文字として特殊な効果をもつようにしたものがありますが、蒼空ではさくらスクリプトとして使うためエスケープの効果が無いです。 \nエスケープ文字自体が存在していません。\n\nバッククォート\n` ` は \" \"と同じ機能をもつ代替です。 \nエスケープ文字がないので、どちらかでかこんだ中でどちらかを使いたい場合はもう片方を使うようにします。\n\n真偽値\nそうかそうでないか、yesかnoか、ありかなしか、などの2つを示すのがtrueとfalseです。\nif文などの分岐でよく使います。\n\nnull\n値が無いことを示します。たとえばlocal文でローカル変数をつくっても中に何もいれていなければ、このnullが入っていることになります。",
|
|
22675
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_02_%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB"
|
|
22970
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_02_%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB",
|
|
22971
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/04_02_%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB.md"
|
|
22676
22972
|
},
|
|
22677
22973
|
{
|
|
22678
22974
|
"id": "aosora:04_03_シンボル名とキーワード",
|
|
@@ -22680,7 +22976,8 @@
|
|
|
22680
22976
|
"source": "aosora_wiki",
|
|
22681
22977
|
"category": "aosora_grammar",
|
|
22682
22978
|
"content": "シンボル名とキーワード\nシンボル名とは、変数や関数など、スクリプトを書くときに使える名前のことです。\nキーワードは local や if など、蒼空が使うと決めている特別な単語で、これらと同じシンボル名はつかえません。\n\nシンボル名に使用可能な文字\n* 半角英数(ただし数値から開始は不可)\n* _ @\n* その他日本語などマルチバイト文字\n\n_と@以外の殆どのASCII記号類を明示的に使用不可としている形です。\n\nキーワードはプログラム的に認識されるワードなので、同じ名前のシンボルは使えません。予約オブジェクトはあらかじめ存在するグローバル変数といえます。こちらも上書きしてはいけません。(メンバは操作可能)\n\nキーワード\n\n実際には動作しないものや、使用できてしまうものもありますが、現在はこれらをキーワードとして予約しています。色々変わるかもしれません。\ntalk function word for while if else break continue\nreturn local const true false try catch finally throw class member\ninit new print",
|
|
22683
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_03_%E3%82%B7%E3%83%B3%E3%83%9C%E3%83%AB%E5%90%8D%E3%81%A8%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89"
|
|
22979
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_03_%E3%82%B7%E3%83%B3%E3%83%9C%E3%83%AB%E5%90%8D%E3%81%A8%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89",
|
|
22980
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/04_03_%E3%82%B7%E3%83%B3%E3%83%9C%E3%83%AB%E5%90%8D%E3%81%A8%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89.md"
|
|
22684
22981
|
},
|
|
22685
22982
|
{
|
|
22686
22983
|
"id": "aosora:04_04_変数",
|
|
@@ -22688,7 +22985,8 @@
|
|
|
22688
22985
|
"source": "aosora_wiki",
|
|
22689
22986
|
"category": "aosora_grammar",
|
|
22690
22987
|
"content": "変数\n関数ブロックでは変数を宣言(用意)して使うことができます。 \n変数は、計算途中の数値や文字列を置いておくのに使えます。\n\nローカル変数\nlocal から始まる文はローカル変数宣言文です。 \nローカル変数は、その処理でだけ使うものに使います。ほかの関数などと名前がかぶっても良いので、こまりにくいです。\n\n代入式はなくてもいいですが、その場合は null を代入したことにされます。\nlocal name = 10.0;\n\nローカル変数のスコープ\n変数はブロックスコープといって、宣言したブロックでだけ使うことができます。\nこれによって関係ない場所同士のローカル変数は内容が被らないので名前被りにこまりにくいです。\n\n変数はデータのいれものであって数字自体ではないので、return などでスコープ外に値を渡しても値がつかえなくなるわけではないです。\n\nif(a) {\n local b = 10;\n}\n\n// ここには b は無い\n\nif(c) {\n local b = 20; // 上の b とは別物。\n return b;\n}\n\nスコープは関数をまたいで有効なので、そのファイルでしか使わない変数があれば一番外側のスコープでローカル変数を用意することもできます。\n\nlocal test = \"test\";\n\nfunction Test {\n return test;\n}\n\nユニット変数\nlocal 指定していない名前の変数に内容を書き込むと、ユニット変数というものとして扱われます。 \nユニットについては後の章で説明しますが、グローバル変数といわれるものに近く、好きなところからアクセスできます。\n\nA = 123;\n\nfunction Test {\n return A; // ユニット変数の A をつかう\n}",
|
|
22691
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_04_%E5%A4%89%E6%95%B0"
|
|
22988
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_04_%E5%A4%89%E6%95%B0",
|
|
22989
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/04_04_%E5%A4%89%E6%95%B0.md"
|
|
22692
22990
|
},
|
|
22693
22991
|
{
|
|
22694
22992
|
"id": "aosora:04_05_式と計算",
|
|
@@ -22696,7 +22994,8 @@
|
|
|
22696
22994
|
"source": "aosora_wiki",
|
|
22697
22995
|
"category": "aosora_grammar",
|
|
22698
22996
|
"content": "式と計算\n「式」は蒼空のいろんなところで使うことができます。ほとんど全部です。 \nリテラルをかけるところは全部式が使えますし、リテラル自体が式とも言えます。\n\n一番シンプルな式の使いどころは変数でしょうか。\nlocal a = 式;\n式を使って計算できます。計算しなくても式です。\nlocal a = 30; // 式\nlocal b = 12 + 18 + a; // 式\n\n四則演算\n数値同士を足したり引いたりします。足し算だけは文字列同士をくっつけるのにも使います。\n足し算 +\n * 値同士を足します。\n * 数値同士は数値として足し算します。\n * 文字列同士は文字列をくっつけます。片方が文字列ならもう片方を文字列に変換してくっつけます。\n\n引き算 -, 掛け算 *, 割り算 /, 剰余 %\n * 数値同士はそれぞれ計算します。それ以外は存在しえない数値という意味の NaN という特殊な数値が返されます。\n\n関係演算子 ==, !=, >, <, >=, <=\n左右2値を比較して成立する場合に true, しない場合に false になります。\nif文やループの条件としてよく使います。\n* == 等しい場合\n* != 等しくない場合\n* \\> 左の方が大きい場合\n* \\< 右のほうが大きい場合\n* \\>= 左のほうが大きいか、右と等しい場合\n* \\<= 右の方が大きいか、左と等しい場合\n\n論理演算子 &&,||,!\nand条件、or条件と、true/falseの反転です。\n\nオブジェクトメンバ演算子 .\n * Obj.Key の形で連想配列などのオブジェクトの中身を参照します。\n * キーに数値を使う場合は対応してないのでインデックス参照のほうを使います。\nインデックス参照 [ ]\n * Obj[\"Key\"] の形で連想配列などのオブジェクトの中身を参照します。\n\n計算順序指定\nカッコ ( ) による計算順序の指定もできます。\nlocal a = 2 + 3 * 2; // 8\nlocal b = (2 + 3) * 2; // 10\n\n関数呼び出し式\n* 関数に続けて()で関数を呼び出せます。\n* ()の中に,区切りで引数を書いて渡せます。\n* 必ずしも式は、「何かに結果を渡す」必要はないので、単体でつかってもいいです。\nfunction TestFunc1 {\n return \"a\";\n}\n\nfunction TestFunc2(v) {\n return v + 9;\n}\n\nfunction OnBoot {\n local result1 = TestFunc1();\n local result2 = TestFunc2(15);\n TestFunc1();\n\n return \"\\0\\s[0]{result1} と {result2}\";\n}\n\nnull合体演算子\n?? は null合体演算子といいます。a ?? b の式の場合、aがnullでなければaを、aがnullならbを結果として返します。 \na が null でなかった場合はその時点で結果が決まるため、bは評価しません。\n\n値がnullだった場合に限り、別の値を割り当てたいときに使えます。\nlocal A = null;\nlocal B = \"test\";\n\nlocal a = A ?? B; // \"test\"\n\n??= は += のように代入をかねた式です。 \n現在値がnullであれば右の値を、現在値がnullでなければ現在値を再代入します。 \n\n連想配列初期化式 { }\n{ } でくくった中を、「名前:値」の記法で記述したものが連想配列の初期化式です。\nカンマ区切りで複数記入できます。\n名前はシンボル名のみが使用できますが、値には各種の式を使うこともできます。\nlocal a = {\n b: 12,\n c: \"12345\"\n};\n\nif文などと似ていますがコードブロックではなく式の1つなので中括弧 { } で終わる場合でもセミコロン ; が必要です。\n\n線形配列初期化式 [ ]\n[ ]でくくった中をカンマ区切りで値を列挙できます。順番に、0から始まる内容の配列がつくられます。\nlocal a = [0,1,2,3,4,5];\nバージョン demo4 以前はインデックスをキーにした連想配列を生成していましたが、線形配列オブジェクトを生成するようになりました。添字 [ index ] で要素を取得できるほか、「組み込みオブジェクト」の欄に使用できるメソッドを挙げています。\n\n関数式 function\nfunctionから始まる関数初期化式は、関数オブジェクトを返します。関数式も{ } で終わりますが、式の一部なので中括弧で終わってもセミコロンが必要です。\nlocal a = function(){ return 1; };\na();\n関数式は関数を作るという意味では同じですが、違いもあります。関数式は関数そのものを作りますが、関数定義は関数の集合オブジェクトに関数を追加します。そのため関数式は関数名や、呼び出し条件部がありません。\n\n関数式の省略記法\n仮引数リストを | | で囲む形で、 function() の代わりにできる省略記法です。中身に式1つしかない場合、returnも省略できます。\nlocal a = || { 1; };\na();\n \nlocal b = |n| { \"1234\" + n; }\nb(\"5678\");",
|
|
22699
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_05_%E5%BC%8F%E3%81%A8%E8%A8%88%E7%AE%97"
|
|
22997
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_05_%E5%BC%8F%E3%81%A8%E8%A8%88%E7%AE%97",
|
|
22998
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/04_05_%E5%BC%8F%E3%81%A8%E8%A8%88%E7%AE%97.md"
|
|
22700
22999
|
},
|
|
22701
23000
|
{
|
|
22702
23001
|
"id": "aosora:04_06_制御文",
|
|
@@ -22704,7 +23003,8 @@
|
|
|
22704
23003
|
"source": "aosora_wiki",
|
|
22705
23004
|
"category": "aosora_grammar",
|
|
22706
23005
|
"content": "制御文\n制御文は、関数ブロックで使うループや分岐などの構造です。\n\nif、else\n\n条件分岐を設定できます。 \n式がtrue(正)だった場合はifブロックに、false(否定)だった場合はelseブロックにすすみます。\nlocal a = 19;\nlocal b = 29;\n\nif( a == 10 )\n a += 5;\n \nif(a < b){\n return a;\n}\nelse {\n return b;\n}\n* 条件部はかならず括弧 ( ) でくくります。\n* if, else の後は中括弧 { } によるコードブロックか、単体の文であれば中括弧を省略してそのまま記載できます。\n* if - else if - else の多段分岐がつかえます。\n\ntrue か false か\n== などの比較・関係演算子を使った場合や、true か false を返す関数呼び出しを式につかった場合はそれに従って分岐しますが、if にはすべての値を入力することができます。値によってtrue/falseが決まるので、知っておいてください。\n\n* false 扱いされるもの\n * null\n * 数値の 0\n * 数値の 0.0, 0.00 も同じですが、文字列の \"0\" \"0.0\" は true と評価されることに注意してください\n * 空の文字列 \"\"\n * 空白ではなく、1文字もないものだけです。\n* true 扱いされるもの\n * false 扱いされるもの以外全部\n\nfor\n\n範囲ループの作成に便利なforループ文です。\n// 数値の合計を示す例\nlocal result = 0;\nfor(local i = 0; i < 10; i++){\n result += i;\n}\n\nforのカッコの中に、初期化式、条件式、インクリメント式の3つをセミコロン ; で区切る形で記入します。初期化式には例外として local 文も使えます。\n\n1. 初期化式を実行します\n2. 条件式を実行します\n3. 条件式の結果が false として評価されたらforの処理は終了、つぎの文へすすみます。\n4. for文の本文ブロックを実行します\n5. インクリメント式を実行します\n6. 2に戻り、再度条件式を評価します\n\nwhile\n\nwhileは一般的な条件付きループを実装します。 \n文を処理しようとするたびに、条件部を評価して、trueである限り何度でも実行します。falseになると次に進みます。\nlocal a = 0;\n// while の基本例: 条件が true の間ループが実行されます。\n// ここでは a < 3 にして実行される例にしています。\nwhile(a < 3) {\n a += 3;\n}\n\nforeach\n配列・連想配列ループのための新機能です。 \nforeach(local 変数名 in 対象) { } の形式で書くと、対象の配列の要素の中身を変数に代入して配列の要素ぶんループします。 \n\nforeach は、いまのところ配列と連想配列にだけ使うことができます。 \n連想配列に使った場合、内容の追加順とループ順が一致するとは限りません。\n\nlocal items = [1,2,3];\nlocal result = 0;\nforeach(local a in items) {\n result += a;\n}\n\nカンマで2つ目の変数名を指定すると、2つ目の変数には配列のインデックス・連想配列のキーが格納されます。 \nキーだけがほしい場合でも1つ目は省略できないので、適当に何かを指定して下さい。\nlocal items = [1,2,3];\nlocal result = 0;\nforeach(local value, key in items) {\n result += value;\n}\n\n* local キーワードを省略した場合、外側スコープの変数に書き込まれます。\n* foreachでループさせている対象は、その間要素数が変動する操作をすることができません。\n * 操作を行おうとするとエラーが発生します。\n\n \n\nbreak\n\n実行中のループを1つ離脱します。\nwhile(true) {\n\n //ループを離脱\n break;\n\n //ここは実行されない\n\n}\ncontinue\n\n実行中のループを1つ、次の周回にすすめます。\nfor(local i = 0; i < 10; i++ ){\n\n if(i < 5){\n continue;\n }\n\n //continueを実行した場合はここは実行されない\n}\nreturn\n\nreturn文は、関数に戻り値をつけたり途中で終了したりするときに使います。\nfunction Func {\n return 2;\n}",
|
|
22707
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_06_%E5%88%B6%E5%BE%A1%E6%96%87"
|
|
23006
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/04_06_%E5%88%B6%E5%BE%A1%E6%96%87",
|
|
23007
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/04_06_%E5%88%B6%E5%BE%A1%E6%96%87.md"
|
|
22708
23008
|
},
|
|
22709
23009
|
{
|
|
22710
23010
|
"id": "aosora:05_00_トークブロック",
|
|
@@ -22712,7 +23012,8 @@
|
|
|
22712
23012
|
"source": "aosora_wiki",
|
|
22713
23013
|
"category": "aosora_grammar",
|
|
22714
23014
|
"content": "トーク(talk)ブロック\nトークブロックはトーク本文を書くのに適した記法構造です。 \nトークブロックでは関数ブロックと異なる記法を使用しているため、分けて考える必要があります。\n\n起動時のトークを書こうとすると、関数を使う場合このように書きます。\nfunction OnBoot {\n return \"\\0\\s[0]おはよう!\";\n}\n\n一般的なプログラミング言語で文字列を返そうとすると、だいたいこうなりますが、ゴースト開発ではちょっと使いづらいのでトークを書くのに適した専用の記法を用意しました。\n\n里々というSHIORIを参考にしているので、里々のわかる方は扱いやすいかもしれません。\n\ntalk OnBoot {\n \\s[0]おはよう!\n}\n\n* talk から書き始めて、名前などはfunction と同じように書きます。\n * function 同様に引数や呼び出し条件が使えます。\n* トークブロック専用の記法もあるので、次のページ以降で紹介します。",
|
|
22715
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/05_00_%E3%83%88%E3%83%BC%E3%82%AF%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF"
|
|
23015
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/05_00_%E3%83%88%E3%83%BC%E3%82%AF%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF",
|
|
23016
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/05_00_%E3%83%88%E3%83%BC%E3%82%AF%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF.md"
|
|
22716
23017
|
},
|
|
22717
23018
|
{
|
|
22718
23019
|
"id": "aosora:05_01_行頭指示",
|
|
@@ -22720,7 +23021,8 @@
|
|
|
22720
23021
|
"source": "aosora_wiki",
|
|
22721
23022
|
"category": "aosora_grammar",
|
|
22722
23023
|
"content": "行頭指示\nこのように書くと、関数のように字下げ(インデント)して見やすく書けますが、トーク内容としては字下げ部分は無視されて「こんにちは!」とだけ喋ります。\ntalk Talk() {\n こんにちは!\n}\nトークブロックでは、ブロック内の各行の行頭にある特殊文字でどのような動作になるかが決まります。 \n行頭の半角スペースやタブは、インデントができるように行頭の文字が来るまで無視されます。\n\n行頭指示なし\n\n行頭の指示がなく、直接本文を書いている場合はその行末までの記述が直接トークの本文として扱われます。その本文が2行目以降だった場合は、\\n タグが自動的に挿入されます。本文内では文字列リテラル内で使用できるような { } による変数展開が使えます。\ntalk Test {\n おはよ!\n}\nジャンプ >\n\n大なり記号 > によって始まる行は、ジャンプ指示行です。トークの実行をそこで中断して、ジャンプ先の関数を呼び出します。\ntalk Test {\n >NightTalk: Time.GetNowHour() > 19\n >Talk(40)\n}\n大なり記号 > の後にジャンプ先のシンボルを記入します。括弧 ( ) で任意の引数をつけることもできます。さらに続けて任意でコロン : を付けた後条件式を書くことができます。条件式がある場合、trueと評価された場合に限りジャンプ指示を実行しようとします。\n\nジャンプ先シンボルが関数など呼び出し可能なオブジェクトではなかった場合、ジャンプせずに次の行に処理が続きます。ジャンプ先側に呼び出し条件がついていて、ジャンプできる先がなかった場合も同様です。\n\nジャンプの注意点\n「指定された関数(トーク)にジャンプする」原則に注意が必要で問題となるのが、「関数の返した関数にジャンプする」場合です。\n\nこの例でGetFunc()の返した結果にジャンプしたいとします。\nその場合、>GetFuncまたは>GetFunc()のジャンプ指定だと、「GetFuncへジャンプ」と解釈されてしまい狙い通りになりません。\n\n>GetFunc()()として、GetFuncの呼び出し先をさらに呼び出すように書く必要があります。\n\nfunction GetFunc {\n return なにかしらの関数;\n}\n\ntalk JumpTest {\n >GetFunc()()\n}\n\n話者指定 1:, ::\n\nコロン・数値+コロンの形式で始まる行は話者(スコープ)指定です。\n\n* 0: \\0 に喋らせる\n* 1: \\1 に喋らせる\n* 2: \\p[2] に喋らせる\n* : \\0が喋る状態なら\\1に、それ以外なら\\0に切り替える\n* talk ブロックの喋り初めにこの話者指定がない場合は、\\0から喋り始めます。\n\ntalk 使用例1 {\n : sakura側が喋るよ。\n : kero側が喋るよ。\n 0: sakura側が喋るよ。\n 1: kero側が喋るよ。\n : sakura側が喋るよ。\n}\n \ntalk 使用例2 {\n sakura側が喋るよ。\n : kero側が喋るよ。\n}\n: の右側のインデントも無視しますが、空白から始めたい場合は : を2つ重ねて :: とすると右側のインデントを無視しません。",
|
|
22723
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/05_01_%E8%A1%8C%E9%A0%AD%E6%8C%87%E7%A4%BA"
|
|
23024
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/05_01_%E8%A1%8C%E9%A0%AD%E6%8C%87%E7%A4%BA",
|
|
23025
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/05_01_%E8%A1%8C%E9%A0%AD%E6%8C%87%E7%A4%BA.md"
|
|
22724
23026
|
},
|
|
22725
23027
|
{
|
|
22726
23028
|
"id": "aosora:06_データ型",
|
|
@@ -22728,7 +23030,8 @@
|
|
|
22728
23030
|
"source": "aosora_wiki",
|
|
22729
23031
|
"category": "aosora_grammar",
|
|
22730
23032
|
"content": "データ型\n蒼空には数値や文字列など基本的なデータタイプや、連想配列や線形配列のような構造、様々な動きをする機能群などのオブジェクトがあります。\n\n基本型\n数値\n数値リテラル 5 9.7 など、一般的な数値のデータの種類。\n\n文字列\n文字列リテラル \"abc\" などで用意した文字列のデータ型です。\n\n真偽値(bool)\ntrue か false です。 \n直接 true/false を書くか、関係演算子 >= などを計算した結果でつくられます。\n\nnull\n値が無いことを示します。 \nnull型の値は唯一 null だけです。\n\nオブジェクト型\nこれ以外の、連想配列や線形配列、その他いろいろは全部「オブジェクト型」というくくりになります。 \nオブジェクト型のなかで、様々な種類があるという形です。",
|
|
22731
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/06_%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B"
|
|
23033
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/06_%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B",
|
|
23034
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/06_%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B.md"
|
|
22732
23035
|
},
|
|
22733
23036
|
{
|
|
22734
23037
|
"id": "aosora:07_00_組み込み機能群",
|
|
@@ -22736,7 +23039,8 @@
|
|
|
22736
23039
|
"source": "aosora_wiki",
|
|
22737
23040
|
"category": "aosora_builtin",
|
|
22738
23041
|
"content": "組み込み機能群\nSHIORI Event の Reference を取得する機能や、文字列を処理する機能、セーブデータなど一般的なゴースト開発で使われる機能は、特別な準備なしに使うことができます。\n\nこれらをこの章の各ページで紹介しています。\n\n* [[基本的なデータ型の機能|07_01_基本的なデータ型の機能]]\n * 文字列や数値、線形配列、連想配列で使える機能です。\n* [[Save|07_02_Save]]\n * セーブデータとしてデータを読み書きできる機能です。\n* [[Time|07_03_Time]]\n * 現在の時間などを取得できる機能です。\n* [[TalkTimer|07_04_TalkTimer]]\n * ランダムトークやなでられイベントを自動的に呼び出してくれる機能です。\n* [[Shiori|07_05_Shiori]]\n * SHIORI Event の Reference などを取得できる機能です。\n* [[Random|07_06_Random]]\n * ランダム機能です。乱数や配列要素のランダム選択ができます。\n* [[Reflection|07_07_Reflection]]\n * 名前から変数や関数にアクセスできる機能です。\n* [[Saori|07_08_Saori]]\n * Saori-universal をロードして呼び出せる機能です。\n* [[TalkBuilder|07_09_TalkBuilder]]\n * トークブロックの挙動を設定・制御する機能です。\n* [[Debug|07_10_Debug]]\n * ゴースト開発のためのデバッグで使える機能です。\n* [[OverloadedFunctionList|07_11_OverloadedFunctionList]]\n * talk Name {...} や function Name {...} 構文で作成されるランダム呼び出しオブジェクトです。",
|
|
22739
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_00_%E7%B5%84%E3%81%BF%E8%BE%BC%E3%81%BF%E6%A9%9F%E8%83%BD%E7%BE%A4"
|
|
23042
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_00_%E7%B5%84%E3%81%BF%E8%BE%BC%E3%81%BF%E6%A9%9F%E8%83%BD%E7%BE%A4",
|
|
23043
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/07_00_%E7%B5%84%E3%81%BF%E8%BE%BC%E3%81%BF%E6%A9%9F%E8%83%BD%E7%BE%A4.md"
|
|
22740
23044
|
},
|
|
22741
23045
|
{
|
|
22742
23046
|
"id": "aosora:07_01_基本的なデータ型の機能",
|
|
@@ -22744,7 +23048,8 @@
|
|
|
22744
23048
|
"source": "aosora_wiki",
|
|
22745
23049
|
"category": "aosora_builtin",
|
|
22746
23050
|
"content": "基本データ型の機能\n数値や文字列、連想配列・線形配列などの基礎的なデータ型のメンバとして呼び出せる機能を紹介します。\n\n数値型\n\n数値型にはメンバとして呼び出せる機能があります。\nlocal val = 10.3;\n \nlocal r = val.Round(); //小数部の四捨五入\nlocal f = val.Floor(); //小数部の切り捨て\nlocal c = val.Ceil(); //小数部の切り上げ\n\n//カッコで囲めば変数化しなくても呼び出し可能(カッコをつけないと小数点と混同する為エラー)\nlocal a = (65).ToAscii(); // \"A\" -> 1~127 の値をASCII文字に変換。バイト値1の取出などに。\n文字列\n\n文字列にはメンバとして呼び出せる機能があります。インデックスを指定させる箇所では、バイト数ではなく文字数で指定します。\nlocal a = \"12345,6,789\";\n \nlocal st = a.StartsWith(\"123\"); // true -> \"123\" から始まる文字列かどうか\nlocal en = a.EndsWith(\"789\"); // true -> \"789\" で終わる文字列かどうか\nlocal ct = a.Contains(\"34\"); // true -> 文字列に含むかどうか\nlocal sp1 = a.Split(\",\"); // [\"12345\", \"6\", \"789\"] -> \",\" で分割\nlocal sp2 = a.Split(\",\", 2); // [\"12345\", \"6,789\"] -> \",\" で分割 最大2個\nlocal idx = a.IndexOf(\"3\"); // 2 -> \"3\" のインデックスを取得\nlocal su1 = a.Substring(idx, 0); // \"345,6,789\" -> 指定バイト数から指定バイト切り出し\nlocal su2 = a.Substring(idx); // \"345,6,789\" -> Substring() 文字数省略可\nlocal re = a.Replace(\"12345\", \"あ\"); // \"あ,6,789\" -> 文字列置換\nlocal ta = a.AddTalk(\"\\0ああああ\"); // -> 「トーク結合ルール」による結合(トークブロックを参照)\nlocal len = a.length; // -> 文字列の長さを取得\n\nlocal text = \"abcDEF\";\nlocal up = text.ToUpper(); // \"ABCDEF\" -> 半角英字を大文字に変換\nlocal lw = text.ToLower(); // \"abcdef\" -> 半角英字を小文字に変換\n連想配列\n\n連想配列の中に、これらと一致するキーが存在している場合、下記の連想配列側の機能へのアクセスが優先されます。 \n\nたとえば連想配列にすでに \"length\" というキーがある場合に items.length と呼び出すと \"length\" の中身ではなく要素数を取得します。 \nGet()を使うことで、たとえばlengthというキーがある場合でも長さではなくlengthに対応する中身の情報を得ることができます。ユーザーが入力した値をキーにする場合など、どのような内容が来るかわからない場合はGet()で取得するようにするといいでしょう。\n\n書き込み時はキーがなんであっても書き込めますが、Get() と対になる形でSet()を用意しています。\nlocal items = {key: \"value\"};\nlocal len = items.length; //要素数\nitems.Clear(); //全削除\nitems.Remove(\"key\"); //キー指定で削除\nitems.Add(\"key2\", \"value2\"); //追加(重複の場合は無視)\nitems.Contains(\"key2\"); // 存在判定\nitems.Get(\"key2\"); // 内容の取得\nitems.Set(\"key2\", 500); //内容の設定\nlocal keys = items.Keys(); // キーだけを取り出した線形配列を取得\n線形配列\nlocal items = [1,2,3];\nitems.Add(4); // 要素の末尾追加\nitems.AddRange([5,6,7]); //配列要素をまとめて末尾に追加\nitems.Insert(1, 1.5); // items[1] の位置に要素を追加して残りを後ろにずらす\nitems.Remove(2); // 要素の削除(間をつめる)\nitems.Clear(); // 全削除\nlocal len = items.length; //要素数\nすべてのデータ型\n\nすべてのデータ型に共通して存在する機能。\nnullには内容がないため中身を参照してはいけないというルールのプログラミング言語もありますが、蒼空ではnullにもこれらの機能が存在しています。\n\n連想配列の中に、これらと一致するキーが存在している場合、下記の機能へのアクセスが優先されます。 \nlocal num = 1234;\nlocal str = \"456\";\n \nlocal a = num.ToString(); // 文字列に変換\nlocal b = str.ToNumber(); // 数値に変換\nlocal c = str.ToBoolean(); // 真偽値に変換\n \n// 判定系は、変換が可能かどうかではなく、現在の型が何かで判断します\nlocal d = str.IsString(); // 文字列かどうか\nlocal e = str.IsBoolean(); // 真偽値かどうか\nlocal f = num.IsNumber(); // 数値かどうか\nlocal g = num.IsObject(); // オブジェクトかどうか\nlocal h = num.IsNan(); // NaNかどうか(数値型でないなら常にfalse)\nlocal i = num.IsNull(); // nullかどうか\nlocal j = num.InstanceOf(Map); // 連想配列かどうか",
|
|
22747
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_01_%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B%E3%81%AE%E6%A9%9F%E8%83%BD"
|
|
23051
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_01_%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B%E3%81%AE%E6%A9%9F%E8%83%BD",
|
|
23052
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/07_01_%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B%E3%81%AE%E6%A9%9F%E8%83%BD.md"
|
|
22748
23053
|
},
|
|
22749
23054
|
{
|
|
22750
23055
|
"id": "aosora:07_02_Save",
|
|
@@ -22752,7 +23057,8 @@
|
|
|
22752
23057
|
"source": "aosora_wiki",
|
|
22753
23058
|
"category": "aosora_builtin",
|
|
22754
23059
|
"content": "Save\nセーブデータのオブジェクトです。Save.Data に任意の内容を書き込むと保存できます。セーブデータは savedata.asv に保存されます。このファイルはネットワーク更新から外したほうがいいでしょう。\n\nセーブデータ読み込み前に OnAosoraDefaultSaveData という内部イベントが発生するので、そのときにデフォルトセーブデータを Save.Data に書き込んでおくとセーブデータを読み込んだときに、上書きしてくれます。\n\nいまのところ、Saveが蒼空で唯一保存される情報を管理するオブジェクトなので、ベースウェア側が保存しない情報はここで保存するようにします。\nfunction OnAosoraDefaultSaveData {\n Save.Data.UserName = \"お兄ちゃん\";\n}\n \ntalk OnBoot {\n おはよう! {Save.Data.UserName}!\n}\n数値、true, false、null、文字列、連想配列、線形配列がセーブできますが、その他のオブジェクト類(関数や組み込みのオブジェクト)は保存できず、保存時にSave.Dataに格納されていても無視されます。",
|
|
22755
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_02_Save"
|
|
23060
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_02_Save",
|
|
23061
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/07_02_Save.md"
|
|
22756
23062
|
},
|
|
22757
23063
|
{
|
|
22758
23064
|
"id": "aosora:07_03_Time",
|
|
@@ -22760,7 +23066,8 @@
|
|
|
22760
23066
|
"source": "aosora_wiki",
|
|
22761
23067
|
"category": "aosora_builtin",
|
|
22762
23068
|
"content": "Time\n\n日付と時刻取得関係です。\n\nTime.GetNowHour()\n現在時を24時間単位で取得します。\nlocal hour = Time.GetNowHour(); // 現在時\n\nTime.GetGetNowMinute()\n現在分を取得します。\nlocal minute = Time.GetNowMinute(); // 現在分\n\nTime.GetNowYear()\n現在年を取得します。\nlocal year = Time.GetNowYear(); // 現在年\n\nTime.GetNowMonth()\n現在月を取得します。\nlocal month = Time.GetNowMonth(); // 現在月\n\nTime.GetNowDate()\n現在日を取得します。\nlocal date = Time.GetNowDate(); // 現在日\n\nTime.GetNowDayOfWeek()\n現在の曜日を示す数値を取得します。 \n0が日曜日、6が土曜日とした順番の整数です。\n\nTime.GetNowUnixEpoch()\nUnixエポックというルールで時刻を示す数値を取得します。",
|
|
22763
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_03_Time"
|
|
23069
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_03_Time",
|
|
23070
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/07_03_Time.md"
|
|
22764
23071
|
},
|
|
22765
23072
|
{
|
|
22766
23073
|
"id": "aosora:07_04_TalkTimer",
|
|
@@ -22768,7 +23075,8 @@
|
|
|
22768
23075
|
"source": "aosora_wiki",
|
|
22769
23076
|
"category": "aosora_builtin",
|
|
22770
23077
|
"content": "TalkTimer\n\nトーク起動用のタイマー。SHIORI Eventとして直接定義されてない なでられ反応とランダムトークを起動するために使います。\n// セーブデータ読み込み後に実行されるイベント\n// 特段理由がなければこのタイミングでTalkTimerを設定するのがおすすめ\nfunction OnAosoraLoad {\n TalkTimer.RandomTalk = RandomTalk;\n TalkTimer.KeyRandomTalkIntervalSeconds = 120;\n\n TalkTimer.NadenadeTalk = OnNadenade;\n}\n \ntalk RandomTalk {\n ランダムトークだよ。\n}\n \ntalk OnNadenade {\n なでられたー。\n}\n\nTalkTimer.RandomTalk\nランダムトークとして呼び出す関数を設定できます。\n\nTalkTimer.RandomTalkHandler\nランダムトークを発生させるときに呼び出す関数を設定できます。 \n設定してないか null の場合は、TalkTimer.CallRandomTalk() を使用してランダムトークを発生させます。\n\nこれは通常設定する必要はありませんが、TalkTimer がランダムトークを発生させるタイミングで任意の処理を行いたいときに使うことができます。 \n戻り値がランダムトークになるので、たとえば下記のように、何か任意の処理を行った後でランダムトークを行うといった処理ができます。\nTalkTimer.RandomTalkHandler = function {\n\n // 何らかの処理....\n\n return TalkTimer.CallRandomTalk();\n};\nTalkTimer.CallRandomTalk() を使用せずに、任意の内容を喋らせることもできます。 \nただし、TalkTimer.CallRandomTalk() には TalkTimer.RandomTalkElapsedSeconds をリセットする作用もあるので、使用しない場合は自分でリセットしてください。そうしないと連続で RandomTalkHandler が呼び出されてしまいます。\n\nTalkTimer.RandomTalkIntervalSeconds\n\nランダムトーク間隔秒。 \n0を指定するとランダムトークなし。\n\nTalkTimer.RandomTalkElapsedSeconds\n\n前回ランダムトークしてからの経過秒。 \nこれがKeyRandomTalkIntervalSeconds を超えるとランダムトークを発生させます。\n\nKeyRandomTalkIntervalSeconds を更新するときなど、任意で0を設定してリセットするなども可能です。 \n\nTalkTimer.NadenadeTalk\n\nなでられトークとして呼び出す関数。\n\nTalkTimer.NadenadeMoveThreshold\n\n同じ触り反応に対して OnMouseMove イベントが発生し続けたとき、その回数がこの値を超えるとなでられトークが発生します。 \n\n要するになでられの敏感度合い。デフォルトは50。 \n\nOnMouseLeave, OnMouseHover, 他の判定のOnMouseMoveが来ると0から数え直します。 \n\nTalkTimer.NadenadeActiveCollision\n\nなでられ反応を呼び出す判定中の判定識別子。\n\nスクリプトから書き込むのは非推奨。\n\nTalkTimer.NadenadeMoveCount \n\nNadenadeMoveThreshold に対して比較する、OnMouseMoveの発生回数。\n\nスクリプトから書き込むのは非推奨。\n\nTalkTimer.RandomTalkQueue\n配列になっていて、要素がある場合はランダムトーク時、RandomTalkの代わりに最初の要素を取り除いて喋る。 \n次以降のトークを予約したい場合に使う。\ntalk FirstTalk{\n %{ TalkTimer.RandomTalkQueue = [SecondTalk, ThirdTalk]; }\n 1st talk\n}\n\ntalk SecondTalk {\n 2nd talk\n}\n\ntalk ThirdTalk {\n 3rd talk\n}\n\nTalkTimer.CallRandomTalk()\nランダムトークを呼び出して結果を返します。 \nタイマーによるトーク発生時と同じようにRandomTalkQueueがあれば使用し、ランダムトークタイマーをリセットします。 \nメニューなどからランダムトークをさせるときに、時間経過で発生するランダムトークと同じことをしたい場合に使えます。",
|
|
22771
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_04_TalkTimer"
|
|
23078
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_04_TalkTimer",
|
|
23079
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/07_04_TalkTimer.md"
|
|
22772
23080
|
},
|
|
22773
23081
|
{
|
|
22774
23082
|
"id": "aosora:07_05_Shiori",
|
|
@@ -22776,7 +23084,8 @@
|
|
|
22776
23084
|
"source": "aosora_wiki",
|
|
22777
23085
|
"category": "aosora_builtin",
|
|
22778
23086
|
"content": "Shiori\nSHIORI EventのReference情報にアクセスするためのオブジェクトです。 \n代表的な使い方として、Shiori.Reference[0] で イベントのReference0 をもってこれます。\n\nShiori.Reference\nSHIORI Event の Reference 値が線形配列として格納されています。\nlocal r = Shiori.Reference[0];\n\nShiori.Headers\nSHIORI Event の汎用的なヘッダ情報が連想配列で格納されています。\n\nShiori.SaoriValues\n線形配列が格納されています。 \nSAORI として蒼空が使用されている場合に、呼び出し側のSHIORIにValuesとして内容を返します。\n\nShiori.ResponseReference\n線形配列が格納されています。 \nここに任意の要素を設定することで、SHIORI Event の Response に Reference 値を返すことができます。\n\nゴースト間コミュニケートの仕様で、Reference0 に宛先のゴースト名を設定することで同時に起動しているほかのゴーストに話しかけられます。\n\n線形配列で最初は空なので、最初に書き込むときは \nShiori.ResponseReference[0] = \"ghost\";\nではなく\nShiori.ResponseReference.Add(\"ghost\");\nなどとする必要があります。\n\nステータス情報\nSHIORI Event の Status ヘッダに存在するステータスをキーとして、trueが入っています。 \nたとえばトーク中かどうかの分岐には次のように使えます:\nif(Shiori.talking){\n //処理\n}",
|
|
22779
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_05_Shiori"
|
|
23087
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_05_Shiori",
|
|
23088
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/07_05_Shiori.md"
|
|
22780
23089
|
},
|
|
22781
23090
|
{
|
|
22782
23091
|
"id": "aosora:07_06_Random",
|
|
@@ -22784,7 +23093,8 @@
|
|
|
22784
23093
|
"source": "aosora_wiki",
|
|
22785
23094
|
"category": "aosora_builtin",
|
|
22786
23095
|
"content": "Random\n\nランダム選択の機能。いまのところ機能は少ないですが、必要に応じて足すことになるかと思います。\n\nRandom.Select()\n線形配列からランダムで1つ取り出します。\nlocal word = Random.Select([\"ういーっす\", \"うーっす\", \"おーす\"]);\n\nRandom.CreateSelector()\nセレクタオブジェクトの作成。 \n関数として呼び出せるオブジェクトが返り、呼び出すと渡した線形配列から1つランダムに返します。 \n\nこの関数で取得できるオブジェクトは function Name {...} や talk Name {...} 構文で関数を作成したときに作成されるものと同じで、重複回避を使って内部のオブジェクトを抽選するものです。\n* 注意: この機能に要素として関数を入力した場合は、function Name {...} 構文で作成した場合と同じように、ランダムで選択されたあと関数呼び出しを行い、その結果を返します。 →[[OverloadedFunctionList|07_11_OverloadedFunctionList]]\n* 引数なしで呼び出すと、空のセレクタオブジェクトを作成します。この方法は特殊な用途にむけたものです。\nlocal selector = Random.CreateSelector([\"ういーっす\", \"うーっす\", \"おーす\"]);\nlocal word = selector();\nRandom.CreateSelector() は使うたびにあたらしい重複判定をもったオブジェクトをつくるので、ランダム選択しようとするたびに Random.CreateSelector() を使うとうまく重複回避できません。ユニット変数や関数の外側のローカル変数として作って使うといいです。\n\nRandom.GetIndex()\n2値間の0以上の整数でランダムをとります。 \n線形配列のインデックスをランダムに決めたい場合などにも使えます。\nlocal idx = Random.GetIndex(0, 10); // -> 0 ~ 9 の整数でランダム\n \nRandom.GetNumber()\n実数によるランダム。 \n0.0 ~ 1.0 のうちのランダムな小数点数をとります。\nlocal n = Random.GetNumber(); // 0.0 ~ 1.0 のランダム",
|
|
22787
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_06_Random"
|
|
23096
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_06_Random",
|
|
23097
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/07_06_Random.md"
|
|
22788
23098
|
},
|
|
22789
23099
|
{
|
|
22790
23100
|
"id": "aosora:07_07_Reflection",
|
|
@@ -22792,7 +23102,8 @@
|
|
|
22792
23102
|
"source": "aosora_wiki",
|
|
22793
23103
|
"category": "aosora_builtin",
|
|
22794
23104
|
"content": "Reflection\n\nシンプルなリフレクション機構を提供しています。蒼空では変数名などのシンボル名や関数名ははっきり別物なので、里々のようにイベントのReferenceと文字列をつなげて「Headつつかれ」にジャンプさせることができませんが、Reflectionを使うと文字列ベースでデータをもってくることができるので、同じようなことができます。\nlocal a = 0;\n\n//同じ情報をもってくる\nlocal b = a;\nlocal c = Reflection.Get(\"a\");\n\n//同じ情報にセット\na = 20;\nReflection.Set(\"a\", 20);\n\n//里々のように\nlocal col = \"Head\";\nlocal func = Reflection.Get( col + \"つつかれ\");\nreturn func();\n\nReflection.Get()\n名前で変数を取得します。\n\nReflection.Set()\n名前で変数に値を設定します。",
|
|
22795
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_07_Reflection"
|
|
23105
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_07_Reflection",
|
|
23106
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/07_07_Reflection.md"
|
|
22796
23107
|
},
|
|
22797
23108
|
{
|
|
22798
23109
|
"id": "aosora:07_08_Saori",
|
|
@@ -22800,7 +23111,8 @@
|
|
|
22800
23111
|
"source": "aosora_wiki",
|
|
22801
23112
|
"category": "aosora_builtin",
|
|
22802
23113
|
"content": "Saori\n\nSAORI-universal(dll形式のSAORI) を読み込むことができます。SAORI-basic(exe形式)は対応していません。代わりにProxy DLLを使うと動くかもしれません。\n\nSaori.Load() \nSAORIをロードします。 \n返ってきたオブジェクトにRequest()でSAORIを呼び出せます。 \n\nRequestの戻り値は連想配列で、Resultに実行結果が含まれます。また、エラーを返した場合はErrorにエラー内容が含まれます。ロード時にエラーが返った場合は、実行時エラーになります。\n//Satori as SAORIを呼んでみる例\nlocal saori = Saori.Load(\"satori.dll\");\nfunction OnSaoriTest {\n return saori.Request(\"OnSaoriTest\").Result;\n}",
|
|
22803
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_08_Saori"
|
|
23114
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_08_Saori",
|
|
23115
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/07_08_Saori.md"
|
|
22804
23116
|
},
|
|
22805
23117
|
{
|
|
22806
23118
|
"id": "aosora:07_09_TalkBuilder",
|
|
@@ -22808,7 +23120,8 @@
|
|
|
22808
23120
|
"source": "aosora_wiki",
|
|
22809
23121
|
"category": "aosora_builtin",
|
|
22810
23122
|
"content": "TalkBuilder\n\ntalkブロックの戻り値を組み立てる仕組みを制御します。\n\nTalkBuilder.Current.AutoLineBreak\n改行時に挿入する文字列。デフォルトは \"\\n\" が設定されています。\nTalkBuilder.Current.AutoLineBreak = \"\\n\";\n\nTalkBuilder.Current.ScopeChangeLineBreak\nスコープ切替時の改行として挿入する文字列。 \nデフォルトは \"\\n\\n[half]\" が設定されています。\nTalkBuilder.Current.ScopeChangeLineBreak = \"\\n\\n[half]\";\n\nTalkBuilder.Current.Head\n(試験的) talk ブロックの先頭につける内容を指定します。 \nこの挙動は試験的のため、頂いたご意見によって変更する可能性があります。\n\nデフォルト値\nTalkBuilder.Current の中身はイベント処理ごとにデフォルト値にリセットされます。 \nTalkBuilder.Default.~ で同じ値を書き換えることで、デフォルト値を変更できます。",
|
|
22811
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_09_TalkBuilder"
|
|
23123
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_09_TalkBuilder",
|
|
23124
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/07_09_TalkBuilder.md"
|
|
22812
23125
|
},
|
|
22813
23126
|
{
|
|
22814
23127
|
"id": "aosora:07_10_Debug",
|
|
@@ -22816,7 +23129,8 @@
|
|
|
22816
23129
|
"source": "aosora_wiki",
|
|
22817
23130
|
"category": "aosora_builtin",
|
|
22818
23131
|
"content": "Debug\n\nデバッグ関係の機能を使用することができます。 \nプロジェクトファイル(ghost.asproj, debug.asproj)でデバッグ設定を有効にしないと機能しないものもあります。\n\nプログラミング言語によっては、デバッグモードでない場合にこういった機能に入力された引数式は評価しない場合もありますが、蒼空では今のところデバッグ機能が無効であっても引数を評価します。\n\nDebug.isEnabled\nデバッグモードが有効になっていたらtrue、そうでないならfalseを返します。 \nこのデバッグモードは asproj 設定が有効な場合や、VSCodeからデバッグ起動された場合を示していて、ベースウェア側のSHIORIデバッグモードとは関係しません。\n\nDebug.WriteLine()\nデバッグログの出力を行います。 \nVSCode デバッガに接続している場合、VSCode側にログを出力します。 \nasproj でログファイルを有効にしている場合にはそのログファイルにも出力します。\nDebug.WriteLine(\"log...\");\n\nDebug.Assert()\nデバッグモードやVSCodeに接続している場合に限り、「アサート」を処理します。 \n\n引数がない場合または、最初の引数が false と評価された場合に、tryブロックを無視するエラーを発生させて強制的にエラーを表示します。\n\nこれはプログラミングで、正常時こうなるはずという条件を設定しておいて、そうでない状況が発生したら直ちにエラーにすることで不具合を調べるのに役立つ手法を提供するものです。\n\n2番目の引数にはエラーの説明を設定できます。省略しても構いません。\n\nlocal test = Test(); //true を返してほしかった処理\nDebug.Assert(test, \"何か間違ってる!\");",
|
|
22819
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_10_Debug"
|
|
23132
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_10_Debug",
|
|
23133
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/07_10_Debug.md"
|
|
22820
23134
|
},
|
|
22821
23135
|
{
|
|
22822
23136
|
"id": "aosora:07_11_OverloadedFunctionList",
|
|
@@ -22824,7 +23138,8 @@
|
|
|
22824
23138
|
"source": "aosora_wiki",
|
|
22825
23139
|
"category": "aosora_builtin",
|
|
22826
23140
|
"content": "OverloadedFunctionList\nfunction Name {...} 構文や talk Name {...} 構文によって生成される特殊なオブジェクトで、グループ内の要素から重複回避ありでランダムに1つを選択する機能です。\n\nRandom.CreateSelector() でも作成できます。\n\n関数として呼び出された場合、内部の要素を1つ選択して、それを関数呼び出しします。関数でなければそれを返します。\n\nlength\n要素数を取得します。\nfunction FuncA {\n return 1;\n}\n\nfunction FuncA {\n return 2;\n}\n\nlocal num = FuncA.length; // 2\n\nUseNoOverwrappedRandom()\nアイテムを選択する手法に重複回避ありのランダムを使うように指定します。 \nこの設定はデフォルトで有効です。\nfunction FuncA {\n return 1;\n}\n\n//重複回避\nFuncA.UseNoOverwrappedRandom();\n\nUseOverwrappedRandom()\nアイテムを選択する手法に重複回避なしのランダムを使うように指定します。 \n\nIsNoOverwrappedRandom()\n重複回避ありのランダムを使っている場合にtrue、そうでない場合はfalseを返します。\n\nIsOverwrappedRandom()\n重複回避なしのランダムを使っている場合にtrue、そうでない場合はfalseを返します。\n\nShuffleOverwrap()\n重複回避の状態をリセットし、抽選済みの要素が再度抽選されるようにします。 \nこれを使用しなくても、重複回避した結果要素が1つもなくなってしまった場合は自動的に重複回避をリセットしてランダム抽選を行っているので、任意でリセットしたいときにだけ使います。\n\nClear()\n内部の要素を全部消してからっぽにします。\n\nAdd()\n引数に指定した要素を追加します。\n2つ目の引数に発生条件として関数を渡すこともできます。\n\nAddRange()\n引数に線形配列を指定して、まとめて要素を追加します。 \n2つ目の引数に発生条件として関数を渡すことができます。(発生条件は1つで、まとめて追加する要素にすべて設定されます)\n* AddRangeの引数として使えるのは線形配列だけです。OverloadedFunctionList は使えません。",
|
|
22827
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_11_OverloadedFunctionList"
|
|
23141
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/07_11_OverloadedFunctionList",
|
|
23142
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/07_11_OverloadedFunctionList.md"
|
|
22828
23143
|
},
|
|
22829
23144
|
{
|
|
22830
23145
|
"id": "aosora:08_SHIORI_Eventの受け方",
|
|
@@ -22832,7 +23147,8 @@
|
|
|
22832
23147
|
"source": "aosora_wiki",
|
|
22833
23148
|
"category": "aosora_general",
|
|
22834
23149
|
"content": "SHIORI Eventの受け方\nこれまで度々紹介していますが、あらためて SHIORI Eventへの反応について説明します。\n\nSHIORI Event が発生すると、ユニット変数として存在する同じ名前のトークまたは関数を引数なしで呼び出します。\n\n呼び出された関数が文字列を返せばそれがそのまま結果として使われます。関数を返した場合は、それをさらに引数なしで呼び出してその結果を使います。それ以外を返した場合は文字列に変換した結果を使います。\n\n最終的に文字列が空であれば 204 No Contentを、中身があれば 200 OK をベースウェアに返します。\n\nただし、ピリオド . の含まれるイベントはピリオドをアットマーク @ に変換して呼び出します。蒼空がピリオドを演算子として使用するため、関数名などに使用することができないための対策です。@は名前に使えます。\n\n例: OnUpdate.OnDownloadBegin -> OnUpdate@OnDownloadBegin\n// これが呼ばれる\nfunction OnUpdate@OnDownloadBegin {\n return \"\\0talk\";\n}",
|
|
22835
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/08_SHIORI_Event%E3%81%AE%E5%8F%97%E3%81%91%E6%96%B9"
|
|
23150
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/08_SHIORI_Event%E3%81%AE%E5%8F%97%E3%81%91%E6%96%B9",
|
|
23151
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/08_SHIORI_Event%E3%81%AE%E5%8F%97%E3%81%91%E6%96%B9.md"
|
|
22836
23152
|
},
|
|
22837
23153
|
{
|
|
22838
23154
|
"id": "aosora:09_蒼空の起動終了処理",
|
|
@@ -22840,7 +23156,8 @@
|
|
|
22840
23156
|
"source": "aosora_wiki",
|
|
22841
23157
|
"category": "aosora_general",
|
|
22842
23158
|
"content": "蒼空の起動終了処理\nSHIORIがゴーストに読み込まれてゴーストが起動するとき、ゴーストが終了してSHIORIを終えるときの挙動説明です。\n\n起動処理\n蒼空はまず ghost.asproj をロードして、スクリプトファイルのリストアップや設定情報を収集します。 \n次に debug.asproj があれば、ghost.asproj の続きとみなして同じように読み込みます。\n\nスクリプトがエラーなくロードできたら、内部的に OnAosoraDefaultSaveDataイベントを発生させます。このときにデフォルトセーブデータを Save.Data に書き込むことができます。\n\n次に savedata.asv からセーブデータを読み込んで、Save.Data に上書きします。 \nセーブデータを読み込んだ後に内部的に OnAosoraLoad イベントを発生させます。このときにAosoraの初期設定を行うことを勧めます。\n\n読み込み時にエラーが発生した場合は、セーブデータの読み込みなどは行いません。ベースウェアに対してエラーを報告するのと同時に、ゴースト上にエラーガイダンスを表示します。\n\n終了処理\naosora のアンロード時、セーブデータ保存の直前に OnAosoraUnload イベントを発生させるようになりました。 \n終了時に何らかの処理を行うときにいいでしょう。 \n\nただし、変数を別な場所に持っておいて OnAosoraUnload 内で Save.Data にそれらを反映する…というつくりは慎重になるべきです。 \nここでエラーが発生してもそのままゴーストを終了するほかないのですが、そうなると OnAosoraUnload の処理が途中で終了してセーブデータを書き込むことになり、データが意図せず中途半端な状態になってしまうことがあるかもしれません。\nゴースト起動中の必要な場面で Save.Data をこまめに更新するほうが確実です。\n\n起動処理でエラーが出ている場合は終了処理をスキップするので、意図せずセーブデータがクリアされたりすることはないようになっています。",
|
|
22843
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/09_%E8%92%BC%E7%A9%BA%E3%81%AE%E8%B5%B7%E5%8B%95%E7%B5%82%E4%BA%86%E5%87%A6%E7%90%86"
|
|
23159
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/09_%E8%92%BC%E7%A9%BA%E3%81%AE%E8%B5%B7%E5%8B%95%E7%B5%82%E4%BA%86%E5%87%A6%E7%90%86",
|
|
23160
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/09_%E8%92%BC%E7%A9%BA%E3%81%AE%E8%B5%B7%E5%8B%95%E7%B5%82%E4%BA%86%E5%87%A6%E7%90%86.md"
|
|
22844
23161
|
},
|
|
22845
23162
|
{
|
|
22846
23163
|
"id": "aosora:10_プロジェクトファイル設定",
|
|
@@ -22848,7 +23165,8 @@
|
|
|
22848
23165
|
"source": "aosora_wiki",
|
|
22849
23166
|
"category": "aosora_general",
|
|
22850
23167
|
"content": "プロジェクトファイル設定\nghost.asproj, debug.asproj で設定できる項目は以下のとおりです。 \n* カンマがある行は設定として下記に該当するものがあれば適用します。 \n* そうでない場合はファイル名と解釈して読み込みます。\n* // で行コメントができます。(/* */ によるブロックコメントはサポートしていません)\n\ndebug.asproj は、開発時のみ用意しておいてデバッグ設定を書き込み、配布時に除外することで開発時だけデバッグ機能を有効にできることを想定して用意しています。\n\nlimit_script_steps,[数値]\n1回のイベントで処理できるスクリプトの内部的な処理量。スクリプト上で無限ループが発生するとゴーストが停止してしまうので、それを防止するために処理量が一定を超えると無限ループとみなして強制的に実行を中断することでSSPを巻き込んで停止することを避けるための設定。 \nデフォルトで十分大きな値(100万)が入っていますが、特に必要があれば変更することもできます。 \n0を指定すると無制限にできますが、推奨しません。\n\ndebug,[数値]\nデバッグモード。debug.~ と名前のある設定は、これが有効になっていないと機能しません。 \n0で無効、1で有効。デフォルトは無効。\n\nVSCode 拡張からデバッグ起動した場合は自動的に有効になります。\n\ndebug.logfile.enable,[数値]\nこれが有効かつデバッグモードなら、debug.logfile.nameとしてログファイルを作成します。 \n\nログファイルには Debug.WriteLine() などで書き込むことができます。\n0で無効、1で有効。デフォルトで無効です。\n\ndebug.logfile.name,[ファイル名]\n指定したファイル名でログファイルを生成します。 \nデフォルトは aosora.log です\n\ndebug.debugger.runtime,[asproj からの相対パスまたは絶対パス]\nvscode拡張機能からゴーストをデバッグ起動する場合に使用するssp.exeを指定します。\n\nデフォルト値は ../../../../ssp.exe です。 \nこれはSSPのデフォルトゴーストのEmilyがインストールされている場所と同じ、<sspのフォルダ>/ghost/<ゴーストフォルダ>/ghost/master からSSPを相対的に参照できるパスで、デフォルトのゴーストインストールフォルダの ghost/master に 蒼空 が配置されていれば、無設定でデバッグ起動ができるようになっています。",
|
|
22851
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/10_%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E8%A8%AD%E5%AE%9A"
|
|
23168
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/10_%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E8%A8%AD%E5%AE%9A",
|
|
23169
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/10_%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E8%A8%AD%E5%AE%9A.md"
|
|
22852
23170
|
},
|
|
22853
23171
|
{
|
|
22854
23172
|
"id": "aosora:11_Aosora_as_SAORI",
|
|
@@ -22856,7 +23174,8 @@
|
|
|
22856
23174
|
"source": "aosora_wiki",
|
|
22857
23175
|
"category": "aosora_general",
|
|
22858
23176
|
"content": "Aosora as SAORI\n\n蒼空をSAORIとしてロードできるようにしました。 \n\nその場合、リクエストの最初の引数がSHIORI EventのID、それ以降の引数が SHIORI の Reference として蒼空に渡されます。尚、Aosora側の使用上、最初の引数にピリオドが含まれる場合は呼び出し時にアットマークに変換されます。\n\n戻り値は関数の戻り値をSAORIの戻り値にします。「Shiori.SaoriValues」の線形配列に値をセットすることでValueを返すこともできます。\n\n里々の場合\n\naosora.dll を aosora という名前で satori_conf.txt で読み込むように指定し、main.as を ghost.asproj で読み込むようにしている場合です。\n:(1)はろー、蒼空!\n(aosora,AosoraTest,里々)(S0)\n ```\n\nfunction AosoraTest() {\n Shiori.SaoriValues = [\"こんにちは!\"];\n return \"\\s[1]はろー、{Shiori.Reference[0]}!\";\n}\n\n## エラーハンドリング\n\n下記2つのイベントを呼び出したときは、蒼空側で処理をして、エラーの情報を返します。\n\n* HasLoadError\n * SAORI読み込み時にエラーが発生した場合に1, そうでなければ0が帰ります。\n * スクリプトのパースエラーや、起動イベントでエラーが発生した場合に起動失敗扱いになり、通常のイベントの呼び出しができなくなります。\n\n* GetLastError\n * GetError, HasLoadError 以外で、最後に呼び出したときに発生したエラー情報を返します。\n * エラーがなければ0、エラーがあればエラーの数を返します。通常エラー情報は1つですが、スクリプトパースエラーの場合は複数返ります。\n * GetLastErrorが0ではない場合で、HasLoadErrorが1なら読み込みエラー、HasLoadErrorが0なら実行時のエラーといえます。\n\n## その他\n作者は SHIORI as SAORI は使ったことがないので、間違いとかあったら教えて下さい。",
|
|
22859
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/11_Aosora_as_SAORI"
|
|
23177
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/11_Aosora_as_SAORI",
|
|
23178
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/11_Aosora_as_SAORI.md"
|
|
22860
23179
|
},
|
|
22861
23180
|
{
|
|
22862
23181
|
"id": "aosora:12_00_発展的なトピック",
|
|
@@ -22864,7 +23183,8 @@
|
|
|
22864
23183
|
"source": "aosora_wiki",
|
|
22865
23184
|
"category": "aosora_advanced",
|
|
22866
23185
|
"content": "# 発展的なトピック\n\nこの章は現在準備中です。今後、ユニット設計の高度なテクニック、パフォーマンス最適化、運用上の注意点、設計パターンの事例などを追加する予定です。\n\n寄稿や提案を歓迎します。トピックの提案があれば issue または PR を作成してください。",
|
|
22867
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/12_00_%E7%99%BA%E5%B1%95%E7%9A%84%E3%81%AA%E3%83%88%E3%83%94%E3%83%83%E3%82%AF"
|
|
23186
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/12_00_%E7%99%BA%E5%B1%95%E7%9A%84%E3%81%AA%E3%83%88%E3%83%94%E3%83%83%E3%82%AF",
|
|
23187
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/12_00_%E7%99%BA%E5%B1%95%E7%9A%84%E3%81%AA%E3%83%88%E3%83%94%E3%83%83%E3%82%AF.md"
|
|
22868
23188
|
},
|
|
22869
23189
|
{
|
|
22870
23190
|
"id": "aosora:12_01_ユニット",
|
|
@@ -22872,7 +23192,8 @@
|
|
|
22872
23192
|
"source": "aosora_wiki",
|
|
22873
23193
|
"category": "aosora_advanced",
|
|
22874
23194
|
"content": "ユニット\nユニットはほかのプログラミング言語でいう名前空間やパッケージに該当する機能です。aosoraはパッケージ管理のような概念がなく、動的な言語のため名前空間というのも違う気がしたので独自に unit というキーワードを定義しています。\n\n里々はすべての辞書の単語群や文が同等に扱われるため、他人の辞書を借りて何か作るときには必ずそれと自分の辞書と名前が被る箇所がないか確認しないといけませんでした。\naosora はファイルごとに「ユニット」を指定しておおきく種類分けをすることができるので、誰かに貸せるようなコードは自分のオリジナルの「ユニット」名をつけることでほかの人と関数名などが被ることを最小限におさえることができます。\n\nunit myunit;\n\nfunction MyFunc {\n return \"Hello\";\n}\n\nunit キーワードに続けてユニット名、セミコロンでユニット名を指定します。\nユニットを指定できるのはファイルごとに1回だけで、ファイルのもっとも外側の部分でないといけません。\n\n上記のように書くことで、MyFunc関数は「myunitユニットのMyFunc関数」ということになります。\nここで別ファイルを用意してみます。\n\ntalk OnMouseDoubleClick {\n \\s[0]{MyFunc()}\n}\n\nfunction MyFunc() {\n return \"Hi!\";\n}\n\n今度は別ファイルにさきほどと同じ名前の MyFunc関数があります。 \nただし、OnMouseDoubleClick から呼び出されるのはこのファイルのMyFunc関数になります。 \n「myunitユニットのMyFunc関数」はmyunit というユニット(区分け)の中にあるので、このMyFuncとは明確に区別されます。\n\nmyunitのMyFuncを呼び出す場合、このように書きます。\n\ntalk OnMouseDoubleClick {\n \\s[0]{unit.myunit.MyFunc()}\n}\n\nunit.myunit で myunit というユニットを示し、その中のMyFuncを呼び出しています。 \nこのように「別のユニットの何かを触る」ために unitキーワード経由で触らないといけないために名前かぶりのリスクを減らすことができます。\n\n暗黙のmainユニット\n上記のコードや、aosora 0.1世代のコードも unit は指定していませんでした。 \nこの場合、暗黙のうちに main ユニットに配置されることになります。つまり、先ほどのコードは下記のコードと同じです。\n\nunit main; // かかなくてもいい\n\ntalk OnMouseDoubleClick {\n \\s[0]{MyFunc()}\n}\n\nfunction MyFunc() {\n return \"Hi!\";\n}\n\nここでは MyFunc を unit.main.MyFunc() と呼び出すこともできます。(mainユニット外からはこの呼び出し方を使います)\n\nmain ユニットには重要な特徴が2つあるので、ユニットを使う場合は覚えておいてください。\n* ユニット名を指定しないスクリプトは main ユニットに配置される\n* SHIORI Event は main ユニットの関数またはトークを呼び出す\n\n2番目の特徴も重要です。誰かに貸すコードが SHIORI Event を受信しないといけないとして、借りるゴーストが同じSHIORI Event を使っていると困ったことになります。\nそうならないように、main ユニット以外ではSHIORI Event を受けられないようにしています。\n\nそうはいっても、選択肢 \\q[] タグを使うような場合など、SHIORI Eventを受信しないと困る場合がありますが… その場合はmainユニットに展開すれば良いです。\nunit myunit;\nfunction OnMouseDoubleClick {\n //何かする\n}\n\n//mainユニットの変数に書き込む\nunit.main.OnMouseDoubleClick = OnMouseDoubleClick;\n\nこのようにすれば、main ユニットのOnMouseDoubleClickに別ユニットの任意の変数を書き込むことができます。こうすると独自のイベント名なら問題ないかもしれませんが、OnMouseDoubleClick のようなよく使うイベントを勝手に書き換えられては使う側は困るかもしれません。\n\n下記のように、Setup 関数を呼び出した場合だけmainユニットを上書きするなど、上書きするしないを使う側が制御できると良いかもしれません。 \nまた、この場合、使う側が上書きしたくないと考えるなら unit.myunit.OnMouseDoubleClick を別途適切なタイミングで呼び出してもらうことも選択肢になりそうです。\nunit myunit;\n\nfunction OnMouseDoubleClick {\n //何かする\n}\n\nfunction Setup {\n //mainユニットの変数に書き込む\n unit.main.OnMouseDoubleClick = OnMouseDoubleClick;\n}\n\n最後に、自作のユニット名には system, std は避けてください。 \nこれらは aosora 側の機能が配置されているので、それらとは競合しないようにしたほうがいいためです。\n\nuse 指定によるユニット名省略\nほかのユニットの機能を呼び出すために毎回 unit.myunit.~ と書くのはちょっと面倒なので、省略できる手段があります。\nuse に続けてユニット名を書けば、unitキーワードを省略して直接 myunit からアクセスできます。\nuse myunit;\n\nmyunit.Setup();\n\nuseでは「ユニット」のほかに「ユニット内の何か」までを指定できるので、myunit.Setup と指定すれば Setup 関数をそれまでの unit.myunit を省略することができます。 \nただしuseが使える範囲は「ユニット内の何か」までで、「ユニット内の連想配列のある要素」といった指定はできません。\nuse myunit.Setup;\n\nSetup();\n\nアスタリスクを使えば指定ユニット内のすべての要素をそのまま呼び出せるようになります。\nuse myunit.*;\n\nSetup();\n\n省略すればするほど、記述の量を減らすことができますが、どのユニットの機能を呼び出しているか自分でよくわからなくなることは避けたほうがいいです。\nよく使うものに絞って省略するようにするといいでしょう。\n\nその他注意点\n* use が使えるのはunit指定と同様にファイルの一番外側だけです。\n * use はそのファイルで全体に影響します。\n* main ユニットで use myunit.*; などと記載した場合でも、SHIORI Eventによって myunit ユニットの関数が直接呼び出されるわけではありません。\n * そのファイル内の記述を簡略化するだけのためです。\n* すべてのスクリプトで暗黙のうちに use system.*; 相当の指定が入っています。\n * Shiori.Reference[0] などで使う Shiori は、正確には system ユニットに属し unit.system.Shiori で呼び出せますが、これによってaosora0.1と同様に使用できます。\n* すべてのスクリプトで暗黙のうちに use (そのファイルのユニット名).* 相当の指定が入っています。\n * 自分自身のユニットに対して unit.~ と長々と書く必要はないのはこのためです。\n* use によって、ほかのユニットと関数の呼び出し名が被ってしまった場合、先に use されているほうが優先されます。\n * 順番によらずアスタリスクを使わない指定はアスタリスクを使った指定よりも優先度が高いです。\n * このあたりの優先ルールはわかりにくく、見直す可能性もあるので、名前が被る可能性のある運用は避けるようにしてください。\n * 同じ呼び出し名になるといっても、このようにどれかを選んで呼び出すので、「統合された上でその中からランダム」という呼び出し方にはなりません。\n\n階層化ユニット\nユニットはピリオドで階層化(ユニットのなかに別なユニットをもつ)ができます。\n\nこのようなユニット指定をすると、「myunitユニットの中のinternalユニット」という指定になります。 \n階層ユニットのスクリプト内では、myunit.internal ユニット以外にも親階層の myunit ユニットも暗黙の use 設定が入ります。\nunit myunit.internal;\n外から使う機能、内部でだけ使う機能の分離などにいいかもしれません。",
|
|
22875
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/12_01_%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88"
|
|
23195
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/12_01_%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88",
|
|
23196
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/12_01_%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88.md"
|
|
22876
23197
|
},
|
|
22877
23198
|
{
|
|
22878
23199
|
"id": "aosora:12_02_ユニットファイル",
|
|
@@ -22880,7 +23201,8 @@
|
|
|
22880
23201
|
"source": "aosora_wiki",
|
|
22881
23202
|
"category": "aosora_advanced",
|
|
22882
23203
|
"content": "ユニットファイル\nユニットを使ってスクリプトを別機能としてまとめても、それが複数あれば使うときに ghost.asproj にそれだけ書かないといけないのは煩雑です。 \nそんなときはユニットファイルを使いましょう。\n\nユニットファイルは .asunit 拡張子で用意して、別のファイルに ghost.asproj の内容を切り分けられます。 \nたとえば file.asunit を用意して、こんなふうにスクリプトを列挙してみます。\nfile1.as\nfile2.as\nfile3.as\n\nghost.asproj では unit を使ってユニットファイルを指定します。\nunit,file.asunit\n\nこうすることで、ghost.asproj に file.asunit に書いた内容が取り込まれるので、file ユニットを他のゴーストに適用するときは asprojに書く内容が少なくてすみます。\n\n* unit,ファイル名 で指定したユニットファイル内では、ファイル名を書いてスクリプトをロードする指定をするほか、unit,ファイル名でさらに別のユニットを指定できますが、それ以外の設定はできません。\n * ユニットファイルが asproj側の特殊な設定を書き換えられないように保護するためです。\n* ユニットファイル内に記載するファイルパスは、ユニットファイルがあるフォルダからの相対パスになります。\n * ユニットをフォルダわけするときに便利かもしれません。\n* 機能自体はファイルの読み込み指定なので、直接的にはユニットとは関係していません。\n * 異なるユニットを1つのユニットファイルをまとめたり、main ユニットをユニットファイルに書いたりしても支障はありません。\n* 同じスクリプト・ユニットファイルを全体で複数回指定された場合でも多重ロードはしません。",
|
|
22883
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/12_02_%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB"
|
|
23204
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/12_02_%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB",
|
|
23205
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/12_02_%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB.md"
|
|
22884
23206
|
},
|
|
22885
23207
|
{
|
|
22886
23208
|
"id": "aosora:12_03_クラス",
|
|
@@ -22888,7 +23210,8 @@
|
|
|
22888
23210
|
"source": "aosora_wiki",
|
|
22889
23211
|
"category": "aosora_advanced",
|
|
22890
23212
|
"content": "クラス\n一般的なオブジェクト指向言語に搭載されている、クラス機能をちょっとかじった程度の機能があります。\nそういった言語を触ったことがある人には理解しやすいかもしれませんが、少しこみいった機能になっています。\n\nクラスは簡単に言えば連想配列と関数を組み合わせたもので、処理とデータをセットにすることができます。\nclass MyClass {\n init {\n this.count = 0;\n }\n\n function AddCount {\n this.count += 1;\n }\n}\n\nまず、クラスの記述は class キーワードとそのクラスの名前に続けて、中括弧で囲んだ中で行います。\ninit { } は関数によく似ていますがコンストラクタといって、newキーワードでクラスの実体を作ったときに呼び出されます。関数と同じで引数をつけることもできます。何もしたくない場合は書かなくても構いませんが、たいていの場合クラスの最初の状態(数字をゼロにしておくとか)のために使うことが多いです。\n\nそのほか関数やトークを書けます。\n\n使うときは、new MyClass() のようにnewキーワードを使って、クラス名を関数のように呼び出します。ここでさきほどの init が呼ばれるので、必要であれば引数を書くことができます。これでクラスの実体(インスタンス)ができるので、連想配列と同じように中身を参照して変数を取得したり関数を呼び出したりすることができます。\nfunction TestFunc {\n local obj = new MyClass();\n obj.AddCount();\n return obj.count;\n}\n\nthisキーワード\nたびたび登場していた this は、キーワードです。クラスの実体を示すものです。\n\n下記の例では2個のMyClass() をつくりました。それぞれ別物の中身を有しています。\nobjAでAddCount()を使っていますが、このとき AddCount 関数の this には objA が割り当てられます。\nlocal objA = new MyClass();\nlocal objB = new MyClass();\n\nobjA.AddCount();\n\nプログラミングに詳しい方は、言語によってthisキーワードを省略できるものがあることを知っているかもしれません。\naosora はthisキーワードを省略できないタイプの言語です。\n継承とオーバーライド\nクラスは継承によって拡張できます。\nクラスを用意するときに、クラス名に続けてコロンと継承元のクラスを指定することで継承ができます。継承すると機能の追加と上書きができます。\n\nclass MyClass2 : MyClass {\n function AddCount() {\n this.count += 10;\n }\n}\n\nMyClass2 では MyClass を拡張しているため、MyClassのコンストラクタは自動的に実行されて this.count を 0 にします。\nただし AddCount() は MyClass と同じ関数で用意しているので上書き扱いなり、MyClass の AddCount() ではなくこちらが呼ばれて10増えます。\n\n関数は上書きしますがコンストラクタは上書きせず、継承元→継承先の順でそれぞれが呼ばれます。\n継承元のコンストラクタが引数を必要としている場合は、init の後に: base(...) という感じでbase と引数リストを書けばその内容で親クラスのコンストラクタが呼び出されます。\n: base(...) を書かない場合や、コンストラクタ自体を省略すると、親クラスのコンストラクタには何も渡されません。\nclass MyClass3 : OtherClass{\n init(arg) : base(arg) {\n this.count = 5;\n }\n}\n\nクラス使用の注意点\nクラス実体はセーブデータに格納できないため注意して下さい。",
|
|
22891
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/12_03_%E3%82%AF%E3%83%A9%E3%82%B9"
|
|
23213
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/12_03_%E3%82%AF%E3%83%A9%E3%82%B9",
|
|
23214
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/12_03_%E3%82%AF%E3%83%A9%E3%82%B9.md"
|
|
22892
23215
|
},
|
|
22893
23216
|
{
|
|
22894
23217
|
"id": "aosora:12_04_例外機構",
|
|
@@ -22896,7 +23219,8 @@
|
|
|
22896
23219
|
"source": "aosora_wiki",
|
|
22897
23220
|
"category": "aosora_advanced",
|
|
22898
23221
|
"content": "例外\n例外は一般的なプログラミング言語に存在するエラー処理のシステムを参考にした仕組みです。 \naosora 上でゴースト起動後になんらかの問題が発生したとき(構文エラーなどによる読み込み失敗以外で)「例外」を発生させ、「実行時エラー」をゴーストのバルーンに表示します。\n\n例外を正しく処理することで、必要に応じて処理を続行したりユーザに「実行時エラー」を見せずに済ませたり、スクリプト上で任意に「例外」を発生させることができます。\n\n例外・エラーの原則について\naosora は原則として、プログラミングの知識が豊富ではない方でも使いやすいように作っています。 \n「処理に失敗した」場合は原則として例外ではなく、戻り値で情報を返す関数ではnullを返したり、戻り値でその成否を返したりするようにしてあります。 \n引数の内容を明らかに誤っていたり、数が不足しているような「使い方の間違い」では例外を送出しています。\n\nこれは機能を正しく使っている限りは極力例外を発生させないことで、本節の知識がなくてもひととおりの処理を書けるよう配慮しているためです。\n\n例外を発生させる\n\nプログラムから例外を発生させたい場合、throw文のあとに例外オブジェクトを書きます。 \n値を渡すところはreturn文と似ています。 \nただしここで渡せるのは Errorクラスとその継承クラスの実体だけです。下記の例では Error クラスを new で作成しています。(クラス、new はクラスの説明をどうぞ)\nfunction Test {\n throw new Error();\n}\nこのようにすると、throw 文が実行されたタイミングで処理を中断して「実行時エラー」を発生させます。\n\nなんらかのエラーメッセージをつけることもできます。 \nところで下記は悪い例です。何が問題かを通常は示すといいでしょう。\nthrow new Error(\"エラーです!\");\n\nまた、例外はクラスなので継承によってオリジナルの例外をつくることもできます。 \nError クラスの詳しい中身は末尾の追加機能群にまとめています。\nclass MyError : Error {\n init : base(\"エラーです\") {\n }\n}\n\n例外を処理する\n発出された例外は、適切に処理することで実行時エラーの表示を出すことなく秘密裏に処理することができます。 \n下記のように `try - catch' 構文を使います。\n\ntry と catch はセットでつかいます。 \ntry ブロックのなかで例外が発生すると、実行時エラーと同様にその場で処理をやめるのですが、実行時エラーにするかわりに catch ブロックの処理を行います。 \ntry ブロックのなかで呼び出された関数で例外が発生しても同様で、最も内側にあるtryブロックに対応するcatchブロックの処理だけを行います。\n例外が発生しなかったら、catch ブロックの処理は行われません。\ntry {\n local isError = true;\n if(isError){\n throw new Error();\n }\n return \"エラーは起きませんでした\";\n}\ncatch (err) {\n return \"{err.ToString()} というエラーがおきました。\";\n}\n\nこの例では isError 変数をかえるとエラーではない場合の try ブロックの return を使ったり、エラーで処理を中断して catchブロックの return を使ったりします。 \ncatch (err) { } は err の箇所は指定した名前でローカル変数を作って、そこにエラーの内容を書き込んでくれます。いらなければ catch { }とすることもできます。\nいずれにしても、「実行時エラー」にはなりません。\n\nもし例外があってもなくてもやりたい処理があるかもしれません。その場合は finally ブロックを使います。 \ntry ブロックを例外なく終えた場合、もしくは例外があって catch ブロックを実行終えたときに実行します。 \n特殊な点として、いずれかのブロックで return 文を使ったときでも、finally ブロックを実行してから関数を離脱します。\ntry {\n}\ncatch(err) {\n}\nfinally {\n // ここでなにかする\n}\n\nその他のポイント\n* catch ブロックで例外を再スローすることもできます。throw err; とすればいいです。\n * この場合、更に上位の try - catch によって処理されるか、処理されなければ実行時エラーになります。",
|
|
22899
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/12_04_%E4%BE%8B%E5%A4%96%E6%A9%9F%E6%A7%8B"
|
|
23222
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/12_04_%E4%BE%8B%E5%A4%96%E6%A9%9F%E6%A7%8B",
|
|
23223
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/12_04_%E4%BE%8B%E5%A4%96%E6%A9%9F%E6%A7%8B.md"
|
|
22900
23224
|
},
|
|
22901
23225
|
{
|
|
22902
23226
|
"id": "aosora:13_00_stdユニット",
|
|
@@ -22904,7 +23228,8 @@
|
|
|
22904
23228
|
"source": "aosora_wiki",
|
|
22905
23229
|
"category": "aosora_builtin",
|
|
22906
23230
|
"content": "std ユニット\nstd ユニットを新規追加して、system ユニット(従来からある TalkTimer などが所属する)よりもゴースト開発的に優先度が下がる機能群を配置するようにしてあります。 \nsystem ユニットと違って暗黙のuse指定が入らないのでunitキーワード経由で使うか、使うファイルでuseを書くと良いです。\n\nこの記事の子階層にあるサンプルコードでは、それぞれの機能を use で直接使用可能にしている前提で記載してあります。\n\n* [[File|13_01_File]]\n * テキストファイルを読み書きする機能です。\n* [[JsonSerializer|13_02_JsonSerializer]]\n * jsonという形式の文字列を処理する機能です。\n* [[Regex|13_03_Regex]]\n * 正規表現によって文字列を検索する機能です。",
|
|
22907
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/13_00_std%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88"
|
|
23231
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/13_00_std%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88",
|
|
23232
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/13_00_std%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88.md"
|
|
22908
23233
|
},
|
|
22909
23234
|
{
|
|
22910
23235
|
"id": "aosora:13_01_File",
|
|
@@ -22912,7 +23237,8 @@
|
|
|
22912
23237
|
"source": "aosora_wiki",
|
|
22913
23238
|
"category": "aosora_builtin",
|
|
22914
23239
|
"content": "unit.std.File\nファイルシステムアクセスの機能です。 \nセキュリティの観点からSecurityLevelがLocalではないSHIORIリクエストではすべて失敗します。 \nパスは空文字ではない文字列を入力して下さい。そうでない場合は例外をスローします。\n\nlocal str1 = File.ReadAllText(\"test.txt\");\nlocal str2 = File.ReadAllText(\"test.txt\", \"Shift_JIS\");\nFile.ReadAllText() はテキストファイルを読み込んでその内容を文字列で返します。失敗するとnullが返ります。 \n読み込むファイルがUTF-8ではない場合は文字コードの指定が必要です。(現状Shift_JISのみ)\n\nFile.WriteAllText(\"test.txt\", \"てすと\");\nFile.WriteAllText(\"test.txt\", \"てすと\", \"Shift_JIS\");\nFile.WriteAllText() はテキストファイルを書き込む関数です。成否がtrue/falseで返ります。 \n同名のファイルは上書きするので注意してください。 \nShift_JIS で書き込みたい場合は文字コードを指定します。\n\nFile.Move(\"test.txt\", \"test2.txt\");\nFile.Copy(\"test.txt\", \"test2.txt\");\nFile.Move(), File.Copy() はファイルを移動/リネームまたはコピーする関数です。移動元、移動先の順で書きます。成否がtrue/falseで返ります。 \n移動先ではファイルを上書きするので注意してください。\n\nFile.Exists(\"test.txt\"); // 存在するか\nFile.IsFile(\"test.txt\"); // ファイルか\nFile.IsDirectory(\"test.txt\"); // フォルダか\nこれらの関数は指定したパスがフォルダ(ディレクトリ)もしくはファイルか、そもそも存在するかをtrue/falseで返します。\n\nFile.CreateDirectory(\"test/test\");\nFile.CreateDirectory() はフォルダを作ります。成否がtrue/falseで返ります。 \n指定したフォルダに親フォルダがない場合は、親フォルダも自動的につくります。",
|
|
22915
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/13_01_File"
|
|
23240
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/13_01_File",
|
|
23241
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/13_01_File.md"
|
|
22916
23242
|
},
|
|
22917
23243
|
{
|
|
22918
23244
|
"id": "aosora:13_02_JsonSerializer",
|
|
@@ -22920,7 +23246,8 @@
|
|
|
22920
23246
|
"source": "aosora_wiki",
|
|
22921
23247
|
"category": "aosora_builtin",
|
|
22922
23248
|
"content": "unit.std.JsonSerializer\naosora のデータをjson文字列と相互に変換します。 \nセーブデータと同じ仕組みを使っているので、変換・復元できるかどうかはセーブデータと同じルールになります。\n\nlocal str = JsonSerializer.Serialize(obj);\nJsonSerializer.Serialize() は json文字列にaosoraのデータを変換します。 \njavascriptの JSON.stringify() に似ています。\n\nlocal obj = JsonSerializer.Deserialize(str);\nJsonSerializer.Deserialize() は json文字列をaosoraのデータに変換します。失敗するとnullを返します。 \njavascriptの JSON.parse() に似ています。",
|
|
22923
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/13_02_JsonSerializer"
|
|
23249
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/13_02_JsonSerializer",
|
|
23250
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/13_02_JsonSerializer.md"
|
|
22924
23251
|
},
|
|
22925
23252
|
{
|
|
22926
23253
|
"id": "aosora:13_03_Regex",
|
|
@@ -22928,7 +23255,8 @@
|
|
|
22928
23255
|
"source": "aosora_wiki",
|
|
22929
23256
|
"category": "aosora_builtin",
|
|
22930
23257
|
"content": "unit.std.Regex\n「正規表現」によって文字列検索をする機能です。 \n\nRegex.IsMatch()\n最初の引数に検索対象の文字列を、2番目の引数に正規表現文字列を入力すると、検索対象の文字列内に正規表現にマッチする部分があるかどうかを判定して、一致が見つかった場合にtrue,しない場合はfalseを返します。 \n正規表現に完全一致をチェックしたい場合は、^と$の記号を使用して全体が先頭と末尾の条件をつけて使います。\n\nif(Regex.IsMatch(\"あいうえお\", \"^あいう\")){\n // OK\n}\n\nRegex.Match()\n最初の引数に検索対象の文字列を、2番目の引数に正規表現文字列を入力すると、検索対象の文字列内に正規表現にマッチする部分があるかどうかを判定して、最初に見つかった一致に対応する「マッチ結果オブジェクト(下部参照)」連想配列を返します。 \n一致が1つも見つからなかった場合、null が返ります。\n\nlocal result = Regex.IsMatch(\"あいうえお\", \"^あいう\");\n見つかった場合に連想配列、見つからなかった場合はnullになるので、if文にいれて IsMatch() と同じ使い方も可能ですが、 IsMatch() は連想配列を返さない分ちょっとだけ環境にやさしいです。\n\nRegex.Matches()\nRegex.Match() の、結果を複数返す版です。 \n見つかったすべての一致に対して「マッチ結果オブジェクト(下部参照)」を作成し、それらを含めた線形配列を返します。\n\n一致が1つも見つからなかった場合は、空の配列が返ります。\n\nRegex.Replace()\n最初の引数に検索対象の文字列を、2番目の引数に正規表現文字列、3番目の引数に置換先の文字列を入力します。 \n検索対象内で正規表現にマッチした部分を、置換先の文字列ですべて置き換えます。\nlocal result = Regex.Replace(\"あいうえお\", \"^あいう\", \"aiu\"); // \"aiuえお\"\n\nRegex.ReplaceCapture()\n番号付きキャプチャグループの置換をします。\n最初の引数に検索対象の文字列を、2番目の引数に正規表現文字列、3番目の引数に置換先の文字列を入力します。 \nRegex.Replace() と異なり $1 などキャプチャグループを示す制御文字を使用してより複雑な置換ができます。\nlocal result = Regex.ReplaceCapture(\"あいうえお\", \"^(あ)(い)(う)\", \"$3$2$1\"); // \"ういあえお\"\n\nRegex.IsValid()\n引数に入力したパターン文字列が正規表現として適切かどうかを判定します。 \n適切な場合にtrue, そうでない場合はfalseが返ります。 \nこの関数以外の、引数に正規表現パターンを入力する関数では、パターンとして不適切な文字列が入力された場合エラーを発生させるので、必要に応じてこの関数で事前にチェックすることができます。\nRegex.IsValid(\"^abc\"); // true\n\nマッチ結果オブジェクト\n正規表現の判定結果のオブジェクトは、連想配列で、それぞれ次のような情報が格納されています。\n\nindex\n検索対象文字列内の、マッチした部分のインデックス。\n\nlength\nマッチした文字列の長さ。body.length と同じです。\n\nbody\nマッチした文字列。",
|
|
22931
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/13_03_Regex"
|
|
23258
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/13_03_Regex",
|
|
23259
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/13_03_Regex.md"
|
|
22932
23260
|
},
|
|
22933
23261
|
{
|
|
22934
23262
|
"id": "aosora:14_VisualStudio_Code拡張",
|
|
@@ -22936,7 +23264,8 @@
|
|
|
22936
23264
|
"source": "aosora_wiki",
|
|
22937
23265
|
"category": "aosora_general",
|
|
22938
23266
|
"content": "VisualStudio Code 拡張\nVisualStudio Code(以下vscode)用の拡張機能も公開しています。あわせてどうぞ。 \nReleaseの \"vscode-extension.vsix\" をダウンロードして、vscodeの「拡張機能」サイドバーの上の方にある「・・・」をクリックし「VSIX からのインストール」からインストールできます。 \n今のところまだvscodeのmarketplaceでは公開していませんが、そのうち公開するかもしれません。\n\nできること\n* シンタックスハイライト(色分け)\n* エディタ上でのエラー検出\n* トークをゴーストに送信\n* デバッグ\n * ゴーストのフォルダをvscodeで開いた状態で、.asファイルの編集画面で F5 を押し、 Aosora Debugger を選択すると起動します。\n\nバージョンについて\n原則としてvscode拡張と aosora.dll はできるだけバージョンをそろえて使うようにしてください。 \nvscode拡張にも aosora.dll 相当のものが組み込まれていて、いくつかの機能で使われているので挙動をあわせるためです。 \n\nある程度言語仕様がかたまってきているので多少バージョンが違っても動くと思いますが、うまくいかない場合はバージョンをあわせてみてください。\n\nシンタックスハイライト\n蒼空のキーワードなどを色分けして、見やすく表示します。 \n特に設定する必要はありません。\n\nエディタ上でのエラー検出\naosoraの構文エラーを、vscode上でゴーストを起動せずとも確認することができます。 \nエラー箇所は赤い波線で表示しています。\n\naosoraはファイルにエラーがあったらその時点でファイル解析が続行できなくなるので、表示されるエラーは1ファイルあたり最初の1つだけになります。 \nそのためエラーが表示されたらその場で修正した方が効率が良いです。\n\n処理できるのは構文エラーだけで、実行時エラーは実行するまでわからないので、ここでエラーが出てないからと言ってゴーストがエラーを起こさないわけではないことは注意。\n\nトークをゴーストに送信\nファイルスコープでfunctionまたはtalkが定義されている場合、「ゴーストに送信」と表示されるようになります。 \nクリックするとトークを送信できます。 \n\n右クリックメニューにもでてきます。\n\n引数なしで実行して、結果をゴーストに送信しています。 \n仕組み的には、里々の「さとりて」と同じです。\n\nデバッグ\nvscodeで蒼空のスクリプトをデバッグできます。 \nvscodeの機能はいろいろあるので詳しくは割愛しますが…\n\n* vscodeのエクスプローラービューでゴーストのフォルダが開かれている状態\n* SSPを起動してない状態\n* asファイルの編集画面\n\nで F5 を押し、出てきたリストで「Aosora Debugger」を選択するとゴーストを起動できます。\nasファイルの行番号の左をクリックすると赤い「ブレークポイント」を置けて、そこに処理が来るとその時点で処理を一旦停止して内部の状態を確認することができます。 \n(一時停止中、F5で再開)\n\nデフォルトのSSPのゴーストフォルダに入れてない場合や、ghost/master直下にaosora.dll を入れてない場合や、asproj側でSSPの場所を指定する必要があります。",
|
|
22939
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/14_VisualStudio_Code%E6%8B%A1%E5%BC%B5"
|
|
23267
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/14_VisualStudio_Code%E6%8B%A1%E5%BC%B5",
|
|
23268
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/14_VisualStudio_Code%E6%8B%A1%E5%BC%B5.md"
|
|
22940
23269
|
},
|
|
22941
23270
|
{
|
|
22942
23271
|
"id": "aosora:15_エラーへの対処",
|
|
@@ -22944,7 +23273,8 @@
|
|
|
22944
23273
|
"source": "aosora_wiki",
|
|
22945
23274
|
"category": "aosora_general",
|
|
22946
23275
|
"content": "エラーが発生したときは\n\nエラーが発生したときは、まずは、ゴースト上にエラーの説明が出る場合は、そちらで修正を試みてください。1ファイルに対して同時に発生するエラーは1個だけで、エラーが起きると解析がとまるので、1つずつ解消しては起動できるか確認する流れになります。\n\n蒼空は、スクリプトがすべて解釈できるかチェックしてから起動するので、呼び出されていないトークなどでエラーが起きることもあります。事前にできるだけ問題点を洗い出しておくことをよしとする考え方です。\n\nただ、あんまり細かくテストしているわけではないので\n\n* 正しいのにエラーになる\n* エラーなのにそのまま読み込まれた結果他の場所がおかしくなる\n* エラーの内容が間違っている\n* 本来と違うエラーが出る\n\nこういうことも起きると思います。そのときは、ぜひご相談ください。\n\n自分で調べてみるときには、vscodeの拡張機能によるデバッグが有効かもしれません。\n\nSSPが落ちたときは\n\nSSPがクラッシュした場合、原因は蒼空側にあると思って大丈夫です。スクリプトの記述に問題がある場合も一応クラッシュだけはしないようにするつもりなので、蒼空側で落ちないようにしたいところだと思ってください。\n\n変な動きをする、使いにくい\n\n普通にゴーストのトークを書いてるはずなのに、おかしな記法でなんとかしないといけないとか、仕様的におかしいのではといった点にお気付きの場合は、ぜひお知らせください。\n\nまた、御存知の通り発展途上のSHIORIなので、ちゃんと対応できていない箇所も多々あります。お困りなものなどあればご相談ください。",
|
|
22947
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/15_%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%B8%E3%81%AE%E5%AF%BE%E5%87%A6"
|
|
23276
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/15_%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%B8%E3%81%AE%E5%AF%BE%E5%87%A6",
|
|
23277
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/15_%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%B8%E3%81%AE%E5%AF%BE%E5%87%A6.md"
|
|
22948
23278
|
},
|
|
22949
23279
|
{
|
|
22950
23280
|
"id": "aosora:16_試験的_非SAORIプラグイン",
|
|
@@ -22952,7 +23282,8 @@
|
|
|
22952
23282
|
"source": "aosora_wiki",
|
|
22953
23283
|
"category": "aosora_general",
|
|
22954
23284
|
"content": "非SAORI プラグイン\n> [!WARNING]\n> 現在この機能は試験実装で、意見募集中です。 \n> バージョンチェック機構が不完全かつ、互換性のない変更も予定されているため、十分注意して使ってください。 \n> バグ報告やご意見などは issue や直接ご連絡いただけると嬉しいです。\n\n蒼空には「SAORIではない」機能拡張(以下プラグイン)を提供する準備があります。 \n現在は試験実装であり、意見募集の段階ですが、試験実装を利用して動かすことが可能です。\n\n「非SAORI」とは\nSAORIではないことによる違いと恩恵について、下記のとおりです。 \n特に蒼空専用にしたことで蒼空のデータに幅広くアクセスすることができるメリットがあります。\n\n* 蒼空専用、ほかのSHIORIでは使用不可\n* 相互呼び出しが可能\n * 蒼空の関数をプラグインから呼び出せる\n* ネイティブなデータ交換\n * SAORIのようにいちど平文に変換されず、そのままのデータ型で扱える\n * 連想配列や線形配列にもアクセス可能\n* テンプレートとラッパーライブラリがあってうれしい\n * C++, Rust の実装があるので、すぐに作り始められます\n\nプラグインの使用方法\nPluginManager を使って相対パスでゴーストにプラグインDLLをロードできます。 \nロード関数は、プラグイン側の実装によってさまざまな結果を返すので、プラグインごとの使い方を参照します。\nplugin = PluginManager.Load(\"plugin_sample.dll\");\nplugin.TestFunction();\n\n実装方法\nC++ と Rust にラッパーライブラリとサンプルを用意しているので、サンプルとラッパーライブラリのコメントを参考に、さわってみてください。 \n\n共通の注意点\n* (SAORI同様ですが) SSPを巻き込んで落ちるため、キャッチしてないC++例外、Rustのパニック、その他メモリ違反などが呼び出し側に影響しないようにしてください\n* 文字列データはUTF-8で扱われます\n * Rustはそのままでよく、C++はコンパイラオプションに /utf8 を指定する形で対応しています\n* 非同期処理には対応していません\n * プラグインがスレッドを作ることを妨げるわけではないですが、蒼空との通信は、蒼空からプラグイン関数が呼び出されてから帰る前の間にそのスレッドでだけ行ってください\n\nC++ で作る\naosora-shiori.sln の aosora-plugin-sample プロジェクトが最小構成のサンプルです。 \n変更してビルドすることで、プラグインが作れます。\nビルドすると ssp/ghost/test/ghost/master に plugin_sample.dll が配置されるようになっています。\n\naosora-plugin-wrapper-cpp はプラグインをつくるためのラッパーライブラリで、プラグインプロジェクトはこれを参照しています。\n\naosora_plugin_get_version()\nこれはバージョンチェック関数で、プラグインを読み込むときに実行されます。必須の実装です。 \n実装通り、CheckBinaryCompatibility() が true を返したなら、VersionCheckOk() を呼び出してください。 \nif (!versionInfo.CheckBinaryCompatibility()) {\n return;\n}\nversionInfo.VersionCheckOk();\n本来、versionInfoに蒼空のバージョンが通知されるので、CheckBinaryCompatibility() によるラッパーライブラリのチェックのあと、作者が任意にバージョンチェックを行うことを想定しています。\n\nVersionCheckOk() を呼び出さなければ蒼空はプラグインが非対応バージョンであると認識してプラグインのロードをとりやめます。\n\naosora_plugin_load()\nプラグインのバージョンチェックに成功し、蒼空がプラグインに起動を指示したときに呼び出されます。必須の実装です。 \nここで必要な情報を準備するとともに、プラグイン実体を示すオブジェクトを返すようにします。 \n\nサンプルではこのような処理を行っています。\nauto m = accessor.CreateMap(); // 1.\nm.MapSetValue(\"TestFunction\", accessor.CreateFunction(TestFunction)); // 2.\naccessor.SetReturnValue(m); // 3.\n\n1. 連想配列を作成します\n2. C++ 側で実装した関数から蒼空で呼び出せる関数オブジェクトを作成し、\"TestFunction\" というキーで連想配列に格納します。\n3. aosora_plugin_load() の実行結果として返すオブジェクトを SetReturnValue() で指定します。\n\n蒼空から見るとプラグインはこのように使います。\nplugin = PluginManager.Load(\"plugin_sample.dll\");\nplugin.TestFunction();\nTestFunction はプラグインが用意したC++側の関数につながっていて、呼び出すとプラグイン側の関数が呼び出されています。\n\nプラグインと蒼空のやりとりはすべて aosora::AosoraAccessor クラスで行います。 \nできることはこのクラスのコメントにまとめて書いてあるので、見てみてください。 \nまた、AosoraAccessor で作成した蒼空上のデータ(例だと関数や連想配列)は、明示的な破棄は必要ありません。 \n(スマートポインタとガベージコレクションによって自動的に破棄されます。)\n\nスマートポインタを抜いた raw実装も存在しています(AosoraAccessorはraw実装のラッパーという位置づけ)が、難易度は高いくメリットも微妙なので説明は省略します。\n\naosora_plugin_unload()\nサンプルに実装していなかったですが、プラグインが解放されるタイミングでこの関数があれば呼び出されます。 \n引数はありません。実装していなくても構いません。\n\nRust で作る\n> [!NOTE]\n> 開発者は Rust の初心者です。むずかしいね!\n\naosora-plugin-rust-sample フォルダが、最小構成のプラグインサンプルです。 \nbuild.bat を実行するとビルドできます。(Cargo でビルドして、サンプルゴーストのフォルダにコピーしています)\n\naosora_plugin_get_version()\nこれはバージョンチェック関数で、プラグインを読み込むときに実行されます。必須の実装です。 \n実装通り、check_binary_compatibility() が true を返したなら、version_check_ok() を呼び出してください。 \n\n// aosora plugin バージョンチェック\n#[no_mangle]\npub extern \"C\" fn aosora_plugin_get_version(version_info: aosora::PluginVersionInfo) {\n\tif version_info.check_binary_compatibility() {\n\t\tversion_info.version_check_ok();\n\t}\n}\n本来、version_infoに蒼空のバージョンが通知されるので、check_binary_compatibility() によるラッパーライブラリのチェックのあと、作者が任意にバージョンチェックを行うことを想定しています。\n\nversion_check_ok() を呼び出さなければ蒼空はプラグインが非対応バージョンであると認識してプラグインのロードをとりやめます。\n\naosora_plugin_load()\nプラグインのバージョンチェックに成功し、蒼空がプラグインに起動を指示したときに呼び出されます。必須の実装です。 \nここで必要な情報を準備するとともに、プラグイン実体を示すオブジェクトを返すようにします。 \n\nサンプルではこのような処理を行っています。\naccessor.proc(|| { // 1.\n\t\tlet map = accessor.create_map(); // 2. \n\t\tmap.set_value_with_string_key(\"TestFunction\", &accessor.create_function(None, test_function))?; // 3.\n\n\t\treturn Ok(Some(map)); // 4/\n\t});\n\n1. proc() で処理をラップします。Result<T>で返した結果を蒼空に渡すラッパーです。中身を見ればわかりますが、無理に使わない方法もあります\n2. 連想配列を作成します\n2. Rust 側で実装した関数から蒼空で呼び出せる関数オブジェクトを作成し、\"TestFunction\" というキーで連想配列に格納します。\n3. aosora_plugin_load() の実行結果として返すオブジェクトをResult形式で返却します。\n\n蒼空から見るとプラグインはこのように使います。\nplugin = PluginManager.Load(\"plugin_sample.dll\");\nplugin.TestFunction();\nTestFunction はプラグインが用意したRust側の関数につながっていて、呼び出すとプラグイン側の関数が呼び出されています。\n\nプラグインと蒼空のやりとりはすべて aosora::AosoraAccessor クラスで行います。 \nできることはこのクラスのコメントにまとめて書いてあるので、見てみてください。 \nまた、AosoraAccessor で作成した蒼空上のデータ(例だと関数や連想配列)は、明示的な破棄は必要ありません。 \n(Rustのオブジェクト管理と蒼空のガベージコレクションによって自動的に破棄されます。)\n\nスマートポインタを抜いた raw実装も存在しています(AosoraAccessorはraw実装のラッパーという位置づけ)が、難易度は高いくメリットも微妙なので説明は省略します。",
|
|
22955
|
-
"url": "https://github.com/kanadelab/aosora-shiori/wiki/16_%E8%A9%A6%E9%A8%93%E7%9A%84_%E9%9D%9ESAORI%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3"
|
|
23285
|
+
"url": "https://github.com/kanadelab/aosora-shiori/wiki/16_%E8%A9%A6%E9%A8%93%E7%9A%84_%E9%9D%9ESAORI%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3",
|
|
23286
|
+
"rawUrl": "https://raw.githubusercontent.com/wiki/kanadelab/aosora-shiori/manual/16_%E8%A9%A6%E9%A8%93%E7%9A%84_%E9%9D%9ESAORI%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3.md"
|
|
22956
23287
|
}
|
|
22957
23288
|
]
|
|
22958
23289
|
}
|