|
舩橋です。
杉浦殿に提示していただいたコーディングを流用して、目的のマクロが作成できまし
た。
作成したマクロのコーディング最後に添付しておきます。(参考まで)
何をやりたいか判らないと言われていますので、やりたいことの全体像について説明
します。
更新前のファイル(テキスト形式)と更新後のファイルの比較リストを出力しようとし
ています。
比較リストを出力するために以下のツールがあります。
・更新前後のファイルを突き合わせて差分データを出力するツール(diffです)
・差分データと更新前後のファイルを読み込み比較リストを出力するツール。
更新前のファイルと更新後のファイルを左右に並べて出力し、
異なっているレコード(行)を罫線で囲みます。
長い行は折り曲げ、印刷した際、A3横長サイズの用紙に納まる様にしています。
(実際は、プリンタの縮小機能を使ってA4横長サイズに印刷していますが。)
・比較リストを読み込んで、更新されていない行をカットしたリストを出力します。
(リスト先頭10行,最後10行,変更箇所の前後10行は残します)
これらのツールはバッチファイルで動かします。複数ファイルまとめて処理すること
はできません。
比較したいテキストファイルは数十ファイルあります。
また、起点となるディレクトリの下に複数のサブディレクトリを持ち、サブディレク
トリの下にも比較対象のファイルが存在します。
起点となるディレクトリの名称は更新前後で異なりますが、ファイル名やサブディレ
クトリ名は同じです。
比較対象のファイル名を列挙したテキストファイルを読み込み、上記ツールを実行さ
せるバッチファイルを作成するマクロを作成しています。
いままで、比較対象のファイル名を列挙したテキストファイルを手作業でつくってい
ましたが、この作業の自動化を考えていました。
以下は作成したマクロです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
loaddll "DengakuDll";
$dir1 = dllfuncstr("GETDIRNAMEEX",hidemaruhandle(0),"フォルダを指定して下さ
い",$curdir,1);
if( $dir1=="" ){
freedll;
endmacro;
}
//#r = dllfunc("ENUMPATH", "/f C:\\*.*");
#r = dllfunc("ENUMPATH", "/f \x22"+$dir1+"\\*.*\x22");
while (1) {
$file = dllfuncstr("FINDNEXT");
if ($file == "") break;
// insert "C:\\" + $file + "\n";
insert $file + "\n";
}
freedll;
endmacro;
|
|