EXEコンポーネントについて

ASTERIA Warpでこんなことできる?…と思うことなど、ご遠慮なく...(^_-)

EXEコンポーネントについて

投稿記事by shigeno » 2019年2月12日(火) 14:04

表題の件、EXEコンポーネントについて教えていただけますでしょうか。

さっそくですが、「PDFtk」というフリーソフトを利用してPDFファイルの結合をしようしています。
PDFtkの引数はファイル名で記述は以下の通りとなります。

pdftk ファイル名1 ファイル名2 ... cat output ファイル名o
※ファイル名1~nには結合する元のファイル名を指定します。
※ファイル名oには結合後のファイル名を指定します。

上記コマンドをEXEコンポーネントで実行するにあたり、ファイル1~nにFileListコンポーネントより取得したファイル名を入力したいのですが、複数のファイルを引数に設定する記述方法がわかりません。

お手数をおかけし申し訳ございませんが何卒お知恵を貸していただけますでしょうか。
宜しくお願い致します。
shigeno
 
記事: 2
登録日時: 2019年2月12日(火) 13:45

Re: EXEコンポーネントについて

投稿記事by itete » 2019年2月18日(月) 12:30

EXE のプロパティは
 「ファイルパス」プロパティ: pdftk
 「引数」プロパティ: ファイル名1 ファイル名2 ... cat output ファイル名o
とするか、
 「ファイルパス」プロパティ: pdftk ファイル名1 ファイル名2 ... cat output ファイル名o
とするか、どちらでもOKです。
引数は、コマンドプロンプトで実行するときのように空白で区切って書くだけです。

動的にマッピングする場合、EXE コンポーネントの直前に Mapper を置いてマッピングします。
FileList の「ループを開始」プロパティを「はい」にして、次に Mapper、その次に LoopEnd を置きます。
フロー変数をひとつ作成しておきます。
Mapper の中では、フロー変数の値と FilePath フィールドの値を Concatenate 関数で結合し、
再度 フロー変数に格納するようにマッピングします。
Concatenate 関数は、
「区切り文字」プロパティに 半角空白を1文字入力しておきます。
「入力が空の場合」プロパティに「区切り文字を出力しない」を設定します。
これで、フロー変数には結合したいファイルパスが空白区切りで格納された状態になるので、
LoopEnd の次にもうひとつ Mapper を置いて、Embed 関数で「 cat output ファイル名o」を
後ろに付け足した状態にして、EXE の「引数」プロパティにマッピングすればよいと思います。
itete
 
記事: 158
登録日時: 2007年1月09日(火) 12:15

Re: EXEコンポーネントについて

投稿記事by shigeno » 2019年2月21日(木) 13:08

ご連絡が遅くなりまして申し訳ございません。

丁寧なご説明ありがとうございます。
なるほど非常にためになります。

再度試してみます!ありがとうございました!
shigeno
 
記事: 2
登録日時: 2019年2月12日(火) 13:45


Return to ビギナールーム

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]

cron