巨大サイズのファイルをバイナリで更新するには?

解決


超初心者  2006-12-23 03:33:05  No: 134693

はじめまして。プログラミング初心者です。

巨大サイズ(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

よろしくお願いします。


ヤマ@文系  2006-12-23 06:35:57  No: 134694

下のコードのようになると思いますが。。
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()


超初心者  2006-12-25 20:30:19  No: 134695

ヤマ@文系  様、

  質問者です。
  ご回答ありがとうございます!!

  早速試してみましたところ
  10Gより大きいサイズのファイルでも
  うまく動作しました!
  
  ファイルをすべて読み込んだ後書き換えを行わないと
  いけない  と思い込んでいましたが、OPENすることが
  できたんですね。
  初心者の固い頭では思いつくことができませんでした。。
  今後はいろんな方面から考えないといけないと痛感しました。

  とにかく動かすことができて感謝感激です。
  本当に本当にありがとうございました!!!


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

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






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