"エラー59:レコード長が一致しません"を消すには?


えいじ  2003-07-29 01:53:24  No: 107892

始めまして。VBを触り初めて1ヶ月ほどの初心者です。
環境は  VB6.0  です。
教えていただきたい内容は、

全角(2バイト)文字が入っている、テキストファイルを

get関数で読み込む際に、"レコード長が一致しません"という
エラーが発生します。

*Aモジュール
Open Full_Pass For Random As File_No Len = W_len

*Bモジュール
W_len = LenB(StrConv(w_Str, vbFromUnicode))

上記が、open命令の一文です。
ヘルプで調べた結果、オープンの際に読み込んだ
レコード長と一致いていないのが原因ということなのですが、
なぜ、エラーが出るがつきとめられません。

エラーの原因になっているかは  わかりませんが、
このプログラムはVB4.0から6.0に移行したものです。
移行の際に施した作業は4.0のソースを6.0上で開いただけです。
(自動で変換がかかりました。)

読み込むテキストファイルの2byte文字を削除してみると
正常に動作します。

また、open命令時のrandomモードをbinaryモードにて実行してみたところ、
一件は正常に読めるのですが、
2件以降が正常に読めません。

以上が、大体の現在の現状です。

みなさんのアドバイス、原因追及の手段等、お待ちしています。
宜しくお願いします。


さわ  2003-07-29 02:44:23  No: 107893

改行分のバイト数が不足してるんじゃないでしょうか?
ファイルレコードのレイアウトにこだわりが無ければLineで読んでみてはどうでしょう。
勘ですいませんけど


えいじ  2003-07-29 03:12:36  No: 107894

>さわさん。

さっそくやってみます。


えいじ  2003-07-29 18:31:54  No: 107895

すみません。
私のこだわりではないのですが、

やはり、getで読むのがベストのようです。

Unicodeではなく、ANSIコードを使用しているのが
関係してくるのでしょうか?

だいぶ頭がこんがらがってきた、、、(ううっ)


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

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






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