从一个文件逐行读取并使用VBScript写入另一个文件

时间:2013-11-08 03:06:17

标签: vbscript scripting

我正在尝试将标签删除文件拆分为具有类似标题的片段。我有我的逻辑。但是,我试图逐行读取输入文件并将其写入另一个文件。当我打开outptut文件时,它不包含任何数据。这是我的代码。

有人可以帮我解决这个问题吗?

注意:以下代码不包含拆分文件的实际逻辑

Wscript.Echo "Begin"
InputFile = "test.txt"
Set InputFSO = CreateObject("Scripting.FileSystemObject")
Set InputFileObject = InputFSO.OpenTextFile(InputFile)

HeaderLine = InputFileObject.ReadLine

Do While InputFileObject.AtEndOfStream <> True
    strTemp = InputFileObject.SkipLine
Loop 

TotalLines = InputFileObject.Line-1

Set OutputFSO = CreateObject("Scripting.FileSystemObject")
Set OutputFileObject = OutputFSO.CreateTextFile("out.txt")

#Code for reading line by line and writing it to another file
Do While not InputFileObject.AtEndOfStream
    line = InputFileObject.Readline
    OutputFileObject.WriteLine(line)
Loop

Set InputFileObject = Nothing
Set OutputFileObject = Nothing
Wscript.Echo "Completed"

1 个答案:

答案 0 :(得分:0)

当您尝试获取行数时,您将在第一个Do循环中循环遍历整个输入文件。因此,当您点击第二个Do循环时,InputFileObject已经是“AtEndOfStream”。因此,第二个循环中的代码都没有执行。

考虑消除第一个Do循环并在另一个循环结束时计算文件中的行(除非在实际程序中需要第一个循环中的逻辑?)。

另一种方法是关闭输入文件并重新打开它。在这种情况下的问题是你最终会读取文件两次。

'Close and reopen the file from the top...
InputFileObject.Close
Set InputFileObject = InputFSO.OpenTextFile(InputFile)