ファイルの分割No.04508
のんびりさん さん 04/11/01 13:18
 
例えば10万行くらいのデータファイルがありまして、
これを1万行づつ10個のファイルに分ける、ということを
マクロで実現出来ないかと思いまして色々と調べましたが、
ちょっと皆目検討がつきません。

こういったことは出来ないのでしょうか?
どなたかご存じの方、ご教示お願いします。

[ ]
RE:04508 ファイルの分割No.04512
山紫水明 さん 04/11/01 21:38
 
 のんびりさんさん,こんばんは。

>例えば10万行くらいのデータファイルがありまして、
>これを1万行づつ10個のファイルに分ける、ということを
>マクロで実現出来ないかと思いまして色々と調べましたが、

 ある程度の大きさのファイルは次のマクロで分割できると思いますが,10万行
のは試していません。よろしければ試みてください。

//--------------------------------------------------//
//任意の個数にファイルを分割
//対象ファイルの上で実行
#handle = hidemaruhandle( 0 );
$base = basename2;
#linenum = linecount2;
#ime = imestate;
if( #ime ) imeswitch;
#divide = val( input( "分割数は?") );
if( #ime ) imeswitch;
if( #divide < 2 ) endmacro;
if( #divide > #linenum ) {
    message "分割できません";
    endmacro;
}
#unit = #linenum / #divide;
disabledraw;
gofiletop;
#i = 1;
while( #i <= #divide ) {
    beginsel;
    if( #i == #divide ) gofileend;
    else movetolineno 1, #unit * #i + 1;
    copy;
    openfile "/h";
    paste;
    saveas $base + "_" + str( #i );
    setactivehidemaru #handle;
    #i = #i + 1;
}
endmacro;
//--------------------------------------------------//

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

[ ]
RE:04512 ファイルの分割No.04513
山紫水明 さん 04/11/01 21:59
 
追伸です。ファイル名の処理に少し問題がありました。とりあえず次のように
修正します。

//--------------------------------------------------//
//任意の個数にファイルを分割
//対象ファイルの上で実行
#handle = hidemaruhandle( 0 );
$base = leftstr( basename2, strlen(basename) - strlen(filetype) );
$ext = filetype;
#linenum = linecount2;
#ime = imestate;
if( #ime ) imeswitch;
#divide = val( input( "分割数は?") );
if( #ime ) imeswitch;
if( #divide < 2 ) endmacro;
if( #divide > #linenum ) {
    message "分割できません";
    endmacro;
}
#unit = #linenum / #divide;
disabledraw;
gofiletop;
#i = 1;
while( #i <= #divide ) {
    beginsel;
    if( #i == #divide ) gofileend;
    else movetolineno 1, #unit * #i + 1;
    copy;
    openfile "/h";
    paste;
    saveas $base + "_" + str( #i ) + $ext;
    setactivehidemaru #handle;
    #i = #i + 1;
}
endmacro;
//--------------------------------------------------//

     では, (^^)/~
                                        山紫水明

[ ]
RE:04513 ファイルの分割No.04514
のんびりさん さん 04/11/02 10:19
 
おはようございます。

上記のマクロですが、大変参考になりました。
また、openfileの/hオプション等、知らないこともあり
参考になると同時に勉強にもなりました。
10万行のファイルも無事に分割出来ました。

ありがとうございました。

[ ]