2つめのファイルの読み出しについて

解決


分からない・・・  2005-09-07 03:19:28  No: 124969

vb6で開発しています。
FORM の LOAD 時に、2つのファイルを読んでいるのですが、同じことを順番になっているつもりなのに、2つめのファイルのLOOPのところでエラーが発生します。

'*** Read File 1 ***
 FileName = CurDir + "File1.txt"
 i = 0

 Open FileName For Input As #1

 Do Until EOF(1)
  Line Input #1, csvData
  ArrayData = Split(csvData, ",")
 
   -----略-----
 Loop

 Close #1
 
 '*** Read File 2 ***
 FileName = CurDir + "File2.txt"
 i = 0

 Open FileName For Input As #2

 Do Until EOF(1)  ←ここで、エラーが出る。
  Line Input #2, csvData
  ArrayData = Split(csvData, ",")
   -----略-----
 Loop
 
 Close #2


魔界の仮面弁士  2005-09-07 03:22:03  No: 124970

# エラーの内容ぐらいは書きましょう。

> Open FileName For Input As #2
> Do Until EOF(1)  ←ここで、エラーが出る。
EOF関数に渡すファイル番号が間違っていませんか?


通ってみた  2005-09-07 04:49:56  No: 124971

#2をOpenして#1を調べてる罠


葉月α  2005-09-07 06:10:48  No: 124972

FreeFile使って変数ぶっこんでやった方が
視認性上がる罠


ガッ  2005-09-07 06:21:00  No: 124973

ついでにクラスにしてカプセル化してしまうのが吉


分からない・・・  2005-09-07 10:19:29  No: 124974

大変申し訳ありません。エラーの内容は、
Line Input Run-time error '52';
Bad file name or number
です。通ってみたさんのおっしゃることがとっても納得なのですが、それを回避するには具体的にどのように記述したらよいでしょうか?


分からない・・・  2005-09-07 10:25:56  No: 124975

以下の、リンクを参照したらできました。
http://www.mitene.or.jp/~sugisita/net/vbnet_rep004.html
「魔界の仮面弁士 」さん「通ってみた」さん「葉月α 」さん「ガッ」さんさんありがとうございました。


ガッ  2005-09-07 10:26:04  No: 124976

EOFを調べればOpenステートメントとかFreeFile()との関連が見えてくるはず…
具体的な記述は、
それらをちゃんと見てから出ないと「危ない方向」に導きかねないです。

※ヒント:EOF(FileNumber)


ガッ  2005-09-07 10:37:15  No: 124977

んぅ…解決してよかったです。
頑張ってくださいw


ねろ  2005-09-07 17:10:05  No: 124978

>EOFを調べればOpenステートメントとかFreeFile()との関連が見えてくるはず…
>具体的な記述は、
>それらをちゃんと見てから出ないと「危ない方向」に導きかねないです。
賛成です。
初めの質問も、
>Do Until EOF(1)  ←ここで、エラーが出る。
ここに問題があるのではなく、ファイル番号を変えている、
>Open FileName For Input As #2
ここに問題がありそう。
#2 -> #1と書けることに気が付くと、 i = 0  以下の構文が
上と全く同じになり、FileNameを渡すファンクションにしてしまえ、となり。
>ついでにクラスにしてカプセル化してしまうのが吉
となるわけですね。
一息には難しいかもしれないけど、Open Closeはしっかりおさえておきたい。


分からない・・・  2005-09-09 17:01:45  No: 124979

みなさん、ありがとうございます。FreeFile()もチェックしました。またいろいろ聞くかも知れませんが、よろしくお願いいたします。


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

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






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