Selected Files Transporter
条件にはファイル名を使用します。複数の条件を指定することが可能で、テキストファイル(フィルタファイル)から読み込むことができます。
ファイル更新の日付を比較して新しい方を残し、古い方を上書きしますので指定ファイルの同期を取ることもできます。
移動元フォルダ(Stock Folder)および移動先フォルダ(Current Folder)は任意に選択することができます。(ネットワーク上のドライブでも可能です)
動作に必要な各設定は、設定ファイルに残して置くことが可能で、自動実行や設定を切り換えての実行が簡単にできます。
【実例】
データベースの検索結果から、HTMLファイルで電子カタログを作成しています。CGIやWebサーバーにデータベースを組み込むような複雑なことはしません。定期的に在庫のある商品をデータベースから抽出し、そのデータを元にHTMLファイルの自動生成とそれに必要な画像ファイルをサーバーに転送しています。
データベースには FileMaker Pro を使用し、検索結果をCSVファイルで出力します。
HTMLファイルは、Text2HTMLを使ってCSVファイルをテンプレート加工して、HTMLファイルを製作しています。
さてここで、このHTMLで使用する画像やリンクで開くPDFファイルが必要となります。すべてのファイルをサーバーへ転送するよりも、必要なファイルだけを転送したいと思います。そこで
FileSelecter を使用します。
フィルタを指定しなかった場合、全ファイルを対象にして転送されますが、Copyの場合2つのフォルダの同期を行いますので、データのバックアップには不向きです。(削除したファイルも転送されて戻って来てしまうため)
ネットワーク上のフォルダ間でファイル転送する場合、事前に対象のフォルダを含むドライブがマウントされている必要があります。
(1) Setting File
Setting File に関する命令のアイコンです。左からOpen、Saveです。
メイン画面や読込オプションの設定を Setting File として保存し、また読み込むことができます。保存できる項目は以下の通りです。
Current Folder、Stock Folder、Filter Text Fileのパス情報(ファイルを移動しても読み込みます)
Search、Transport の条件選択
Import Optionの詳細設定にある全項目(Over/Addは常にOverに戻ります)
(2) Folders
ファイルを管理するフォルダ名とそれに対する操作のアイコンです。Stock Folder が転送元のフォルダで、ファイルの保管場所として指定します。
Current Folder はファイルの転送先フォルダで、Filter Text を使った検索条件合致したファイルのみStock Folderから転送されます。
逆に Current Folder にある条件に合致しないファイルは、Stock Folder へ戻されます。アイコンは左から、フォルダの選択、フォルダを開く、Current Folder を空にする。
(3) Filter List
Filter List には、Current Folder へファイルを転送するための各種条件を設定します。
検索条件(Filter)の入力は、直接リストに入力する方法と、テキストファイル(Filter Text)をドロップする方法があります。(→Filter Text)
主な設定項目は Transport(転送)、Search(検索)、Import Option(読込設定)についてです。Filter Box:
検索条件となるテキスト(Filter Text)を入力します。ファイルをドロップするか Import ボタンでテキストファイルを読み込ませることも可能です。Filter File:
Filter Text をテキストファイルから Import(読込)したり、テキストファイルに Export(保存)します。Setting File を保存するときには、必ず Filter File を指定する必要があるため、Import または Export の操作が事前に必要となります。(操作していない場合、Setting File 保存時に Export を促すダイヤログが出ます。)
Import Option:
Filter Text にテキストファイルをドロップする際に、上書処理(Over)するか、追加処理(Add)するかを選択します。
[Detail...]ボタンでは更に詳細な設定が行えます。(→読込オプションの説明)Search:
「Same」「Include」「Not Same」「Not Include」が選択できます。
Filter Text とファイル名の比較条件を示しています。条件に合致したファイルのみ転送を行います。
「Same」・・・完全一致(Filter Text とファイル名が同じ場合)
「Include」・・・部分一致(Filter Text がファイル名に含まれる場合)
「Not Same」・・・完全不一致(Filter Text に同じファイル名がない場合)
「Not Include」・・・部分不一致(Filter Text を含まない場合)Transport:
ファイルを転送する際、元のフォルダからCurrent Folder にファイルを移動(Move)するのか複写(Copy)するのかを選択します。設定内容の詳細は Filter Text の解説で行います。
(4) 操作メッセージ
画面の最下部には操作に関する説明が表示されます。
アイコンや入力項目などにマウスを移動させると、その部分の説明が表示されます。
フォルダ名の表示欄では、フォルダのフルパスが表示されます。 Filter Box では、Filter Text File のフルパスが表示されます。
(5) Run Button
Current Folder と Stock Folder を選択すると [Run]ボタンが使用可能な状態になります。
[Run] ボタンを押すと、Filter Text に合致したファイルを Stock Folder から Current Folder へ転送する作業が始まります。
ここでの設定は初期設定フォルダに保存され、FileSelecterの起動時に読み込まれ、終了時に保存されます。
(1) Setting File
Setting File を保存するときのファイル名について設定を行います。
1つ目を選択すると右にあるフィールドの文字列が標準のファイル名となります。(保存時に変更可能)
2つ目を選択した場合、右のフィールドに接続文字列を記入します。
接続文字列の左にStock Foler名、右にCurrent Foler名をつないで保存時のファイル名とします。(例:Stock to Current)
(2) Utility Window
処理結果を表示する処理報告画面を処理前または処理後に自動的に開くための設定をします。標準では処理後に開くようになっています。(→処理報告画面)
テキストファイルを Filter Box に読み込んだ時に、ファイルからデータを取り出して読み込む手順を詳細に設定することができます。(→Filter
Text)
設定内容は初期設定ではなく Setting File に記録されます。
(1) Record
Start Record はテキストの読み込みを開始するレコード(行)番号を設定します。(必ず1以上の整数値です)1レコードの区切りはSeparaterで選択します。「auto」の場合、WindowsやUNIXの改行コードは自動的にマック用のCRに変換して読み込みます。
(2) Field
Fastening chara はフィールドのテキストを挟み込む文字のことで、通常は「no」(なし)です。
例えば、フィールドが「"field"」のように「"」に囲まれている場合に挟み文字を正しく選択すれば、中のテキストだけを取り出すことができます。
もし、挟み文字を使ったフィールドと使っていないフィールドが混ざっている場合は、挟み文字を選択してください。Separator はフィールドの区切りを示す文字列を選択します。
Import Fields Number は1レコードに含まれる複数のフィールドから、何番目のフィールドを読み込むか設定するときに使います。
「0」または空欄の場合、全フィールドを取り込みます。
一部のフィールドを取り込む場合は、「1,3」「1,2,5」のようにフィールドの番号を「,」で区切って入力します。Head Text は取り出したフィールドの前に文字列を付加することが出来ます。
Foot Text は取り出したフィールドの後ろに文字列を付加することが出来ます。
(3) Default ボタン
上記各項目を初期状態に戻します。
(1) Close ボタン
処理報告画面(Utility Window)を閉じます。メニューの「Utility Window」を選んでも開閉します。 (2) Change ボタン 報告内容を切り換えます。[A] 処理ファイルの表示と[B] 未処理フィルターの表示があります。 (3) Save ボタン 報告内容をテキストファイルに出力します。先にChangeボタンで保存したい報告内容を切り換えます。 |
[A] Used Files
フィルターに処理対象として合致したファイルについて、処理結果を表示します。
処理結果にはファイル名、適用したフィルター、処理結果の表示記号が表示されます。
記号は次のような意味を持ちます。
→:ファイルの書込または消去が行われた場合、-:ファイルの移動はなかった場合
○:ファイルが存在、●:ファイルを書込、×:ファイルが存在しない(-)か消去された(→)
例:○→●(左の○はStock Folder、右の●はCurrent Folderで、Stock から Current へコピーされたことを意味する。
例:×-○(Stockにファイルがなく、Currentにはファイルがある。ファイルの移動・削除はなかった)
例:●←×(CurrentにあったファイルをStockへ移動した)
[B] Non-Used Filter
ファイル名に該当しなかった(使用しなかった)Filter Text を表示します。
表示内容はそのままテキストファイルに保存することができます。これにより、処理されるべきファイル名が残っていた場合に、ファイルの不備を発見することができます。
Filter Text(フィルター文字列)とは Stock Folder から Current Folder へファイルを転送するときの一致条件群です。
1つ1つのフィルター文字列をファイル名と比較し、条件に合ったファイルのみを転送します。
フィルターにファイル名を入力すれば、同名のファイルが転送されるという仕組みです。
また、先頭の文字や拡張子など、ファイルに共通の部分をフィルターにして(部分一致)ファイルを転送することもできます。
英文字の大小文字は全て小文字に変換して比較を行っています。
もし、フィルタが空の場合は、すべてのファイルを対象として処理します。改行が1つでも入っていると、フィルタがあるとみなします。
フィルター文字列の入力は直接記入する方法と、テキストファイルをダイヤログから選択したり、ドロップする方法があります。
フィルター文字列とは、ファイルの転送の条件となる文字列で、これに一致条件を合わせて検索されたファイルが転送されます。
フィルター文字列は、Filter Box に直接入力する場合は、必ず改行で区切って入力します。
テキストファイルを作成する場合の区切りは Import Option で設定されたものを使いますが、通常は1つずつ改行で区切って入力します。
フィルターの内容は Setting File に保存されません。Filter File のパスが記録されるようになっています。
そのため、後からFilter File の内容を修正しても Setting File を保存し直すという手間はかかりません。
その代わりに、必ずフィルター文字列を書き出してテキストファイルとして保存しておく必要があります。(Filter File を読み込ませた場合、そのファイルのパスが記録されます)
Filter Box にフィルター文字列を入力するためにテキストファイルを使用します。
この Filter File は、テキストエディタで入力して作成する方法と、データベースや表計算ソフトを使って書き出す方法があります。
テキストエディタを使用する場合は、Filter Box に直接入力するのと同じです。
Import Option の標準設定に合わせて、1行に1つの検索条件を入力します。
データベースや表計算ソフトを使えば、同じ処理手順で内容を更新しながら処理することができます。
例えば、データベースからCSV形式を選んで保存をすれば次の (a) または (b) のようなテキストファイルが保存されます。
(a) Field1,Field2,Field3
(b) "Field1","Field2","Field3"
通常レコードの区切りは改行ですからテキストファイルの1行と同じです。
内部処理の手順は、フィールドを区切ってから、フィールドの前後にある挟み文字を消去して、フィールドの内容を Filter Box に追加します。
Filter File に取り込みたいデータ以外のものが混ざっている場合は、詳細設定で選別を行いながら読み込むこと必要があります。
メイン画面では Filter File の読み込みができます。ドロップまたは Import ボタンを押してファイルを選びます。
ファイル読み込み時に、フィルタを上書きするか、追加するかを先に選択しておく必要があります。
データベースからCSVファイルを書き出す場合、必要なデータを選別して出力することもできますが、出力データを他の作業と兼用する場合など不要なデータが入っていることもあります。そこで、必要なフィールドだけを
Filter Box に読み込むことができます。
Import Option(読込オプション)では、レコードやフィールドの区切り文字、読み込みを開始するレコード番号や読み込み対象のフィールド番号を設定できます。
各レコードから1番目と3番目のフィールドを読み込むと、Filer Box には下記文字列が読み込まれます。
Filter File Filter Box sa01.html,sa02.html,sa03.html
sa01.gif,sa02.gif,sa03.gif→ sa01.html
sa03.html
sa01.gif
sa03.gif
[Run] ボタンを押して、転送処理を実行するときの設定です。
転送条件には Move と Copy があります。Move であればファイルは重複しませんが、Copy
の場合、Stock Folder から複写されたファイルが Current Folder に入ります。
ファイルが両方のフォルダに入っている場合で、更新の日時が異なっていれば、新しい方を古い方に上書きします。(Move の場合、古い方を削除します。)
検索条件には「Same」「Include」「Not Same」「Not Include」 があります。
「Same」は完全一致で、フィルター文字列とファイル名が完全に同じであれば、ファイルを転送します。特定のファイルだけを転送するときに使います。
「Include」は部分一致で、フィルター文字列がファイル名の一部に含まれていれば、ファイルを転送します。例えば、フィルター文字列を「.jpg」とすると、「.jpg」をファイル名に含む(拡張子がjpg)ファイルだけを転送する場合に使います。
「Not Same」は完全不一致で、フィルター文字列にあるファイル名以外のファイルを転送します。特定のファイルを転送したくない場合に使います。
「Not Include」は部分不一致で、フィルター文字列をファイル名に含まないファイルを転送します。例えば、フィルター文字列を「.jpg」とすると、拡張子がjpg以外のファイルを転送したい場合に使えます。
設定ファイルを保存する時に、自動的に「Stock to Current」のようにフォルダ名がファイル名に付けられます。保存時に変更することもできますし、初期設定を変更することもできます。(→基本設定)※エイリアス情報とは、ファイルのエイリアスではなく、ファイルのID情報のことです。絶対パスとは異なりファイルを移動しても目的のファイルを追跡することができます。
設定画面 設定項目 内容説明 メイン画面 Current Folder フォルダのエイリアス情報 Stock Folder フォルダのエイリアス情報 Filter Text フィルターファイルのエイリアス情報(フィルターそのものは記録しません) Transport 転送条件 Search 検索条件 読込オプション Import Option 読込開始レコード番号、レコード区切り文字、挟み文字、フィールド区切り文字、読込対象フィールド番号
Import Option の「Over/Add」の設定は保存されません。常にデフォルトが「Over」(上書き)になります。
【設定ファイルの自動実行】
設定ファイル名の最後に「.auto」と付けておきます。設定ファイル(Setting File)をダブルクリックするだけで処理を自動的に実行して終了します。
自動実行時は処理報告画面は表示されません。
データベースからデータを書き出し、Filter File を更新すれば、自動実行の Setting File をダブルクリックするだけでファイルの転送作業が完了することになります。
REALbasic の機能を補完するため、天野良氏(Straw Hat)、尾野道男氏(Micono Utilities)製作のプラグインを使用しています。
フォルダを開く機能に関し、kantoshi氏にご教授いただきました。
20000228(1.1)・・・メイン画面のレイアウトを変更
19991204(1.0.1)・・・フォルダを開く機能を追加。絶対パスの表示
19991202(1.0)・・・完成(FATバイナリー)
19991115・・・製作開始
【製作環境】iBook/800 & MacOS9.2 & REALbasic4.0