プロセルピナ | ||||||||||
Top |
Internet |
Private Proxy |
Capture Device |
Download |
Config and Words |
Online Help |
Online Home |
|||
[BACK] | |||||||
☞
Top >
Proserpine Macro >
Commands >
file ifContains
キーワードで関連する文字列を取得file ifContains: (Parameters) 【Parameters】 dir= string, データファイルのファイルパス file= string, データファイルのファイル名 encode= string, データファイルのエンコード (Optional) separator= string, キーワードと取得文字列の区切り。省略時は ⇒⇒ の2文字。 (Optional) keyw.separate_chars= string, キーワード列記時の区切り。省略時は , の1文字。 (Optional) random.separator= string, 取得文字列をランダムで変えるときに指定する列記区切り。 (Optional) $keyw$= string, 取得文字列埋め込みの文字列変数。keyw部は自由に指定可能。 (Optional) keyw.expand= string, キーワード部がexpand表記されている場合の展開を指定 (Optional) keyw.match= string, 取得文字列の一部を、キーワードに含まれる文字列で置換 (Optional) keyw.del_chars= string, keyw.str=で指定した文字列に対し、比較から除外する文字の集合 (Optional) igC flag, 大文字小文字を無視して比較 src.str= string, 検索される文字列 src.expand= string, expand表記の場合の展開を指定 (Optional) src.kana_Han2Zen flag, 指定時、検索される文字列中の半角カナは全角として扱う (Optional) src.del_chars= string, ファイル各行の文字列に対し、比較から除外する文字の集合 (Optional) O:str= string, 検出した行 O:keyw= string, ヒットしたキーワード (Optional) O:src= string, 検索された文字列 (Optional) ※src.str=で指定したもの O:result= string, 処理結果 (Optional) データファイルに登録されているキーワードが、 パラメータ src.str= で指定した文字列に含まれていると、それに関連する文字列を データファイルから取得します。 例えば、 if (strl[102].IndexOfAnyStr{"運|占"} >= 0) { strl[103]="大吉" } のような処理は、 file ifContains: dir=Dir.ThisMacro file="データファイル.txt" src.str=strl[102] O:str=strl[103] の1行で代替できます。 (この場合、データファイル.txt には、どこかに 運,占⇒⇒大吉 のような行があるものとします。) データファイルの指定ファイルは dir= と file= で指定します。 フルパスで指定する場合は file= だけで指定します。 dir= と file= のパラメータによるファイルの指定 データファイルのエンコードは encode= で指定します。例えば、 encode="Shift_JIS" のように記述します。 encode=指定を省略した場合、データファイルの先頭行にエンコードタイプが記述されているものとして扱います。 記述が無かった場合(つまり、先頭行をエンコード指定行として解釈できなかった場合)は、 デフォルトの UTF-8 でデコードします。 encode= を指定したときは、ファイルにエンコード指定行が無いものとして扱います。 つまり、ファイルの全行が、データとして扱われます。 encode= を指定しなかったときは、ファイル先頭行をエンコード指定行として扱います。 エンコード指定行はデータとして扱われません。 データファイルは、 あああ⇒⇒あいうえお かかか⇒⇒かきくけこ のように記述します。上記2行の例は、src.str=で指定された文字列の中に「あああ」の文字列をみつけると、 「あいうえお」の文字列を取得し、 「かかか」の文字列をみつけると、「かきくけこ」の文字列を取得するものです。 取得文字列取得された文字列は、O:str= で指定した文字列変数に設定されます。 データファイルの取得文字列の記述に含まれる $keyw$ の文字列は、 パラメータ $keyw$= で指定した文字列で置換されます。 例えば、データファイルに含まれる行に、 あああ⇒⇒あいう$5$えお がある場合に、str.src=で指定した文字列に「あああ」が含まれていると、この行がマッチして 「あいう$5$えお」 が取得されますが、 同時に $5$="だだだ" を指定していた場合は、「あいうだだだえお」と変換されたもので取得されます。 データファイルの取得文字列の一部を、$found$ を使って検索されたキーワードで置換することもできます。 例えば、データファイルが、 山⇒⇒$found$がきれい の場合に、str.src=で指定した文字列に「山」が含まれていると、「山がきれい」が取得されます。 パラメータ random.separator= でランダムセパレータを指定すると、そのランダムセパレータで文字列を区切り、 取得文字列をランダムに変えることができます。 例えば、データファイルが、 あああ⇒⇒AAA||BBB||CCC のときに、キーワード「あああ」でヒットすると「AAA||BBB||CCC」が取得されますが、パラメータで random.separator="||" が指定されていると、「AAA」か「BBB」か「CCC」のいずれかの文字列がランダムに取得されます。 del_charsパラメータ (検索除外)src.del_chars= で指定した文字集合は、キーワードマッチングで無視されます。 つぎの2行は同じ結果になります。 src.str="あ!?$$$$$$あ!?あ???" src.del_chars="$!?" src.str="あああ" この様に、src.str= で指定される文字列のゆらぎを吸収します。 キーワード側のゆらぎを吸収するには、keyw.del_chars= を指定します。データファイルに、 あ!あ??!!あ???⇒⇒あいうえお と記述してある場合で、 src.str=で指定した文字列に「あああ」が含まれているときに「あいうえお」を取得したい場合は、 src.str="たたたあああかかか" keyw.del_chars="!?" のようにパラメータ指定します。 expandパラメータsrc.expand= のパラメータは、src.str=で指定した文字列が expand表記 されている場合に指定します。 指定は、開始文字、区切り文字、終了文字の3文字で行います。 たとえば、src.str=で指定した文字列が {AAA|BBB|CCC} Z {DD|EE} の場合に、src.expand="{|}" が指定されていると、文字列は、 AAA Z DD BBB Z DD CCC Z DD AAA Z EE BBB Z EE CCC Z EE の6行に展開されます。 どれかの行が キーワードに一致すると、対応する文字列を取得できます。 たとえば、データファイルに BB Z⇒⇒あいうえお のような行があるときは上記のうち5番目の展開例に一致するので、「あいうえお」が取得できます。 データファイルのキーワードも、expand表記ができます。 src.str=で指定した文字列に「青い」または「あおい」が含まれているときに、文字列「Blue」を取得するには、 {青|あお}い⇒⇒Blue とデータファイルに記述し、パラメータで keyw.expand="{|}" と指定します。 キーワード列記データファイルのキーワードは , で区切って列記できます。 src.str=で指定した文字列に「青い」または「あおい」が含まれているときに、文字列「Blue」を取得するには、 青い,あおい⇒⇒Blue とデータファイルに記述します。列記のセパレータに , 以外の文字を使用したい場合は keyw.separate_chars=パラメータで指定します。 【例】 src.str=で指定した文字列に「青い山」、「あおい山」、「赤い花」、「あかい花」のいずれかが含まれているときに、 文字列「よい景色」を取得するには、データファイルに {青|あお}い山,{赤|あか}い花⇒⇒よい景色 と記述し、パラメータで、 keyw.expand="{|}" と指定します。 【例2】 src.str=で指定した文字列に「青い山」、「あおい山」、「赤い花」、「あかい花」のいずれかが含まれているときに、 文字列「~はよい景色」を取得するには、データファイルに {青|あお}い山,{赤|あか}い花⇒⇒$found$はよい景色 と記述し、パラメータで、 keyw.expand="{|}" と指定します。 src.str="遠くに見えるあおい山は何?" が指定されていた場合、「あおい山はよい景色」という文字列が取得されます。 keyw.match= パラメータ取得文字列に検出されたキーワードをそのまま埋め込むには $found$ を使用しますが、 キーワードの一部だけを埋め込みたいときは keyw.match=パラメータ を使用します。 次の例は、「赤い花」のキーワードで検出したときに、取得文字列を「赤はいい色です。」にするものです。 上記例のように、keyw.match=パラメータ は、開始文字、セパレータ文字、終了文字 の3つの文字で指定します。 上記例では、キーワード「赤い花」がヒットするので、 取得文字列のうち、[無色|赤|緑|青] の部分が展開され、次の順でチェックされます。 1. キーワード「赤い花」に文字列「無色」が含まれるか 2. キーワード「赤い花」に文字列「赤」が含まれるか 3. キーワード「赤い花」に文字列「緑」が含まれるか 4. キーワード「赤い花」に文字列「青」が含まれるか ここでは「赤」が含まれるので、取得文字列は「赤はいい色です。」に編集されます。 キーワードにどの文字列も含まれないときは、先頭の「無色」が使用されます。 O:src= パラメータO:src=で指定した文字列変数には、src.str=で指定した文字列が設定されます。 但し、expand表記は展開されたものになります。 パラメータを src.str="{A|B}XXX" src.expand="{|}" のようにexpand表記で指定したとき、 「AXXX」と「BXXX」のどちらが使用されたかを知りたいときに指定するパラメータです。 |
|||||||
[BACK] | |||||||
プロセルピナ |