我在大型机模拟器中运行宏,该模拟器读取文本文件以获取CICS屏幕的输入键,并循环输出到Excel的CICS屏幕页面。我们的仿真器软件已经从Passport改为Bluezone,它需要对专有屏幕逻辑进行一些重新设计,但也会在VB语法中引发一些奇怪的错误。其中一些虽然烦人很容易解决,但我现在的问题是我似乎无法让脚本正确处理文件的结尾。下面是我尝试过的逻辑的快照。当使用AtEndOfStream逻辑时,我得到一个“输入过去的文件末尾”错误 - 当使用EOF逻辑时,脚本只是循环,不断处理文件中的最后一条记录。似乎两个版本都没有识别文件的结尾,正在使用的文件是一个简单的ASCII记事本,在这种情况下包含一个6个字符的字符串,每行以return结尾。请注意,版本1逻辑与在旧版宏中完全相同,在Passport仿真器中运行完全没有任何错误,Bluezone仿真器开发人员指南建议使用版本2逻辑。
版本1:
ForReading = 1
Set objFSObject = CreateObject("Scripting.FileSystemObject")
Set strFileContents = objFSObject.OpenTextFile(strFile,ForReading)
Do while not strFileContents.AtEndOfStream
dline = strFileContents.readLine
第2版:
Open strFile For Input As #1
Do While Not EOF(1)
Line Input #1, dline
我会非常感谢任何帮助,因为我已经回顾了“输入文件末尾”错误并找不到解决方案的大量线程,这一点特别令人讨厌,因为它在旧的仿真器软件中运行良好。