• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2005におけるバイナリファイルの入出力)

VB2005におけるバイナリファイルの入出力について

このQ&Aのポイント
  • VB2005におけるバイナリファイルの入出力について調査し、問題が発生している点について解決策を求めています。
  • バイナリファイルの出力に関して、特定の値を指定すると意図しない結果が表示される問題が発生しています。
  • また、4バイトを超えるとオーバーフローしてしまい、エラーが発生することも確認されています。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

バイナリ出力が 逆順になるのは インテルx86アーキテクチャによるものです 12 34 56 78 と出力したいのであればByte型の配列を作成して これに &h12、&h34、&h56、&h78を代入して writer.Write(変数) と言った具合にしましょう dim bb(3) as Byte bb(0) = &h12 bb(1) = &h34 bb(2) = &h56 bb(3) = &h78 writer.Write( bb ) writer.Close() と言った具合でしょう

ROM_
質問者

お礼

有難う御座います。 とても分かりやすく書いて戴き感謝いたします。 かなり長いバイナリを書き出したいのですが、やはり一気に書くのは不可能なのでしょうか… 有難う御座います、必ず参考にさせて頂きます。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

Byte型配列の要素を増やしてやれば可能ですよ 元のデータが Integer型なら ' nInt : 変換元になる数値 ' arByte : 変換後に格納する配列 ' nIndex : 格納位置の先頭 Sub Int2Byte( ByVal nInt as Integer, _   ByRef arByte() as Byte, ByVal nIndex as Integer)   dim n, nMask1, nMask2 as Integer   nMask1 = &hFF000000   nMask2 = &h1000000   for n=0 to 3     nB = (nInt And nMask1) / nMask2     nMask1 = nMask1 / 256     nMask2 = nMask2 / 256     arByte( nIndex + n ) = nB   next End Sub

ROM_
質問者

お礼

有難う御座います、この方法で上手く行きそうです! 丁寧に有難う御座いました、活用させて戴きます!