はじめまして。プログラミング初心者です。
巨大サイズ(10G以上)のファイルをバイナリ形式でよみこみ
&H100バイト目に 1 〜 9 の数字を上書きしたいのですが
VB2005でどのように記述すればよいのかわかりません。
VBAでは次のように書くとうまく動きました。
TargetFile = "C:\AAAAA.txt" '←サイズが10GB以上あります。
buf = FileLen(TargetFile)
FileNumber = FreeFile
Open TargetFile For Binary Access Write As #FileNumber
Put #FileNumber, 100, 1
Close #FileNumber
よろしくお願いします。
下のコードのようになると思いますが。。
10GB以上ではテストしてません。
Imports system.io
を先頭に書いて
Dim BW As System.IO.BinaryWriter
Dim TargetFile as string="C:\AAAAA.txt"
BW = New BinaryWriter(New FileStream(targetFile, FileMode.Open))
'開始位置を移動
BW.Seek(100, SeekOrigin.Begin)
'数値を書き込む
BW.Write(CType(1, Byte))
'閉じる
BW.Close()
ヤマ@文系 様、
質問者です。
ご回答ありがとうございます!!
早速試してみましたところ
10Gより大きいサイズのファイルでも
うまく動作しました!
ファイルをすべて読み込んだ後書き換えを行わないと
いけない と思い込んでいましたが、OPENすることが
できたんですね。
初心者の固い頭では思いつくことができませんでした。。
今後はいろんな方面から考えないといけないと痛感しました。
とにかく動かすことができて感謝感激です。
本当に本当にありがとうございました!!!
ツイート | ![]() |