; ; HSP help manager用 HELPソースファイル ; (先頭が「;」の行はコメントとして処理されます) ; %type 拡張命令 %ver 3.3 %note hspda.asをインクルードすること。 %date 2009/08/01 %author onitama %dll hspda %url http://hsp.tv/ %port Win %index sortval 配列変数を数値でソート %group 拡張入出力制御命令 %prm p1 : 数値型の配列変数名 p2 : 並び順 (0=小さい順/1=大きい順) p1,p2 %inst 数値が格納された配列変数を指定された並び順でソート(並び替え)します。 p1で指定された配列変数を直接並べ替えます。 並び替えに関する情報は、sortget命令で得ることができます。 %href sortget %index sortstr 配列変数を文字列でソート %group 拡張入出力制御命令 %prm p1,p2 p1 : 文字列型の配列変数名 p2 : 並び順 (0=小さい順/1=大きい順) %inst 文字列が格納された配列変数を指定された並び順でソート(並び替え)します。 p1で指定された配列変数を直接並べ替えます。 ソートの並び順は、 ASCIIコードの大きい小さいで比較されるので、 ABC順、あいうえお順に並べ替えられます。 並び替えに関する情報は、sortget命令で得ることができます。 %href sortget %index sortnote メモリノート文字列をソート %group 拡張入出力制御命令 %prm p1,p2 p1 : メモリノート形式の文字列型の変数名 p2 : 並び順 (0=小さい順/1=大きい順) %inst メモリノートパッド形式の 文字列が格納された変数を、 指定された並び順でソート(並び替え)します。 p1で指定された変数を直接並べ替えます。 ソートの並び順は、 ASCIIコードの大きい小さいで比較されるので、 ABC順、あいうえお順に並べ替えられます。 並び替えに関する情報は、sortget命令で得ることができます。 メモリノートパッド形式は、 notesel, noteget命令などで使用することのできる「\n」(改行コード)で区切られたデータ列のことです。 %href sortget %index sortget ソート元のインデックスを取得 %group 拡張入出力制御命令 %prm p1,p2 p1 : 結果が代入される変数名 p2 : インデックスNo. %inst sortstr, sortval, sortnote命令を実行後の配列において、格納されているデータは、ソートする前はどのインデックスに置かれていたものかを調べて結果を返します。 たとえば、配列変数aをソートした後、 sortget n,4という命令で、1という値が返ってきたとすると、a.4という配列変数に現在入っている値は、ソートする前には、a.1 に入っていたことを示します。 この命令は、データの一部だけをソートして、その情報をもとにほかのデータの並び替えも行なうような時に有効です。 %href sortstr sortval sortnote %index csvstr CSVの1行を配列に変換 %group 拡張入出力制御命令 %prm p1,p2 p1 : 結果が代入される文字列型の配列変数名 p2 : CSVの1行を取り出した文字列 %inst CSV形式のデータから取り出した1行だけのデータを、 文字列型の配列変数に展開します。 CSV形式は、「,」で区切られたテキストのデータです。 たとえば、「a,b,c,d」 のような 「,」 で区切られた4つの文字列があったとすると、csvstr命令を使うことで 「a.0="a"」 「a.1="b"」「a.2="c"」「a.3="d"」のように配列変数にそれぞれの要素を分けて代入することができます。 p1で指定される配列変数は、必ず文字列型の配列変数である必要があります。 ^ 配列変数に確保されている文字数や配列の限界を越えた部分は無視されます。(エラーになったり、データが破壊されることはありません) ^ 命令の実行中にエラーが起こった場合にはシステム変数 statが1になります。 正常に変換された場合は、システム変数 statは、0になります。 %index csvnote CSVの1行をメモリノート変換 %group 拡張入出力制御命令 %prm p1,p2 p1 : 結果が代入される文字列型の変数名 p2 : CSVの1行を取り出した文字列 %inst CSV形式のデータから取り出した1行だけのデータを メモリノートパッド形式の文字列型の変数に展開します。 CSV形式は、「,」で区切られたテキストのデータです。 たとえば、 「a,b,c,d」のような「,」で区切られた4つの文字列があったとするとcsvstr命令を使うことで「"a\nb\nc\nd\n"」のようにメモリノートパッド命令で扱うデータ("\n"で区切られたデータ)として代入することができます。 ^ 命令の実行中にエラーが起こった場合にはシステム変数 statが1になります。 正常に変換された場合は、システム変数 statは、0になります。 %index xnotesel 排他メモリノート初期化 %group 拡張入出力制御命令 %prm p1,p2 p1 : 対象となる文字列型の変数名 p2 : 項目の最大数(省略時は256) %inst 排他メモリノートの初期化を行ないます。 対象となる変数と、参照カウントのリセットが行なわれます。 ^ 排他メモリノートは、メモリノートパッド命令で使用するものと同じく、1行に1つの項目を持つ長い文字列型のデータです。 ただし、排他メモリノートは異なる項目(行)しか追加することができません。 すでに持っている項目を追加しようとすると、参照カウントだけが更新され、実際には追加されません。これにより、同じ文字列を重複しないで格納することや、重複の統計、文字列サーチなどに応用することができます。 ^ 排他メモリノートは、xnoteselで対象となる変数を指定して、必要な場合は、最大項目数も設定します。 以降は、 xnoteadd命令 を実行するごとに、排他メモリノートの変数に項目が追加されていきます。 %href xnoteadd %index xnoteadd 排他メモリノート項目追加 %group 拡張入出力制御命令 %prm p1 p1 : 排他メモリノートに追加される文字列 %inst 排他メモリノートに項目を追加します。 項目は、改行を含まない文字列でなければいけません。 実行すると、項目が追加されたインデックスが、システム変数statに代入されます。 ^ すでに排他メモリノートに含まれる項目は、追加されません。 その場合は、システム変数statにすでに含まれる項目のインデックスが代入され、項目の参照カウントが1つ増やされます。 項目の参照カウントは、sortget命令で取得することが可能です。 %href xnotesel %index csvsel CSV検索の対象バッファを選択 %group 拡張入出力制御命令 %prm val,mode val : CSV検索の対象となる文字列を格納した変数名 mode : 区切りキャラクタコード %inst CSV検索の対象となるバッファを選択します。 CSV形式 またはノートパッド形式の文字列が格納されている変数を指定することができます。 modeで区切りキャラクターを指定することができます。 modeを省略または0にした場合は「,」が使用されます。 9を指定することでタブ区切りのcsvファイルに対応することができます。 %href csvres csvflag csvopt csvfind %index csvres CSV検索の結果出力バッファを指定 %group 拡張入出力制御命令 %prm val val : CSV検索結果を出力する変数名 %inst CSV検索の結果出力バッファを指定します。 必ずある程度のサイズを確保した文字列型の変数にする必要があります。 想定される出力結果に応じて sdim命令 などでサイズをあらかじめ確保しておいてください。 通常は 32000バイト程度あれば十分です。 出力結果のサイズがバッファを溢れてしまうような場合は、指定したバッファのサイズに収まる範囲で検索を中断しますので、バッファオーバーフローは起こりません。 %href csvsel csvflag csvopt csvfind %index csvflag CSV検索の項目フラグを設定 %group 拡張入出力制御命令 %prm id,val id : 項目ID val : 設定値(0〜255) %inst CSV検索の対象となる項目単位でのフラグ設定を行ないます。 設定値が0の場合は、CSV検索は行なわれません。 0以外の場合は、CSV検索の対象項目となります。 デフォルトでは、すべての項目が検索対象となっています。 項目idは、最も左にある項目を0として以降区切り記号ごとに右に1づつ増加していきます。 %href csvsel csvres csvopt csvfind %index csvopt CSV検索のオプションを設定 %group 拡張入出力制御命令 %prm p1 p1 : オプション値 %inst CSV検索のオプション設定を行ないます。 以下の値を指定することができます。複数指定する場合は、「+」か「|」の演算子でつなげることができます。 ^p CCSV_OPT_ANDMATCH ;AND検索 CCSV_OPT_NOCASE ;半角大文字小文字を同一視 CCSV_OPT_ZENKAKU ;全角半角を同一視 CCSV_OPT_ADDLINE ;行番号を先頭に付加 CCSV_OPT_EXPRESSION ;正規表現を指定(未実装) ^p %href csvsel csvres csvflag csvfind %index csvfind CSV検索を実行 %group 拡張入出力制御命令 %prm "string",p1,p2 "string" : 検索キーワード p1 : 結果出力の最大数(0=無制限) p2 : 結果出力の開始インデックス(0=先頭) %inst CSV検索を行ないます。 必ず検索対象のバッファ(csvsel)と出力先(csvres)を指定しておく必要があります。 "string"で指定されたキーワードを含むCSV行を結果バッファに抽出していきます。 キーワードは、複数行に渡って(メモリノートパッド形式)指定することができます。 csvopt命令で AND検索のオプションを入れた場合は、複数キーワードすべてに一致する行だけを取り出します。 そうでない場合は、複数キーワードのいずれかに一致する行を取り出すOR検索となります。 %href csvsel csvres csvflag csvopt %index rndf_ini 実数乱数の初期化 %group 拡張入出力制御命令 %prm p1 p1(-1) : 初期化のシード値 %inst 実数乱数の初期化を行ないます。 p1で初期化に使用される種(シード値)を指定することができます。 p1を省略するか、-1を指定するとクロックから得られたランダムなシード値が設定されます。 プラグインの初期化時に実数乱数の初期化は行なわれるため、必ずしも rndf_ini命令 を入れておく必要はありません。 %href rndf_get rndf_geti %index rndf_get 実数乱数を取得 %group 拡張入出力制御命令 %prm p1 p1 : 実数乱数を代入する変数名 %inst 実数乱数を取得してp1で指定した変数に代入します。 実数乱数は、 0以上で 1未満の実数となるもので、 Mersenne Twister アルゴリズムにより生成されます。 %href rndf_ini rndf_geti %index rndf_geti 乱数を取得 %group 拡張入出力制御命令 %prm p1,p2 p1 : 実数乱数を代入する変数名 p2(100) : 生成する乱数の範囲値 %inst 整数乱数を取得してp1で指定した変数に代入します。 乱数は、 0以上でp2で指定した数値未満の整数となります。 ここで取得される乱数は、 rndf_get で取得される実数乱数と同様のアルゴリズム (Mersenne Twister) により生成されます。 %href rndf_ini rndf_get %index getvarid 変数IDを取得 %group 拡張入出力制御命令 %prm p1,"name" p1 : 結果が代入される変数名 "name" : 変数名 %inst 変数名から、変数IDに変換を行ないます。 変数IDは、HSPシステム内部で管理されている番号で、0から始まる値が割り当てられています。 結果は、p1で指定された変数に代入されます。 該当する変数名が存在しなかった場合には、-1が代入されます。 %href getvarname getmaxvar %index getvarname 変数名を取得 %group 拡張入出力制御命令 %prm p1,p2 p1 : 結果が代入される変数名 p2 : 変数ID %inst 変数IDから変数名を取得します。 変数IDは、HSPシステム内部で管理されている番号で、0から始まる値が割り当てられています。 結果は、p1で指定された変数に代入されます。 該当する変数IDが存在しなかった場合には、空の文字列("")が代入されます。 %href getvarid getmaxvar %index getmaxvar 変数IDの最大数を取得 %group 拡張入出力制御命令 %prm p1 p1 : 結果が代入される変数名 %inst 現在利用可能な変数IDの最大数を取得します。 結果は、p1で指定された変数に代入されます。 変数IDは、HSPシステム内部で管理されている番号で、0から始まる値が割り当てられています。 最大数が10の場合、利用可能な変数IDは、0から9となります。 %href getvarname getvarid %index vsave すべての変数を保存 %group 拡張入出力制御命令 %prm "filename" "filename" : ファイル名 %inst 定義されているすべての変数データをファイルに保存します。 "filename"で指定されたファイルが作成されます。 保存されたファイルは、vload命令またはvload_start命令による変数データ読み込みに使用することができます。 vsave命令は、すべての変数の内容を配列やモジュール変数も含めて保存しますが、クローンされた変数、comobj型、variant型の変数は対象となりません。 また、label型の変数の保存が可能ですが、読み込み時に正常なラベル情報にならない可能性があるので注意してください。 正常に終了した場合は、システム変数statに0が代入されます。 正しく処理が完了していない場合、システム変数statは0以外の値になります。 %href vload vsave_start %index vload すべての変数を読み込み %group 拡張入出力制御命令 %prm "filename" "filename" : ファイル名 %inst 定義されているすべての変数をファイルから読み込みます。 "filename"で指定されるファイルは、vsave命令またはvsave_start命令により変数データ保存されている必要があります。 vload命令は、現在定義されているすべての変数名をファイルに保存されているデータから検索して、名前が一致したものを読み込みます。 ファイルに保存されていない変数は、そのままの内容を保持します。 また、モジュール型の変数は、保存した時点とモジュール名、モジュール変数定義数が同じでなければ読み込まれません。 正常に終了した場合は、システム変数statに0が代入されます。 正しく処理が完了していない場合、システム変数statは0以外の値になります。 %href vsave vload_start %index vsave_start 変数保存の開始 %group 拡張入出力制御命令 %prm %inst 個別指定による変数保存を開始します。 必ず、vsave_start命令により開始した後、vsave_put命令によって必要な変数を指定した後、最後にvsave_end命令を実行する必要があります。 個別指定による変数保存は、任意の変数データをファイルに保存することができる以外は、vsave命令と同様です。 正常に終了した場合は、システム変数statに0が代入されます。 正しく処理が完了していない場合、システム変数statは0以外の値になります。 %href vsave_put vsave_end %index vsave_put 保存する変数の指定 %group 拡張入出力制御命令 %prm p1 p1 : 保存する変数 %inst 個別指定による保存される変数を指定します。 必ず、vsave_start命令を先に実行しておく必要があります。 個別指定による変数保存は、任意の変数データをファイルに保存することができる以外は、vsave命令と同様です。 すべての変数の内容を配列やモジュール変数も含めて保存しますが、クローンされた変数、comobj型、variant型の変数は対象となりません。 また、label型の変数の保存が可能ですが、読み込み時に正常なラベル情報にならない可能性があるので注意してください。 正常に終了した場合は、システム変数statに0が代入されます。 正しく処理が完了していない場合、システム変数statは0以外の値になります。 %href vsave_start vsave_end %index vsave_end 変数保存の終了 %group 拡張入出力制御命令 %prm "filename" "filename" : ファイル名 %inst 個別指定による変数保存を終了します。 必ず、vsave_start命令を先に実行しておく必要があります。 実行されると、"filename"で指定されたファイルが作成されます。 正常に終了した場合は、システム変数statに0が代入されます。 正しく処理が完了していない場合、システム変数statは0以外の値になります。 %href vsave_put vsave_start %index vload_start 変数読み込みの開始 %group 拡張入出力制御命令 %prm "filename" "filename" : ファイル名 %inst 個別指定による変数読み込みを開始します。 必ず、vload_start命令により開始した後、vload_get命令によって必要な変数を指定した後、最後にvload_end命令を実行する必要があります。 個別指定による変数読み込みは、任意の変数データをファイルから読み込むことができる以外は、vload命令と同様です。 正常に終了した場合は、システム変数statに0が代入されます。 正しく処理が完了していない場合、システム変数statは0以外の値になります。 %href vload_get vload_end %index vload_get 読み込む変数の指定 %group 拡張入出力制御命令 %prm p1 p1 : 読み込みを行なう変数 %inst 個別指定によりファイルから読み込まれる変数を指定します。 必ず、vload_start命令を先に実行しておく必要があります。 個別指定による変数読み込みは、任意の変数データをファイルから読み込むことができる以外は、vload命令と同様です。 vload_get命令は、指定された変数名をファイルに保存されているデータから検索して、名前が一致するデータがあった場合に読み込みます。 ファイルに保存されていない場合は、変数の内容は保持されます。 また、モジュール型の変数は、保存した時点とモジュール名、モジュール変数定義数が同じでなければ読み込まれません。 正常に終了した場合は、システム変数statに0が代入されます。 正しく処理が完了していない場合、システム変数statは0以外の値になります。 %href vload_start vload_end %index vload_end 変数読み込みの終了 %group 拡張入出力制御命令 %prm %inst 個別指定による変数読み込みを終了します。 必ず、vload_start命令を先に実行しておく必要があります。 正常に終了した場合は、システム変数statに0が代入されます。 正しく処理が完了していない場合、システム変数statは0以外の値になります。 %href vload_start vload_get