VB6 Open〜Close で行数を取得するには?

解決


あsd  2005-08-17 15:31:42  No: 91509  IP: [192.*.*.*]

VB6の一般的なファイル処理の Open〜Close を使って、
ファイルの行数を取得するにはどうすればいいでしょうか?
FSOをつかえば簡単らしいですが、参照設定をしたくないので。。

編集 削除
ぶぶ  2005-08-17 16:50:33  No: 91510  IP: [192.*.*.*]

ただよみこんでDo Loop間でカウントすればいいのでは?

編集 削除
あsd  2005-08-17 17:26:12  No: 91511  IP: [192.*.*.*]

ファイルの行数だけを読み込むのに

Do Until EOF(intFileNo)
    i = i + 1
Loop

で、ただカウントをとっても無限ループ入るのですが、なにか処理を書かなくてはいけないのでしょうか?なにかやり方がまちがっているのでしょうか?

編集 削除
Blue  2005-08-17 17:30:52  No: 91512  IP: [192.*.*.*]

> ただカウントをとっても無限ループ入るのですが、
> なにか処理を書かなくてはいけないのでしょうか?
書かなくてはいけないです。ずっとファイルの位置が変わらないですから。
Line Input # ステートメントでも調べ見てください。

編集 削除
123  2005-08-17 17:32:35  No: 91513  IP: [192.*.*.*]

EOFでなにを調べているのかが分かれば何が足りないか分かるでしょう。
>読み込んで
の処理はどこ?

編集 削除
豚猫  2005-08-17 17:34:05  No: 91514  IP: [192.*.*.*]

>Do Until EOF(intFileNo)
>    i = i + 1
>Loop

【Line Input】で、一行のデータを取得することで
次の行へ、という意味もあるようです。
今、同じソースにて試したところ、無限ループしましたが
【Line Input】を入れることで回避できました。
以下にソースを記述します。

dim sDATA as string

do until eof(iFileNo)
  Line Input #iFileNo,sDATA
  i = i + 1
Loop

以上です。

編集 削除
KG  2005-08-17 17:58:06  No: 91515  IP: [192.*.*.*]

参照設定をしなくともCreateObjectを使えばできますよ。

既にご存知で、それがメンドクサイと思ってらっしゃるなら
すみません。|=x=;

編集 削除
あsd  2005-08-18 10:45:54  No: 91516  IP: [192.*.*.*]

Line Input
の処理を書かないとだめなんですね。
ありがとうございました。

編集 削除