は、ここで私は「方法です問題に近づきます。このコードは、一度に読み込まれる行数を最初に設定し、読み込み用にファイルを開き、配列を設定します。ファイルの読み込みが完了していない間に、そのファイルの行をmyArray
に追加します。
私たちが読んだ20行の倍数を読んだとき、私たちはそれを報告し、それらの20行で私たちが必要とするものを実行します(私の場合は、画面にセミコロンで区切っています)。
次に、配列が空になるようにリセットして、すべてのファイルが読み込まれるまで繰り返すと、最終行の行が出力されます(そうでなければ無視されます)。例では20個のバッチ)。
Option Explicit
Const LINES_TO_READ = 20
Dim iLines, iTotalLines
Dim oFso : Set oFso = CreateObject("Scripting.FileSystemObject")
Dim oFile : Set oFile = oFso.OpenTextFile("C:\temp\mytextfile.txt", 1)
Dim myArray()
ReDim myArray(0)
iLines = 0
iTotalLines = 0
While Not oFile.AtEndOfStream
myArray(UBound(myArray)) = oFile.ReadLine
iLines = iLines + 1
ReDim Preserve myArray(UBound(myArray)+1)
If iLines Mod LINES_TO_READ = 0 Then
WScript.Echo iLines & " read now."
' do anything you like with the elements of myArray here before we reset it to empty
WScript.Echo Join(myArray, ";")
' reset array to be totally empty again
ReDim myArray(0)
End If
Wend
WScript.Echo "Final Lines: " & Join(myArray, ";")
WScript.Echo "Total lines in file: " & iLines
ファイル全体をメモリに読み込むのではなく、必要な行をストリーミングする方がよいでしょう。 – Lankymart
ok ...私はテキストファイルの最初の20行を読むことができます。どのように私は次の20行のために行く必要がありますまでファイルが終了.....どのように私はそれをループする必要があります –