テキスト ファイルを読み込んでデータを編集するときに、最初の行かどうかを知りたいです。他の行のデータを更新したくないからです。
★印の位置でコードを分岐させたいです。
これを行う最善の方法は何ですか?
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