バイナリ読込みの結合の高速化

解決


tama  2007-10-16 01:02:50  No: 99557

①、②のファイルがあります。
その二つのファイルをバイナリ結合したいのですが、

②のバイナリデータは、書き変えなければなりません。

f1  =  ファイル①のパス
f2  =  ファイル②のパス
f3  =  ファイル③のパス(結合して作成されるファイル)

Open f1 For Binary As #1
    s1 = LOF(1)        'ファイルのサイズを変数sに読み込み
    ReDim b1(s1)       '配列の大きさをs(ファイルサイズ)に変更
    Get #1, , b1()                    '配列b()に読み込み
Close #1
    
Open f2 For Binary As #2
    s2 = LOF(2)        'ファイルのサイズを変数sに読み込み
    ReDim b2(s2)      '配列の大きさをs(ファイルサイズ)に変更
    Get #2, , b2()                    '配列b()に読み込み
Close #2
    
    
Open f3 For Binary As #3

↓↓↓↓↓↓↓↓  ↓↓↓↓  ↓↓↓↓  ↓↓↓↓          
    '前半はそのままf3に作る
        For i = 0 To s1 - 1
            a = b1(i)
            Put #3, , a
        Next i

      次にf2ファイルのバイナリ値を変更して結合

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

矢印で囲った最初の部分は、変更無しで  f3にスライドしたいのですが、
ファイルサイズが大きいと、ここで、時間がかかります。

コードを短縮できる方法はあるのでしょうか?


GOD  2007-10-16 02:27:24  No: 99558

>        For i = 0 To s1 - 1
>            a = b1(i)
>            Put #3, , a
>        Next i
>
一バイトずつやらないで一気に書いたらどうですか?
Put #3,,b1
f2ファイルのバイナリ値を変更後、
Put #3,,b2


ありがとう  2007-10-17 19:08:15  No: 99559

解決しました。

どうもありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加