Zeilen bearbeiten
Alle Zeilen auslesen
Mit einer Do/Until-Schleife und der EOF()-Funktion lässt sich eine Textdatei zeilenweise auslesen.
Im vorigen Beispiel haben Sie genau den Inhalt der ersten Zeile ermittelt, aber selbstverständlich können Sie auch die komplette Text-Datei auslesen. Dazu brauchen Sie eine Do/Loop-Schleife sowie die EOF()-Funktion (EOF steht für End Of File), die True wird, sobald das Dateiende erreicht ist:
Sub LiesBeispielDateiKomplett() Dim strZeile As String Dim strMerken As String Dim lngKanal As Long lngKanal = FreeFile() Open ThisDocument.Path & "\Beispiel.txt" For Input As #lngKanal Do Until EOF(lngKanal) Line Input #lngKanal, strZeile strMerken = strMerken & vbCrLf & strZeile Loop Close #lngKanal MsgBox "Alle Zeilen: " & strMerken End Sub
In der Schleife lesen Sie so lange die nächste Zeile aus, bis die EOF()-Funktion den Wert True annimmt und also das Ende der Datei erreicht ist. Die Line Input-Anweisung sorgt selbst dafür, dass die jeweils nächste Zeile gelesen wird, es braucht also kein explizites "Weiterschalten".
Die gefundenen Inhalte werden nicht wirklich verarbeitet, sondern einfach in einer Zeichenkette strMerken mit Umbruch dazwischen gesammelt und am Ende wieder in der MsgBox angezeigt.
Einzelne Zeilenwerte auslesen
Mit Input statt Line Input oder einer Split()-Funktion können Sie gezielt auf einzelne Werte innerhalb der Zeile zugreifen.
Wenn wie hier (und in den meisten Fällen) die Daten eigentlich tabellarisch organisiert sind, ist es durchaus sinnvoll, die komplette Zeile in die einzelnen Werte zu zerlegen. Dafür gibt es zwei Varianten:
