ファイルを読み込む
ファイルを読み込む場合もファイルの書き込みと同じように行います。違いはまず、OpenTextFile関数での二番目の引数が 1 になることです。これが読み込みモードを表します。そして三番目の引数は省略してかまいません。Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("D:\work\test.txt", 1 )
ファイルから一行読み込むにはReadLineメソッドを使います。これは一行読み込んでその文字列を返してくれます。
str = file.ReadLine MsgBox str
この例では変数 str にいったん読み込んだ文字列を代入して表示しています。
ReadLineは一行しか読みませんが、ファイルを閉じる前に二回目、三回目の実行をすれば二行目、三行目を読んでくれます。最後にファイルを閉じるところは同じです。
file.Close まとめると以下のようになります。 Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("C:\work\test.txt", 1 ) str = file.ReadLine MsgBox str file.Close
この例では一行しか読み込みません。最後まで読み込むためにはTextStreamオブジェクトのAtEndOfLineメソッドを使ってファイルを最後まで読んだかを判定します。AtEndOfLineがTrueのときは最後まで読んでいます。Falseの場合にはまだ途中です。以下のようにすると一行ずつメッセージボックスで表示することができます。
while file.AtEndOfLine = false str = file.ReadLine MsgBox str wend
問題11-4:
ある特定のファイルを読み込み、そのファイルが何行あるかを数えるプログラムを作ろう。