Vbscript VBS从文件中删除行
我目前无法从文本文件中删除前两行。我使用下面的代码。它在一个小的文本文件上工作得很好,但在非常大的文本文件上却不起作用。我一直在尝试让它工作的文件大小超过130000KB 我没有收到任何错误消息,它只是删除了文件中的所有内容,使其完全为空。不管怎样,我能让它工作吗Vbscript VBS从文件中删除行,vbscript,Vbscript,我目前无法从文本文件中删除前两行。我使用下面的代码。它在一个小的文本文件上工作得很好,但在非常大的文本文件上却不起作用。我一直在尝试让它工作的文件大小超过130000KB 我没有收到任何错误消息,它只是删除了文件中的所有内容,使其完全为空。不管怎样,我能让它工作吗 Const FOR_READING = 1 Const FOR_WRITING = 2 strFileName = "\\File\test Scp\ZRAS.txt" iNumberOfLinesToDelete = 2 S
Const FOR_READING = 1
Const FOR_WRITING = 2
strFileName = "\\File\test Scp\ZRAS.txt"
iNumberOfLinesToDelete = 2
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
MSGBOX "Done"
不要在.ReadAll()、Split()和数组循环上浪费内存和周期。只要做:
...
Set tsIn = objFS.OpenTextFile(strFileName, FOR_READING)
Set tsOut = objFS.OpenTextFile(strFileName, FOR_WRITING)
tsIn.SkipLine ' could use a loop to skip first n lines
tsIn.SkipLine
Do Until tsIn.AtEndOfStream
tsOut.WriteLine tsIn.ReadLine()
Loop
tsIn.Close
tsOut.Close
(未测试)您的标题是“VBS”,似乎是指VBScript。你的标签上写着“vb.net”。您的代码看起来像VB6。这三个是哪一个?它们不是同一件事。作为VBA对我来说很好。可能是VBS中不支持的内容。请注意,您正在写入源文件并在过程中销毁它。如果出现问题,数据就会丢失。最好先写入一个新文件,然后删除旧文件(或者重命名为BAK名称,可能文件名中有日期),然后将新文件重命名到位。我使用VBS修复了标记。我试着写一个新文件,但没有成功。它适用于小文件,但我正在处理的文件非常大,并且由于某些原因无法处理。我尝试了该代码,但收到了一条错误消息。它显示错误:输入超过文件的结尾。代码:800A003E。你知道我为什么会收到这个错误吗?。我所做的只是在设置tsIn=objFS.OpenTextFile(strFileName,用于读取)之前添加Const FOR_READING=1 Const FOR_write=2 strFileName=“\\File\test Scp\ZRAS.txt”,不管我是否能够修复该问题,但我收到另一条错误消息..invaild过程调用或片段代码:800A0005。我要发布代码below@user2974995你有没有让完整的脚本工作过?如果是的话,你能邮寄吗?