我有一个简单的脚本,可以删除文本文件的前 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 行。
Result:
1
2
4
5
有没有办法如何做到这一点?
非常感谢您的回答和帮助。
感谢 Ekkehard.Horner 发现了我的错误。
Update:
Const FOR_READING = 1
Const FOR_WRITING = 2
strFileName = "C:\scripts\test.txt"
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 ShouldSkip(i) Then
objTS.WriteLine arrLines(i)
End If
Next
Function ShouldSkip(i)
Dim arrSkipLines, x
arrSkipLines = Array(1, 22, 32, 42, 169)
For Each x In arrSkipLines
If x = i Then
ShouldSkip = True
Exit Function
End If
Next
ShouldSkip = False
End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)