OS:WindowsXP
開発言語:VB 6.0
お世話になります。
2GBのファイルをリードしたいのですが、以下のようにするとバッファがオーバーフローしてしまいます。
fn = FreeFile()
Open "C:\2GB.txt" For Binary As #fn
ReDim buf(LOF(fn) - 1)
Get #fn, , buf
Close #fn
できれば512バイトずつリードしたいのですが、どのようにしたらよいでしょうか。
宜しくお願いします。
私の仕事でもGBファイルを扱うのですが、
大きいファイルにはADODB.Streamを使ったりしてます。
Getの第2引数を使って
Dim buf(512) as Byte
Dim Cnt as Long
fn = FreeFile()
Open "C:\2GB.txt" For Binary As #fn
Do
Get #fn, Cnt * 512 +1 , buf
Cnt = Cnt + 1
EOFならExit Do
Loop
Close #fn
とか
手元に環境がないので、ファイルの最後で
取得できるサイズが512でなかった場合などは
調べてみてください。
> 開発言語:VB 6.0
> 2GBのファイルをリードしたいのですが、以下のようにするとバッファがオーバーフローしてしまいます。
WindowsAPIを使うとか・・・
「How To Seek Past VBA's 2GB File Limit」
(http://support.microsoft.com/kb/189981/en-us)
ツイート | ![]() |