So erkennen Sie mit VBA die erste Zeile einer Textdatei (oder nicht)

So erkennen Sie mit VBA die erste Zeile einer Textdatei (oder nicht)

Ich möchte wissen, ob beim Lesen einer Textdatei die erste Zeile angezeigt wird oder nicht, um die Daten zu bearbeiten. Denn ich möchte diese Daten nicht in anderen Zeilen aktualisieren.

Ich möchte meinen Code an der mit einem ★ markierten Position verzweigen.

Wie geht man dabei am besten vor?

Set file = FSO.OpenTextFile(filepath)

Do Until file.AtEndOfStream
    line = file.ReadLine
    If ★ Then
        'edit data of first line
    ElseIf ... Then    'other lines' condition
    'update data of other lines            
    End If
    'Write line to text file        
Loop

Antwort1

Dies ist ziemlich trivial, aber Sie müssen diese Prüfung durchführen, bevor Sie die erste Zeile lesen.

Wenn Sie die Datei immer selbst öffnen, können Sie sicher sein, dass Ihre erste Iteration am Anfang der Datei steht:

Set file = FSO.OpenTextFile(filepath)
Set firstline = True

Do Until file.AtEndOfStream
    line = file.ReadLine
    If firstline Then
        firstline = False
        'Do first line stuff
    ElseIf ...
    End If
Loop

Wenn Sie nicht sicher sind, ob die Datei tatsächlich am Anfang steht (d. h. Sie öffnen sie in diesem Codeteil nicht selbst):

Set file = FSO.OpenTextFile(filepath)

Do Until file.AtEndOfStream
    line = file.ReadLine
    If file.Line == 2 Then ' we are actually at the second line now (after reading)
        'Do first line stuff
    ElseIf ...
    End If
Loop

verwandte Informationen