プロセルピナ
Top Internet
Mail
Private
Proxy
Capture
Device
Download Config
and
Words
Online
Help
Online
Home
[BACK]
Top > Proserpine Macro > Commands > file randomLine

 
 file randomLineコマンド
Macro Top | Variables | Commands  


 

ファイルからランダムに1行(または複数行)を選択


file randomLine: (Parameters)

【Parameters】
  dir= string, ファイルパス
  file= string, ファイル名
  encode= string, ファイルエンコード (Optional)
  count= int, 取得行数
  O:str= string, 取得行の設定先
  O:count= int, 取得後、元ファイルに残った行数 (Optional)
  delete flag, 取得した行は元ファイルから削除 (Optional)
  O:result= string, 処理結果
  expand= string, expand表記の場合の展開を指定 (Optional)
  exceptional_chars= string, この文字集合に含まれる文字を含む行は選択から除外 (Optional)
  latter= string, 取得行のうち、このパラメータで指定された文字列以降を使用 (Optional)
  remove_between= string, 取得行から『~』間の文字列を削除 (Optional)

ファイルは dir=file= で指定します。
フルパスで指定する場合は file= だけで指定します。
dir= と file= のパラメータによるファイルの指定

指定されたテキストファイルから、 count=で指定した行数だけランダムに取得します。
取得した行をファイルから削除するときは、 delete を指定します。

入力ファイルのエンコードは encode= で指定します。例えば、 encode="Shift_JIS" のように記述します。 encode=指定を省略した場合、入力ファイルの先頭行にエンコードタイプが記述されているものとして扱います。 記述が無かった場合(つまり、先頭行をエンコード指定行として解釈できなかった場合)は、 デフォルトの UTF-8 でデコードします。

encode= を指定したときは、ファイルにエンコード指定行が無いものとして扱います。 つまり、ファイルの全行が、ランダム選択の対象です。
encode= を指定しなかったときは、ファイル先頭行をエンコード指定行として扱います。 エンコード指定行はランダム選択の対象外です。

delete を指定したときはファイルの行数が取得した分だけ減少します (元ファイルが編集されます)。
ファイルに残った行数を取得するには、O:count= で数値変数を指定します。

ランダム選択された文字列は、O:str= で指定した文字列変数に設定されます。
複数行ある場合は、改行(CR,LF)区切りになります。

expand= は、ファイル内の文字列が expand表記 されている場合に指定します。
指定は、開始文字、区切り文字、終了文字の3文字で行います。
取得した行が
  {AAA|BBB} ZZZZ
の場合に、expand="{|}" を指定すると、文字列は、
  AAA ZZZZ
に展開されます。
このコマンドでは常に先頭要素(上記例でAAA)を使用した展開になります。

ランダム選択から除外したい行は、特定の 文字(または記号) を行内に含ませておき、その文字を exceptional_chars=パラメータ で指定します。
exceptional_chars= には 文字または文字の集合 を指定します(つまり文字列で指定)。
例えば、記号 @ または ? を含む行を選択しないようにする場合は、
  exceptional_chars="@?"
と指定します。

latter= で指定した文字列以降を使用します。指定された文字列が取得行に含まれない場合、取得行に変化はありません。

指定した範囲(文字と文字の間、または文字列と文字列の間)を削除したい場合は remove_between= で指定します。
『~』間を削除するには、
  remove_between="『』"
を指定します。
{{}} 間を削除するには、
  remove_between="{{}}"
を指定します。この様に、文字列の前半と後半とに分けて使用されます。
remove_between= は、latter= を処理した後に処理されます。


 

コード例


次の例では、デスクトップのファイル test.txt から、ランダムに3行取得し、それを文字列変数 str[99] に設定しています。
deleteオプションが指定されているので、元ファイルは3行減ります。





[BACK]
プロセルピナ