データのなかにX'00'があるファイルを読込むには?

解決


TSUBASYU  2004-07-05 20:15:31  No: 114508

データのなかに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度に読込まれたりします。
対策方法をおわかりの方、宜しくお願いいたします。


Max  2004-07-06 05:45:56  No: 114509

recBufってString型の変数?


TSUBASYU  2004-07-06 18:46:40  No: 114510

そうです。
これが原因なのでしょうか?
Stringで定義せずに何で定義すれば良いのでしょうか?

宜しくお願いします。


Max  2004-07-06 21:17:24  No: 114511

WinXP, VB6(sp6)の環境では勝手にコード値0の文字は切り詰められて
読み込まれ、質問のような現象はでませんでした。

バージョンの違いによるものでしょうか?
ところでX'00'ってChr$(0)の文字ってことですよね?


TSUBASYU  2004-07-06 21:52:16  No: 114512

Maxさん、ありがとうございます。

X'00'(16進)は、Chr$(0)の文字のことです。(Null値?)

勝手にコード値0の文字は切り詰められて読み込まれるということは、
chr$(0)分、サイズが小さくなるということですよね?


Max  2004-07-07 00:23:04  No: 114513

そういう意味でしたか。
それならテキストモードで開いたときの仕様みたいなので
テキストモードで開いたときはChr$(0)は読むことはできないです。
Chr$(0)を読む必要があるならバイナリーモードで開いてください。

Chr$(0)が必要ということは、元のデータはテキストベースのデータ
じゃないということですよね?


TSUBASYU  2004-07-07 18:45:41  No: 114514

Maxさん、ありがとうございました。

バイナリーモードでうまく行きました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加