2012-10-01 119 views
2

我想在JavaScript中逐行读取本地文件。我可以检查它是否到达这个文件的末尾。例如:JavaScript中的文件结尾

file = new ActiveXObject("Scripting.FileSystemObject"); 

// Sets the variable "f" to equal the new open file contents 

f = file.OpenTextFile("c:\\wantlist.txt", 1); 
s = f.ReadLine() 

While(s != EOF) 
{ 
    //. Do some thing 
    s = f.ReadLine() 
} 

什么是EOF应该在JavaScript中?或者你有另一种方法来解决这个问题?非常感谢你!

回答

2
+0

只是出于好奇,你有充分的理由选择版本0.84超过我选择的.60?这并不重要,但我认为我会稍微好一会儿。很显然,OP正在编写WSH文件,因此可能需要尽可能地提供支持。因为在脚本语言方面有很少的前向破坏,因此Ergo给予API中最可能的记录效果最好。 – jcolebrand

+0

我真的刚刚在Google上选择了AtEndOfStream的第一个结果来获取MSDN页面。我没有真正考虑到我选择的版本,因为这样一个简单的属性端口很好。我想,一旦他知道了财产的名称,他可以在MSDN上选择适合自己喜欢的API版本,尽管示例代码可能是相同的。 –

2

你取回一个FileStream对象,所以你要使用返回boolean值的属性之一做你想要做的,这样的东西作为AtEndOfStream

但是,现在我要走出我的肥皂箱,并问你为什么要编写JavaScript的窗口脚本的东西,为什么你不选择使用像PowerShell更现代的东西,其中W生病给你大部分的.NET对象的灵活性,但几乎所有的BASH脚本语言或其他脚本语言。

然后,您在此尝试完成的方法将更易于从其他社区成员编写/使用/获得支持。

我们不大可能召回窗口的JScript编程的深奥细节(但显然也有我们几个老屁仍然存在)

+0

可能你应该做一个完整的工作答案,因为他使用's = f.ReadLine();''while''但是我认为它应该是's + = f.ReadLine();' –

+0

为什么我会写一个完整的例子?我想给他最好的答案,专门给他想要的。另外,为了清楚起见,你在问什么,他可能试图读取所有行,并将它们全部保存在缓冲区中。传统上,您逐一阅读每一行,以便您可以在每一行上进行操作。一个例子:一个CSV文件,每行是一条记录。因此,将两行或更多行保存在内存中将是缓冲区的重复。我认为OP对于使用情况是相当具体的。 – jcolebrand