始めまして。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件以降が正常に読めません。
以上が、大体の現在の現状です。
みなさんのアドバイス、原因追及の手段等、お待ちしています。
宜しくお願いします。
改行分のバイト数が不足してるんじゃないでしょうか?
ファイルレコードのレイアウトにこだわりが無ければLineで読んでみてはどうでしょう。
勘ですいませんけど
>さわさん。
さっそくやってみます。
すみません。
私のこだわりではないのですが、
やはり、getで読むのがベストのようです。
Unicodeではなく、ANSIコードを使用しているのが
関係してくるのでしょうか?
だいぶ頭がこんがらがってきた、、、(ううっ)
ツイート | ![]() |