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

 
 HashTable.Copyコマンド
Macro Top | Variables | Constants | Commands | Ex-Commands  


HashTable.Setコマンド
HashTable.Readコマンド
HashTable.Removeコマンド
HashTable.Containsコマンド
HashTable.DumpKeysコマンド
HashTable.DumpValuesコマンド
HashTable.DumpBothコマンド
HashTable.Saveコマンド
HashTable.Loadコマンド
HashTable.Disposeコマンド
HashTable.RemoveSameコマンド
HashTable.RemoveOneコマンド
HashTable.Copyコマンド
 

HashTable.Copy


  HashTable.Copy: (parameters)

Parameters
  id.src= コピー元HashTableのID
  id.dest= コピー先HashTableのID
  key.prepend= string, キー値に前位置付与する文字列 (Optional)
  key.Regex= string, キーフィルタ (Optional)
  value.Regex= string, Value(値)フィルタ (Optional)
  append flag-string, id.dest=で指定したHashTableに追加する場合に指定

id.src= で指定したHashTableに格納されているKey-Valueのペアを、 id.dest= で指定したHashTableにコピーします。

id.dest=で指定したHashTableが存在しない場合は新規に作成されます。 存在しているときで appendオプション が指定されていた場合は追加登録されます。 存在しているときで appendオプション が指定されていない場合は空にされてから登録されます。

HashTableには同じキーは登録できません。 id.src=のHashTableに格納されている、とあるKey-Valueのペアを、 id.dest=のHashTableにコピー(登録)しようとしたとき、 既にid.dest=のHashTableに同じKeyで何らかの値が登録されていると、 その登録は行われません (コマンドエラーにはなりません)。
例えば、id.src=のHashTableに key="BBB" value=111 のペアが登録されていて、一方、 id.dest=のHashTableには key="BBB" value=222 のペアで登録があった場合、 HashTable.Copyコマンドを実行しても id.dest=のHashTableにおいて key="BBB" に対応するvalueは 222 のまま残ります。

key.prepend= で文字列を指定すると、コピーする際にKeyの値が
  「key.prepend=で指定した文字列」 + Key
になります。
例えば、id.src=のHashTableに key="BBB" value=111 のペアが登録されていて、 key.prepend="aaa" を指定してHashTable.Copyコマンドを実行すると、 id.dest=で指定したHashTableには key="aaaBBB" value=111 のペアが登録されます。
もちろん、id.dest=のHashTableに key="BBB" の登録があるかどうかには 全く影響されません。

 

Sample


次の例はサーバの /sample/img ディレクトリにあるファイルのうち、 拡張子が db のファイルを削除するものです。
まずEx:Ftp.Listコマンドで IDが "一覧" のHashTableにディレクトリの全ファイルを格納し、 そのうち、拡張子が db のファイルを HashTable.Copyコマンドを使って IDが ".db" のHashTableにコピーします。
次に ".db" のHashTableから HashTable.RemoveOneコマンドで一つずつ 登録(keyとvalueのペア) を取り出し、 Ex:Ftp.Deleteコマンド でファイルを削除しています。


サーバから拡張子が db のファイルを削除

Ex:Ftp.Listコマンドでは、 hashTable.shortNameオプション が指定されているので、IDが"一覧"のHashTableには パス部分を含まないファイル名で登録されます。
たとえば、 /sample/img/aaa.db のファイルは aaa.db で登録されます。
HashTableはkeyとvalueのペアで登録しますが、 Ex:Ftp.Listコマンドでは ファイル名をHashTableのkeyに、そのサイズをvalueに設定します。

このHashTableを、HashTable.Copyコマンドで IDが".db"のHashTableにコピーしますが、 key.Regex=で "\\.db$" の正規表現を指定しているので、拡張子が db のファイルだけがコピーされます。
また、 key.prepend= でkeyにパス部を追加しているので、コピー先のHashTableではkeyはフルパスになります。
例えば、"一覧"のHashTableのキーが aaa.db の場合、 ".db"のHashTableのキーは /sample/img/aaa.db になります。

[BACK]
プロセルピナ