逆引きテンプレートについて
HULFT Squareをご利用いただきありがとうございます。
本記事では、「ディレクトリに存在するファイル名を判定し、拡張子ごとに処理を分岐したい」のスクリプトについて、詳細および使用方法についてご案内します。
※逆引きテンプレートは、HULFT Squareの画面から「App Square」より、アプリケーション「逆引き ファイル操作」をインストールいただくことでご利用いただけます。
スクリプト名
ディレクトリに存在するファイル名を判定し、拡張子ごとに処理を分岐したい
Branch process by file extension
概要
ディレクトリに存在するファイル名を判定し、拡張子ごとに処理を分岐したい場合、拡張子を格納したスクリプト変数の値を条件分岐処理で判定します。
スクリプトの説明
ディレクトリに存在するファイルの拡張子を判定し、拡張子ごとに処理を分岐してファイルの読み取り、およびCSVファイルへの書き込みを行います。
想定外のファイルが存在する場合は、例外通知処理を使用して処理を異常終了させます。
処理の流れ
スクリプトの処理の流れは以下の通りです。
- 「ファイル名一覧取得処理」でディレクトリ内のファイル名一覧を取得します。
- 「繰り返し(データ件数)処理」でファイルごとに処理を繰り返します。
- 「変数代入処理」で拡張子とファイル名をスクリプト変数に代入します。
- 「条件分岐処理」でスクリプト変数の値を判定します。
- 拡張子が「CSV」の場合、CSVファイルを読み取り、CSVファイルを出力します。
- 拡張子が「XML」の場合、XMLファイルを読み取り、CSVファイルを出力します。
- 拡張子がそれ以外の場合、「例外通知処理」を使用して処理を異常終了させます。
入力データのイメージについては、「入力データ例」のサンプルデータ「01_input.CSV」、「02_input.XML」、「03_input.HTML」を参照してください。
実行結果のイメージについては、
- 拡張子が「CSV」および「XML」の場合、「出力データ例」のサンプルデータ「output.csv」を参照してください。
-
拡張子が上記以外の場合、以下のダイアログが表示され、処理が異常終了します。
ポイントとなる機能
| 名前 | 説明 | ツールパレット上の場所 |
|---|---|---|
| 指定文字より後ロジック | 入力文字列の指定文字よりあとを返します。 | 「文字列」-「関数」-「指定文字より後」 |
| 小文字に変換ロジック | 入力文字列を小文字に変換して返します。 | 「文字列」-「変換」-「小文字に変換」 |
| 条件分岐処理 | 条件分岐を行います。 | 「基本」-「フロー」-「条件分岐」 |
処理のポイント
- 指定文字より後ロジックは[区切り文字列]に指定した文字よりあとの文字列を返します。
- [区切り文字列]にピリオドを指定することで、ディレクトリに存在するファイル名から拡張子を取得することが可能です。
- また、拡張子に大文字が含まれる場合に、小文字に変換ロジックで拡張子を小文字に統一することで、大文字・小文字を区別することなく、条件分岐内で拡張子の判定が可能です。
スクリプトの使用方法
上記処理を実装したスクリプトを用意しています。スクリプトを使用する場合の手順は「HULFT Squareアプリケーションのより詳しい使い方」をご参照ください。
スクリプトの作成手順
プロセスフローおよびデータフローは、「スクリプトの説明」のスクリプト画像を参照して適宜設定してください。
- ファイル名として使用するスクリプト変数を作成します。
-
スクリプト変数のプロパティは、以下のように設定します。
スクリプト変数のプロパティ
変数名 必須/省略可 説明 I_inputFolder 必須 入力ファイルを格納するフォルダのフルパス I_outputFile 必須 出力ファイルのフルパス
-
- デザイナのツールパレット「ファイル」-「逆引き ファイル操作」-「ファイル名一覧取得」から、ファイル名一覧取得処理をスクリプトキャンバスに配置します。
-
ファイル名一覧取得処理の設定は、以下のように行います。
[必須設定]タブ
-
- デザイナのツールパレット「基本」-「フロー」-「繰り返し(データ件数)」から、繰り返し(データ件数)処理をスクリプトキャンバスに配置します。
-
繰り返し(データ件数)処理の設定は、以下のように行います。
[必須設定]タブ
-
- デザイナのツールパレット「基本」-「処理」-「変数代入」から、変数代入処理をスクリプトキャンバスに配置します。
- 変数代入処理のMapperエディタを開き、ファイル名からピリオドより後の文字列を切り出した値をスクリプト変数に代入する処理を作成します。
-
マッピングキャンバスは、以下のように設定します。
マッピングキャンバス
番号 ロジック名 説明 ツールパレット上の場所 (1) 指定文字より後 入力文字列の指定文字よりあとを返します。
[区切り文字列]にはピリオド「.」を指定します。「文字列」-「関数」-「指定文字より後」 (2) 小文字に変換 入力文字列を小文字に変換して返します。 「文字列」-「変換」-「小文字に変換」 処理のポイント
- [区切り文字列]にピリオドを指定することで、ファイル名に含まれる拡張子を取得できます。
- 拡張子に大文字が含まれるファイルの場合も、小文字に変換ロジックで小文字に統一した拡張子を取得できます。
-
- デザイナのツールパレット「基本」-「フロー」-「条件分岐」から、条件分岐処理をスクリプトキャンバスに配置します。
-
条件の設定は、以下のように行います。
[必須設定]タブ
-
-
[条件分岐開始]の右クリックメニューから[条件の追加]を選択し、条件を追加します。
-
条件の設定は、以下のように行います。
[必須設定]タブ
-
-
[条件分岐開始]の右クリックメニューから[条件の追加]を選択し、条件を追加します。
-
条件の設定は、以下のように行います。
[必須設定]タブ
処理のポイント
- 条件は判定順序で評価されます。
- 条件アイコン上の丸数字が判定順序です。
-
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
-
CSVファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
-
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。
-
CSVファイル書き込み処理の設定は、以下のように行います。
[必須設定]タブ
[書き込み設定]タブ
-
- デザイナのツールパレット「ファイル」-「XML」-「XMLファイル読み取り」から、XMLファイル読み取り処理をスクリプトキャンバスに配置します。
-
XMLファイル読み取り処理の設定は、以下のように行います。
[必須設定]タブ
-
- デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。
- CSVファイル書き込み処理の設定は、CSVファイル書き込み処理「csv_write」と同様に行います。
- デザイナのツールパレット「基本」-「処理」-「例外通知」から、例外通知処理をスクリプトキャンバスに配置します。
-
例外通知処理の設定は、以下のように行います。
[必須設定]タブ
-
- スクリプトを実行し、以下の結果になれば成功です。
- 拡張子が「CSV」および「XML」のファイル内容はCSVファイルに出力されます。
- 拡張子が上記以外の場合、例外が通知され、処理が異常終了します。
入出力データ例
-
入力データ例
-
01_input.CSV
商品名,売上数,単価 クッキー,7,250 プリン,15,130
-
02_input.XML
<?xml version="1.0" encoding="WINDOWS-31J"?> <table> <row> <column>チョコレート</column> <column>10</column> <column>100</column> </row> <row> <column>ケーキ</column> <column>23</column> <column>350</column> </row> </table> -
03_input.HTML
<!DOCTYPE html> <html></html>
-
-
出力データ例
-
output.csv
商品名,売上数,単価 クッキー,7,250 プリン,15,130 チョコレート,10,100 ケーキ,23,350
-
コメント
0件のコメント
記事コメントは受け付けていません。