データのなかにX'00'があるファイルを下記のような読み方をしました。
'ファイルOPEN
Open fname For Input As #1
RECCNT = 0
Do While Not EOF(1)
'1レコード読み込み
Line Input #1, recBuf
RECCNT = RECCNT + 1
'読込んだデータの加工処理
XXXXXXXXXXXXXXXXXXXXXXX
Loop
'ファイルCLOSE
Close #1
結果は、X'00'があるバイト数分、サイズが小さく読込まれます。
また、2レコード分が1度に読込まれたりします。
対策方法をおわかりの方、宜しくお願いいたします。
recBufってString型の変数?
編集 削除そうです。
これが原因なのでしょうか?
Stringで定義せずに何で定義すれば良いのでしょうか?
宜しくお願いします。
WinXP, VB6(sp6)の環境では勝手にコード値0の文字は切り詰められて
読み込まれ、質問のような現象はでませんでした。
バージョンの違いによるものでしょうか?
ところでX'00'ってChr$(0)の文字ってことですよね?
Maxさん、ありがとうございます。
X'00'(16進)は、Chr$(0)の文字のことです。(Null値?)
勝手にコード値0の文字は切り詰められて読み込まれるということは、
chr$(0)分、サイズが小さくなるということですよね?
そういう意味でしたか。
それならテキストモードで開いたときの仕様みたいなので
テキストモードで開いたときはChr$(0)は読むことはできないです。
Chr$(0)を読む必要があるならバイナリーモードで開いてください。
Chr$(0)が必要ということは、元のデータはテキストベースのデータ
じゃないということですよね?
Maxさん、ありがとうございました。
バイナリーモードでうまく行きました。