幼稚園時代「何組」でしたか?

Access2000のVBAで関数を使用して
ファイルのパス名、ファイル名を指定すれば、
テキストファイルの件数を検索し変数に返す
関数はありませんか?
   
通常テキストファイルを開き1件1件カウントを
取っていけば件数を知ることは可能ですが、
数千レコードのテキストファイルが複数個存在
する場合処理スピードが遅くなるため何か
最適な関数はありませんか?
よろしくお願い致します。

A 回答 (4件)

こんにちは。

maruru01です。

No.2の方のFileSystemObjectを利用する方法です。

行数 = CreateObject("Scripting.FileSystemObject").OpenTextFile(ファイルのフルパス, 8).Line

複数のファイルをカウントするなら、ファイルでループを回せばいいでしょう。

あと、FileSystemObjectの参考ページを紹介しておきます。

http://www.bcap.co.jp/hanafusa/VBHLP/FSOme.htm

http://www.microsoft.com/japan/msdn/library/defa …

参考URL:http://www.bcap.co.jp/hanafusa/VBHLP/FSOme.htm,h …
    • good
    • 0
この回答へのお礼

一度FileSystemObjectを試してみたいと思います。
ご回答ありがとうございました

お礼日時:2005/01/17 18:59

>ファイル名を指定すれば


「フォルダを指定すれば」では、ないのですね。
であれば、>テキストファイルの「件数」を検索し、と言うより、レコード数やファイルサイズを知りたいと言うことでしょうか?
>通常テキストファイルを開き1件1件カウントを
取っていけば件数を知ることは可能ですが・・
「件数」と言う表現が不適当な気がする。
>数千レコードのテキストファイル
と「レコード」と言う言葉を使っているのだから、レコード数のことでしょうか。ファイル内のCRLFの個数のことでしょうか。
    • good
    • 0

EOFを利用するよりは、FileSystemObjectを利用する方が段違いに速くなります。

    • good
    • 0
この回答へのお礼

一度FileSystemObjectを試してみたいと思います。
ご回答ありがとうございました

お礼日時:2005/01/17 19:00

テキストファイルが何行あるか?


ということを調べたいのだと思いますが、
改行コードが何個あるか、実際にファイルを開いて読んでみないことには判りません。
(固定長レコードの場合は、ファイルサイズからレコード数が判るかも知れませんが)
それは、なんらかの関数を使ったとしても同じだと思います。
処理が早いか遅いかは、ファイルアクセスによるので、なるべくファイルを全部一気に読む込む方法が早いだろうとは思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!