gpt4 book ai didi

vbscript - 如何根据行号删除(移除)文本文件的特定行?

转载 作者:行者123 更新时间:2023-12-04 08:21:26 27 4
gpt4 key购买 nike

我有一个简单的脚本可以删除文本文件的前 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

有没有办法做到这一点?

非常感谢您的回答和帮助。

最佳答案

感谢 Ekkehard.Horner 发现了我的错误。

更新:

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

关于vbscript - 如何根据行号删除(移除)文本文件的特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38494940/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com