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的所有元素。 –