.NETで以下の処理を行おうと思ったら(テキストファイルの行数を取得する)
Dim Fso As New FileSystemObject
Dim FsoTS As TextStream
Set FsoTS = Fso.OpenTextFile("test.txt", ForAppending)
Label1.Caption = "ファイルの行数は " & FsoTS.Line & " 行です。"
この手法に変わる方法はあるのでしょうか
特にmyをつかった方法があれば教えていただきたいと思います。
よろしくお願いします。
実際にStreamReader.ReadLineかReadToEndで読んで、
行数を調べるのが早いと思う
FileSystemObject自体は使おうと思えば.NETでも使えるみたいだけど、
TextStreamは使えなさそうなので…
やはり、実際に読み込むしかないですか。。残念。もっと簡単に行数がとっればと思っていたのですが。相手が100万行以上などの巨大なものだと時間がかかりそうな気がします。ありがとうございます。
FileSystemObjectは.NETでも使えるけど、これには罠があって
読み取り専用にされていると、追加書込みエラーになっちゃいます。
ちなみに私はやらかしました、CDドライブからだと例外エラーは
出るって不具合報告・・・
StreamReader.ReadLineとかで、地道にデータ読んで行数カウント
するしかないかな。
FSOでSkipLineで数える。
ところでLineプロパティは最後の改行有無で誤差1行出る。
SkipLineはTextStreamのメソッドらしいから、TextStreamが使えなかったら
無理みたいだよ
ReadLineで数えるか、ReadToEndで全部取ってからCrLf数えるのとでは、
どっちが速いだろう…
全部取るとファイルがデカければメモリをバカ食いするだろうし、
最後のCrLfの後に文字があるかどうかで確かに1行の差が出るから
気をつけないとダメだろうけど…
ありがとうございました。やはり実際に数えることにします。
ツイート | ![]() |