3
我有一個簡單的腳本,刪除文本文件的前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
是否有如何做到這一點?
對答案和幫助表示讚賞。
謝謝托馬斯,我做了一些改變,讓我的預期的輸出,而不是使用'If UBound(Filter(arrSkipLines,i)= 0 Then'I'If UBound(Filter(arrSkipLines,i)<> 0 Then')。對於數組,我將數組設置爲:arrSkipLines = Array 2)'所以第3行將被刪除。你的回答給了我如何去做的想法,謝謝!:) – Djamille
UBound()返回數組的最後一個索引(即count - 1);所以它對於一個空數組是-1,對於只有一個元素的數組則爲0。 –
@ Ekkehard.Horner該死的權利。我將不得不修改我的答案,因爲Filter將返回包含i的所有元素。 –