私はテキストファイルの最初のn行を削除する単純なスクリプトを持っています。 行番号に基づいてテキストファイルの特定の行を削除(削除)するにはどうすればよいですか?
Const FOR_READING = 1
Const FOR_WRITING = 2
strFileName = "C:\scripts\test.txt"
iNumberOfLinesToDelete = 5
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objTS = objFS.OpenTextFile(strFileName, FOR_READING)
strContents = objTS.ReadAll
objTS.Close
arrLines = Split(strContents, vbNewLine)
Set objTS = objFS.OpenTextFile(strFileName, FOR_WRITING)
For i=0 To UBound(arrLines)
If i > (iNumberOfLinesToDelete - 1) Then
objTS.WriteLine arrLines(i)
End If
Next
私はあなただけあなただけ削除したいテキストファイル内の特定の行を持っている場合の方法があるかどうかお尋ねしたいの?意味は、テキストファイルの行番号に基づいています。
例えば、
1
2
This is line 3
4
5
そして、あなたは具体的に行番号3
結果の行番号3を削除する:
1
2
4
5
をありどのようにそれを行うには?
回答とヘルプに大きな感謝。
はあなたにトーマスをありがとう、私は代わりに、私の期待される出力を得るためにいくつかの変更をしたでなければならないこと@Thomas(およびその他)を表示します配列の場合、私は配列を次のように設定します: 'arrSkipLines = Array(Filter(arrSkipLines、i)= 0 Then' 'Ubound(Filter(arrSkipLines、i) 2) '行番号3は削除されます。あなたの答えは私にそれを行う方法についてのアイデアを与えました、ありがとう!:) – Djamille
UBound()は配列の最後のインデックスを返します。カウント - 1);空の配列の場合は-1、要素が1つの配列の場合は0です。 –
@ Ekkehard.Hornerあなたの権利を奪う。 Filterはiを含むすべての要素を返すので、私は自分の答えを修正する必要があります。 –