はじめに
ものすごい行数のテキストファイルを開く際に(ログファイルやDBからエクスポートしたcsvファイル等)とても時間がかかったりヘタするとエディタが落ちる事もあったのでVBスクリプトでテキストファイルを分割するプログラムを簡単に書きました。また使いたくなることもあるかと思うので載せておきます。
スクリプト
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | Dim arg Dim objFSO Dim objFile Dim newFile Dim lineCount Dim fileNum Dim num Dim path Const splitNum = 10 arg = WScript.Arguments(0) Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile(arg) lineCount = 0 fileNum = 0 path = objFSO.getParentFolderName(WScript.ScriptFullName) & "\" Do While objFile.AtEndOfStream <> True num = lineCount Mod splitNum If num = 0 Then If lineCount <> 0 Then newFile.Close End If fileNum = fileNum + 1 Set newFile = objFSO.CreateTextFile(path & fileNum & ".txt", true) End If lineCount = lineCount + 1 newFile.WriteLine(objFile.ReadLine) Loop newFile.Close objFile.Close Set objFile = Nothing Set objFSO = Nothing Set newFile = Nothing |
解説
スクリプトの第一引数に対象ファイルのパスを指定していますので、拡張子vbsで保存してください。保存したスクリプトファイルに対象のファイルをドラッグするだけでOK。ダブルクリックしたらエラーになります。 定数のsplitNumで分割行数を設定していますのでコード上は10行ごとに別のファイルに分割します。お好きな行数にsplitNumを変更してください。拡張子についてもコード中の.txtを適宜csvなどに変えていただけたらそれで分割できます。 分割されたファイルのファイル名は順に1からつけていきます。好みで改造してください。