ファイル結合マクロを探しています。No.25597
cent さん 08/11/04 03:29
 
いつもお世話になります。

フォルダ内のテキストファイルの
一括結合マクロを探しています。

サブフォルダを含めてのものがありがたいです。

4点は確認したのですが、表示したファイルへの
結合操作になっていたかと思います。

データ量が多いのでシンプルなタイプを
探しています。

よろしくお願いいたします。

[ ]
RE:25597 ファイル結合マクロを探していまNo.25600
ENCODINGSHIFTJIS さん 08/11/04 11:23
 
結合順 などは 気にしてますか?
--
スクリプトを 書け、が常識的回答になりますが。
--
文書管理などでは 結合しなくとも 管理するソフトを探すのも アリです。

[ ]
RE:25597 ファイル結合マクロを探していまNo.25601
秀丸担当 さん 08/11/04 12:11
 

マクロライブラリを探してみると、山紫水明さんの作られたマクロで、サブフォ
ルダも含めて連結できるものもあるようです。

最もシンプルなのは、コマンドプロンプトで copy *.txt c:\xxx\xxx.txt など
とすることですが、サブフォルダはできないようです。

簡単なマクロでよければ以下のような感じでもできます。

    $s=searchbuffer;
    $r=replacebuffer;
    #f=searchoption;
    grep ".","*.txt",".",subdir,regular,filelist;
    disabledraw;
    replaceallfast "^(.+?)\\([0-9]\\)$","\\1",regular;
    clearupdated;
    selectall;
    copy;
    closenew;
    beginclipboardread;
    while( 1 ) {
        $a = getclipboard;
        if($a == "")break;
        $a=leftstr($a,strlen($a)-1);
        insertfile $a;
    }
    setsearch $s,#f;
    setreplace $r;

[ ]
RE:25601 ファイル結合マクロを探していまNo.25603
cent さん 08/11/04 14:48
 
秀丸担当 様

ありがとうございます。
テストで動かしてみましたが動きませんでした。

結合ではなく連結で検索すべきでした。
失礼しました。

ファイルを連結する簡易マクロ Ver1.01
山紫水明 様には大変お世話になっています。
巨大ファイルや大量のファイルを扱う場合は専用のソフトが必要かもしれませんが,
通常のテキストファイルの連結は,このマクロで十分用を足せると思います。

との記載のとおり1万行位が限界でした。

多少時間がかかってもいいのですが
数百万行ぐらい一気にできると大変ありがたいのですが。
無理でしょうか?

ご指導よろしくお願いいたします。



[ ]
RE:25603 ファイル結合マクロを探していまNo.25605
秀丸担当 さん 08/11/04 15:42
 

秀丸エディタで開くときの行数の上限は、[その他]→[動作環境]→[環境]→[編
集可能な最大行数]で指定します。
1万行くらいというのは、この設定が低い(10万行?)ためかもしれません。


先ほどのマクロを試される場合は、該当のフォルダが現在のフォルダになってい
る状態で実行してください。
該当フォルダの適当なファイルを開けば、現在のフォルダになります。

マクロは、拡張子 .txt を対象としています。
.txtではない場合は、マクロの *.txt と書かれた部分を適当に修正してくださ
い。
サンプルは非常に簡単なマクロなので、ユーザーインターフェースも何もないで
す。
マクロヘルプを参考に一行ずつ見ていくと、どのようなことをしているか分かり
やすいかもしれません。


ちなみに、もし連結する目的がすべてのファイルから検索するというようなこと
でしたら、連結しなくても[検索]→[grepの実行]ですることもできます。

[ ]
RE:25605 ファイル結合マクロを探していまNo.25606
cent さん 08/11/05 05:54
 
こちらの操作ミスでした。

テストですが
4万ファイルの90万行
をスピーディに結合することができました。
思った以上に軽々スピーディでした。
ありがとうございました。


ただ結合時に文末の改行がなくなり次のファイルと
詰まってしまいます。

File_a.txt
abc
def

File_b.txt
hij
klm

このマクロを実行すると
abc
defhij
klm

改善点をご指摘いただけると幸いです。

よろしくお願いいたします。



[ ]
RE:25606 ファイル結合マクロを探していまNo.25608
ENCODINGSHIFTJIS さん 08/11/05 10:36
 
insertreturn; を       insertfile $a; の次行に 置くのでは

[ ]
RE:25608 ファイル結合マクロを探していまNo.25610
秀丸担当 さん 08/11/05 11:49
 

>ただ結合時に文末の改行がなくなり次のファイルと
>詰まってしまいます。

ファイルの最後の行が改行されずに

abc
def[EOF]

という感じになっているとそのようになると思います。


ENCODINGSHIFTJISさんの言われる通り、
insertfile $a;
の次の行に
insertreturn;
を入れておくといいと思います。

[ ]
RE:25610 ファイル結合マクロを探していまNo.25613
cent さん 08/11/06 04:46
 
ありがとうございます。
感謝いたします。

[ ]