でかいファイルの一部をバイナリリードしたい
とある形式のファイルのヘッダ部分だけを取得し、
[ファイル名],[情報1],[情報2] のように出力したい。
それ VBS で
いろいろ見てると、VBScript でのバイナリリードは、ADODB.Stream を使えばできるらしい。
function open_stream(filename)
dim s
set s = CreateObject("ADODB.Stream")
s.open
s.type = 1
s.LoadFromFile(filename)
set open_stream = s
end function
これから数バイトだけ読み出してみる。
sub get_data(stream, code)
dim data
data = stream.read(64)
code = get_data(data)
end sub
これでうまくいったと思ったんだけど、でかいファイルで躓いた。
4GB 位のファイルを読ませると、まるまる全部メモリに読み込もうとしているみたい。メモリ使用量がぐんぐん増えてった。
Stream ってそういうものなんだろう、きっと。
仕方がないので C で。
普通に fread で。おもしろくないなぁ。
size = fread(data, 1, 64, fp);