我想在 Set Te-6ren">
gpt4 book ai didi

vbscript - 如何重新运行 TextStream.AtEndOfStream

转载 作者:行者123 更新时间:2023-12-03 06:22:15 24 4
gpt4 key购买 nike

我成功运行下面的代码,逐行向浏览器显示文本文件:

<% 
Filename = "/pages/test.txt"
Set FSO = server.createObject("Scripting.FileSystemObject")
Filepath = Server.MapPath(Filename)

Set file = FSO.GetFile(Filepath)
Set TextStream = file.OpenAsTextStream(1, -2)

Do While Not TextStream.AtEndOfStream
Line = TextStream.readline
Response.Write Line & "<br>"
Loop

Set TextStream = nothing
Set FSO = nothing
%>

我想在 Set TextStream = Nothing 语句之前再运行一次 Do While Not TextStream.AtEndOfStream 循环。

事实证明,我不能“仅仅”复制 Do While 循环并将其放置在第一个实例下方。 TextStream 不再有任何结果。

有没有办法将 TextStream 对象重置回流的开头?

我可以将这些行存储在数组中并利用它,但我想看看是否有更简单的路线。

最佳答案

不幸的是,无法手动将指针定位在 TextStream 中目的。您可以Close TextStream并重新打开它。或者,正如您所暗示的,您可以将文件读入数组一次。考虑到您将整个文件输出到网页,我假设它不是非常大,因此,将其存储在数组中不会占用太多内存。

' Create an array containing each line from the text file...
a = Split(file.OpenAsTextStream(1, -2).ReadAll(), vbCrLf)

For i = 0 To UBound(a)
Response.Write a(i) & "<br>"
Next

' Repeat the process...
For i = 0 To UBound(a)
Response.Write a(i) & "<br>"
Next

您甚至可以将行结尾替换为 <br>并在一次操作中写入:

strText = Replace(file.OpenAsTextStream(1, -2).ReadAll(), vbCrLf, "<br>")

Response.Write strText
Response.Write strText ' Write it again

关于vbscript - 如何重新运行 TextStream.AtEndOfStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31572446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com