プロセルピナ | ||||||||||
Top |
Internet |
Private Proxy |
Capture Device |
Download |
Config and Words |
Online Help |
Online Home |
|||
[BACK] | |||||||
☞
Top >
Proserpine Macro >
Commands >
file findLine
ファイルから特定の文字列を含む行を取得file findLine: (Parameters) 【Parameters】 dir= string, ファイルパス file= string, ファイル名 encode= string, ファイルエンコード (Optional) keyw.str= string, 検索する文字列を含む行 cmp.length= int, 検出したと判断する文字列長 expand= string, expand表記の場合の展開を指定 (Optional) igC flag, 大文字小文字を無視して比較 keyw.del_chars= string, keyw.str=で指定した文字列に対し、比較から除外する文字の集合 src.del_chars= string, ファイル各行の文字列に対し、比較から除外する文字の集合 O:str= string, 検出した行 O:lines= int, (Optional) O:result= string, 処理結果 ファイルは dir= と file= で指定します。 フルパスで指定する場合は file= だけで指定します。 dir= と file= のパラメータによるファイルの指定 指定されたテキストファイルの各行をチェックし、 keyw.str=で指定した文字列に含まれる、cmp.length=で指定した長さの文字列が含まれる行を取得します。 例えば、パラメータで、 keyw.str="あいうえお" cmp.length=3 と指定した場合、ファイル各行のうち、次の文字列のいずれか が含まれる行が、 O:str= で指定した文字列変数に取得されます。 あいう いうえ うえお keyw.str= で指定した文字列を完全に含む行を取得したい場合は、cmp.length= には keyw.str= で指定した文字列の長さ を指定します。 例えば、 keyw.str="あいうえお" cmp.length=5 のように指定します。 入力ファイルのエンコードは encode= で指定します。例えば、 encode="Shift_JIS" のように記述します。 encode=指定を省略した場合、入力ファイルの先頭行にエンコードタイプが記述されているものとして扱います。 記述が無かった場合(つまり、先頭行をエンコード指定行として解釈できなかった場合)は、 デフォルトの UTF-8 でデコードします。 encode= を指定したときは、ファイルにエンコード指定行が無いものとして扱います。 つまり、ファイルの全行が、ランダム選択の対象です。 encode= を指定しなかったときは、ファイル先頭行をエンコード指定行として扱います。 エンコード指定行はランダム選択の対象外です。 delete を指定したときはファイルの行数が取得した分だけ減少します (元ファイルが編集されます)。 ファイルに残った行数を取得するには、O:count= で数値変数を指定します。 ランダム選択された文字列は、O:str= で指定した文字列変数に設定されます。 複数行ある場合は、改行(CR,LF)区切りになります。 ランダム選択から除外したい行は、特定の 文字(または記号) を行内に含ませておき、その文字を exceptional_chars=パラメータ で指定します。 exceptional_chars= には 文字または文字の集合 を指定します(つまり文字列で指定)。 例えば、記号 @ または ? を含む行を選択しないようにする場合は、 exceptional_chars="@?" と指定します。 expandパラメータexpand= のパラメータは、ファイル内の文字列が expand表記 されている場合に指定します。 指定は、開始文字、区切り文字、終了文字の3文字で行います。 たとえば、ファイルから取得した行が {AAA|BBB|CCC} Z {DD|EE} の場合に、expand="{|}" が指定されていると、行は、 AAA Z DD BBB Z DD CCC Z DD AAA Z EE BBB Z EE CCC Z EE の6行に展開されます。 どれかの行が keyw.str= で指定した文字列に一致すると、この行は一致と判断されます。 たとえば、 keyw.str="B Z E" は上記のうち5番目の展開例に一致するので、このファイルから取得した行は一致と判断されます。 O:str= で指定した文字列変数に設定されるのは、常に先頭要素を使用した展開になります。 上記例では、 AAA Z DD が設定されます。 使用例としては、「春のあめ」の文字列で「春の雨」のある行を検索したいときなどがあります (表記ゆらぎの収束)。 {春|はる|ハル}の{雨|あめ|アメ}と書いて春雨 と表記してあれば、「春のあめ」でも「ハルのアメ」でも、「春の雨と書いて春雨」の行を取得できます。 del_charsパラメータkeyw.del_chars= で指定した文字は、検索文字列から除外されます。 たとえば、 keyw.str="あ!い?う!え?お" cmp.length=3 keyw.del_chars="!?" であれば、ファイル各行のうち、次の文字列のいずれか が含まれる行が、 O:str= で指定した文字列変数に取得されます。 あいう いうえ うえお つまり、keyw.str="あいうえお" と指定したのと同じです。 src.del_chars= で指定した文字は、検索される文字列から除外されます。 たとえば、ファイルから「春の小川は、さらさら行くよ。岸のすみれや、れんげの花に。」という行を取得したい場合で、 検索に「小川はさらさら」という文字列を使用した場合でも取得できるようにするには、 src.del_chars="、" を指定します。 この場合でも、O:str= で指定した文字列変数に設定されるのは、 「春の小川は、さらさら行くよ。岸のすみれや、れんげの花に。」 という'、'の文字を含んだものになります。 コード例次の例は、デスクトップにファイル Sample.txt を作成し、文字列 なんか「お川はサラ!サラ!行く」みたいな歌詞 と9文字以上一致する行を探して、その行を文字列変数 str[10] に設定するものです。 上記例では、keyw.del_chars= の設定により '「' と '!' と '」' の3つの文字は検索文字列から削除されるので、実際には、 なんかお川はサラサラ行くみたいな歌詞 と9文字以上一致する行を探して設定する処理になります。 一致するのは2行目の、 春の{小|お}{川|がわ}は、{さらさら|サラサラ}{行|い}くよ。 になります。 O:str= で指定した文字列変数 str[10] には 春の小川は、さらさら行くよ。 の文字列が設定されます。 |
|||||||
[BACK] | |||||||
プロセルピナ |