• 締切済み

VisualBasic6.0 バイナリでの読み書き

VisualBasic6.0(AccessVBA)でバイナリ形式(EBICDIC)のファイルを読み書きしようとしています。 その際に以下の問題が発生してしまい原因が分からずに悩んでおります。 ■問題  ファイルの読み込みはファイルのサイズ(バイト数)分を一気に読込ます。  その後、VB側で1レコード(128バイト)単位に分割してファイル出力(PUT)しています。  このPUTを行うと、ファイルの先頭4バイトに(08001200)と出力されてしまいます。  この4バイトが出力される原因が分からず悩んでおります。 どなたかご存知の方がいらっしゃいましたらご回答いただけると助かります。 参考にバイナリエディタのキャプチャを添付いたします。 以上です。

みんなの回答

  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.2

バイナリ形式の読み書きにEBICDICも何もありませんが その4バイト以降は正常なデータなのでしょうか? ・それ以後のデータは正常なのか異常データどっち? ・データが正常だとして(多分こっちだと思うが)4バイト+124バイトの形で出力されるのか  4バイト+128バイトの形で出力されるのかどっち? どこかで間違ったコード書いてるんでしょうが ソースコードの記載がないので判断することができません

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

出力のコードを提示したほうがいいと思いますよ 文字列として putに渡したりしていませんか? Byte配列として渡してやればいいかも … Dim rBuf() as Byte dim wBuf(127) as Byte ReDim rBuf(1023) Open "Test.bin" for Binary Access read as #1 get #1,,rBuf Close Open "TestW.bin" for Binary Access Write as #1   for n=0 to 127     wBuf(n) = rBuf(n)   next   put #1,,wBuf Close といった具合で …

関連するQ&A

専門家に質問してみよう