プロが教えるわが家の防犯対策術!

VisualBasic6.0(AccessVBA)でバイナリ形式(EBICDIC)のファイルを読み書きしようとしています。

その際に以下の問題が発生してしまい原因が分からずに悩んでおります。

■問題
 ファイルの読み込みはファイルのサイズ(バイト数)分を一気に読込ます。
 その後、VB側で1レコード(128バイト)単位に分割してファイル出力(PUT)しています。
 このPUTを行うと、ファイルの先頭4バイトに(08001200)と出力されてしまいます。
 この4バイトが出力される原因が分からず悩んでおります。

どなたかご存知の方がいらっしゃいましたらご回答いただけると助かります。

参考にバイナリエディタのキャプチャを添付いたします。

以上です。

「VisualBasic6.0 バイナリで」の質問画像

A 回答 (2件)

バイナリ形式の読み書きにEBICDICも何もありませんが


その4バイト以降は正常なデータなのでしょうか?
・それ以後のデータは正常なのか異常データどっち?
・データが正常だとして(多分こっちだと思うが)4バイト+124バイトの形で出力されるのか
 4バイト+128バイトの形で出力されるのかどっち?

どこかで間違ったコード書いてるんでしょうが
ソースコードの記載がないので判断することができません
    • good
    • 0

出力のコードを提示したほうがいいと思いますよ



文字列として 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

といった具合で …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!