プロが教える店舗&オフィスのセキュリティ対策術

「FileCopy」関数のように自分でカウントすることなく
テキストファイルの件数を知ることはできませんか

A 回答 (4件)

FileSystemObjectが使える環境なら



Dim Fso    As New FileSystemObject
Dim ReCnt  As Long
ReCnt = Fso.GetFolder("c:\フォルダのフルパス\*.TXT").Files.Count

でReCntに個数を取得できます。しかしこれもフォルダを取得してテキストを自分でカウントするのですが。
こういう事ではないのでしょうか。
    • good
    • 0
この回答へのお礼

こういうことですが、
オブジェクトがうまく生成できません。もう少し試してみます
ありがとうございます

お礼日時:2006/05/15 17:32

vbCrLfの数を数える。

FSOを使ってやってみました。
Sub test01()
Dim fs As Object, ts As Object
Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile("C:\Documents and Settings\XXXX\My Documents\YYYYY.txt")
If ts.AtEndOfStream = False Then
s = ts.readall
MsgBox s
n = Split(s, vbCrLf)
MsgBox UBound(n)
End If
ts.Close: Set ts = Nothing
Set fs = Nothing
End Sub
    • good
    • 0
この回答へのお礼

No.3 O cyanの回答にもありました「FileSystemObject」のGetFolderはどうやっても例外エラーになりました。
以下の方法で求めることができました。
皆さん、いろいろありがとうございました

Dim objFso As Scripting.FileSystemObject
Dim FsoTS As Scripting.TextStream
Dim ReCnt As Long

objFso = CreateObject("Scripting.FileSystemObject")
FsoTS = objFso.OpenTextFile("C:\Documents and Settings\XXXX\My Documents\YYYYY.txt"), Scripting.IOMode.ForAppending)
ReCnt = FsoTS.Line
FsoTS.Close()
FsoTS = Nothing

お礼日時:2006/05/16 15:05

Recordset.RecordCount

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

どう、コーディングすればいいのか・・
初心者なものでまったく、わかりません。
でも、回答ありがとうございました

お礼日時:2006/05/15 17:37

>「FileCopy」関数のように


というのがよくわかりませんが、読んでみないことには、レコード件数は、わかりません。
外部ツールでwc が使えれば、
wc -l textfile.txt
のような感じで数えられるかもしれませんが、結局ファイルを読んでいるのは変わりません。
    • good
    • 0
この回答へのお礼

ぐるぐる、読んでカウントするのではなく
1行でコーディングをしたかったのでした
ありがとうございます

お礼日時:2006/05/15 17:34

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