insertfile でエラーNo.06602
onga^n さん 11/04/06 16:30
 
マクロ作成中にどうしても解決できない現象があるので,教えてください。

やろうとしているのは,任意のファイルを開いておいて,属しているフォルダ内の全
 txt ファイルを一つに統合することです。

問題の部分だけを抽出して,次のようなテスト用マクロを作成しましたが,insertfi
le の行で,
  「****.txt は他のプログラムが使用中等の理由により開けません」
というエラーになります。

もちろん,他のプログラムが使用中ではありません。特に思い当たる原因がないので
すが,どこかで仕様を勘違いしているかと思います。ご教授ねがいます。

//************ 【ファイル統合】test
// 開かれているファイルを含むフォルダの全textファイルを統合し,結果は $tfile に置く
// ファイル毎 先頭に セパレータ(ファイル名) を付加する

    $tfile = "d:\\temp\\test.txt";
    $dir = directory2;
    if (leftstr($dir,1) != "\\") $dir = $dir + "\\";
    $f = filename;
    newfile;
    changename $tfile;
    closehidemaru hidemaruhandle(findhidemaru($f));

    call loaddll;
    #r = dllfunc("ENUMFILE", "'" + $dir + "*.txt'");
    if (!#r) {message "ENUFILE error"; endmacro; }
    while (1) {
        $file = dllfuncstr("FINDNEXT");
        if ($file == "") break;
        insert "\n〓〓〓" + $file + "〓〓〓\n";
        insertfile $file;
        }
    save;
    endmacro;

loaddll:   //(田楽dllのロード)
    loaddll(macrodir + "\\DengakuDLL.dll");
    if (!result) {
        message "DLL をロードできませんでした。";
        endmacro;
    }
    return;

[ ]
RE:06602 insertfile でエラーNo.06604
山紫水明 さん 11/04/06 20:41
 
 onga^nさん,

>  「****.txt は他のプログラムが使用中等の理由により開けません」

「使用中等の理由」の「等」があります。多分使用中という理由ではないでしょ
う。
$tfileのフォルダと統合しようとするファイルのフォルダが違っているのではな
いでしょうか。
        insertfile $file; を
        insertfile $dir + $file;
にしたらいかがでしょう。

     では, (^^)/~
                                    山紫水明(ユーザー)
                                    SANSHISUIMEI

[ ]
RE:06604 insertfile でエラーNo.06605
onga^n さん 11/04/06 20:59
 
山紫水明さん
早速回答いただき ありがとうございました。
おっしゃる通り,「他のプログラムが使用中」にとらわれて,他の原因を考えていま
せんでした。
フォルダ名を追加することで すっきり解決しました。



[ ]