- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2005におけるバイナリファイルの入出力)
VB2005におけるバイナリファイルの入出力について
このQ&Aのポイント
- VB2005におけるバイナリファイルの入出力について調査し、問題が発生している点について解決策を求めています。
- バイナリファイルの出力に関して、特定の値を指定すると意図しない結果が表示される問題が発生しています。
- また、4バイトを超えるとオーバーフローしてしまい、エラーが発生することも確認されています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
バイナリ出力が 逆順になるのは インテル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() と言った具合でしょう
その他の回答 (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
質問者
お礼
有難う御座います、この方法で上手く行きそうです! 丁寧に有難う御座いました、活用させて戴きます!
お礼
有難う御座います。 とても分かりやすく書いて戴き感謝いたします。 かなり長いバイナリを書き出したいのですが、やはり一気に書くのは不可能なのでしょうか… 有難う御座います、必ず参考にさせて頂きます。