如何使用vba知道文本文件的第一行或不

如何使用vba知道文本文件的第一行或不

在读取文本文件以编辑其数据时,我想知道第一行是否正确。因为我不想在其他行更新该数据。

我想在用★标记的位置分支我的代码。

实现这个的最佳方法是什么?

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

答案1

这很简单,但您必须在阅读第一行之前进行此项检查。

如果您总是自己打开文件,那么您可以确定您的第一次迭代位于文件的开头:

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

如果您不确定该文件确实位于开头(即您没有在该部分代码中自己打开它):

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

相关内容