#navi(../)
* ファイルを行単位で読み込む方法・ReadLineメソッド [#kc8849c0]
VBScriptでファイルを行単位で読み込むには、TextStreamオブジェクトのReadLineメソッドにより実現することができます。~
以下にVBScriptのサンプルコードと実行結果について記します。
#contents
#htmlinsertpcsp(win-top.html,win-sp.html)
* 関連記事 [#tbddcae9]
-[[ファイルを新規に作成しテキストを書き込むサンプルコード>WSH/ファイルを新規に作成しテキストを書き込むサンプルコード]]
-[[既存ファイルをにテキストを追加書き込みするサンプルコード>WSH/既存ファイルをにテキストを追加書き込みするサンプルコード]]
-[[ファイルの存在チェックを行う・FileExists>WSH/ファイルの存在チェックを行う・FileExists]]
-[[フォルダの存在チェックを行う・FolderExists>WSH/フォルダの存在チェックを行う・FolderExists]]
-[[フォルダーのコピー・CopyFolder>WSH/フォルダーのコピー・CopyFolder]]
-[[ファイルまたはフォルダーを別の場所にコピーする・Copy>WSH/ファイルまたはフォルダーを別の場所にコピーする・Copy]]
* ReadLineメソッドを使用したサンプルコードと実行結果 [#j63b1503]
以下にTextStreamオブジェクトのReadLineメソッドを利用したVBScriptサンプルコードと実行結果を記します。
** サンプルコード [#w563d75d]
#ref(readline.vbs)
1: Set fso = CreateObject("Scripting.FileSystemObject")
2: Const ForReading = 1, ForWriting = 2, ForAppending = 8
3:
4: ' Create sample text file. (readline.txt)
5: Set tso = fso.OpenTextFile("readline.txt", ForWriting, true)
6: tso.WriteLine("TOKYO")
7: tso.WriteLine("CHIBA")
8: tso.WriteLine("KANAGAWA")
9: tso.WriteLine("TOCHIGI")
10: tso.WriteLine("SHIZUOKA")
11: tso.Close
12: Set tso = Nothing
13:
14: ' Read text file.
15: Set tso = fso.OpenTextFile("readline.txt", ForReading)
16: i=0
17: While tso.AtEndOfStream <> true
18: i = i + 1
19: WScript.Echo i & " : " & tso.ReadLine
20: Wend
21: WScript.Echo "TOTAL LINE = " & i
22: tso.Close
23: Set tso = Nothing
24:
25: Set fso = Nothing
上記のサンプルコードは、4行目から12行目までは、TextStreamオブジェクトのReadLineメソッドで読み込むためのテキストファイルを作成しています。~
15行目から23行目までは、作成したテキストファイルをTextStreamオブジェクトのReadLineメソッドを利用して読み込み、''行番号を先頭に付加''しています。~
21行目では行数を表示しています。
** サンプルコードの実行結果 [#k5f3f3b0]
サンプルコードの実行結果を以下に記します。~
行番号が付加されているのが確認でき、最後に行数が表示されています。~
typeコマンドを利用し作成したテキストファイルの内容を表示しています。
C:\wsh>cscript /nologo readline.vbs
1 : TOKYO
2 : CHIBA
3 : KANAGAWA
4 : TOCHIGI
5 : SHIZUOKA
TOTAL LINE = 5
C:\wsh>type readline.txt
TOKYO
CHIBA
KANAGAWA
TOCHIGI
SHIZUOKA
#htmlinsertpcsp(win-btm.html,win-sp.html)