我有一个非常基本的任务:上传,保存和读取CSV文件,然后为ASP.NET Web应用程序执行一些其他任务。它使用VBScript作为后端脚本语言。
基于一些示例,并阅读了执行此操作的最佳方法,我提出了以下代码,说明如何逐行读取CSV文件:
Dim inLine, inputFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set inputFile = fso.OpenTextFile(fpath, ForReading)
Do While inputFile.AtEndOfStream <> True
Set inLine = inputFile.ReadLine
Response.Write(inLine)
Response.Write("<br/>")
Loop
inputFile.Close
问题是,每次运行那部分代码时,它基本上都会挂起一段时间,最终脚本超时。知道我要测试的是4行CSV,这很奇怪,这并不难读。
我已经将文件保存在打开它的目录中。
我可能会做错什么,或者最好在哪里进行调试?我确实尝试了其他几种方法(不是通过使用FileSystemObject),但是每次脚本挂起并超时时...
编辑 从测试来看,即使只有几行的文件也会产生大量的换行符,这让我觉得它无法正确打开文件,否则可能会出现其他问题,因为我没有多少行看到换行符。
解决方案编辑 听起来很奇怪,将代码更改为
Dim inLine, inputFile, csvFile
Set inputFile = fso.GetFile(fpath)
Set csvFile = inputFile.OpenAsTextStream(1, -2)
Do Until csvFile.AtEndOfStream
eil = csvFile.ReadLine
Response.Write(eil)
Response.Write("<br/>")
Loop
工作正常。文件已被读取,系统不再停止并超时。 我认为我的问题已经回答,但是,如果有人对“为什么”有所了解,那将是不胜感激并被接受为正确的答案。
此外,尽管我尊重这个社区的用户,但我不同意这个问题,因为它是当前标记的重复项。