0

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

有人可以帮我这里出了什么问题吗?

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

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"
4

1 回答 1

0

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

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

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

'Close and reopen the file from the top...
InputFileObject.Close
Set InputFileObject = InputFSO.OpenTextFile(InputFile)
于 2013-11-08T04:07:36.803 回答