Hier ist, wie ich d Nähern Sie sich dem Problem. Dieser Code legt die Anzahl der Zeilen fest, die zu einem bestimmten Zeitpunkt gelesen werden sollen, öffnet dann die zu lesende Datei und richtet ein Array ein. Während wir die Datei noch nicht fertig gelesen haben, fügen wir eine Zeile davon zu myArray
hinzu.
Wenn wir ein Vielfaches von 20 Zeilen gelesen haben, melden wir dies und tun, was immer wir brauchen, mit diesen 20 Zeilen (in meinem Fall habe ich sie einfach durch Semikolons auf dem Bildschirm angezeigt).
Dann setzen wir das Array wieder leer und wiederholen, bis die ganze Datei gelesen wurde, und geben dann den letzten Zeilenstapel aus (sonst würden sie ignoriert, da wir im Beispiel nur Chargen von 20 machen)).
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
Sie wären besser dran, die erforderlichen Zeilen zu streamen, anstatt die gesamte Datei in den Speicher zu laden. – Lankymart
ok ... ich kann die ersten 20 Zeilen der Textdatei lesen. Wie sollte ich für die nächsten 20 Zeilen gehen und so weiter, bis die Datei endet ..... wie soll ich es –