【发布时间】:2013-08-27 19:51:25
【问题描述】:
我有一个 txt 文件,我只需要读取第一行,但只需要第 1 行中第 64-70 列的值。如何在 vbscript 中执行此操作?我已经研究了几种方法来做到这一点,但无法得到我正在寻找的东西。请帮忙。
【问题讨论】:
-
请提供一些你看过/尝试过的细节。还有助于展示您的文本文件的样机。
标签: vbscript
我有一个 txt 文件,我只需要读取第一行,但只需要第 1 行中第 64-70 列的值。如何在 vbscript 中执行此操作?我已经研究了几种方法来做到这一点,但无法得到我正在寻找的东西。请帮忙。
【问题讨论】:
标签: vbscript
对于从该行读取的字符,使用Mid(source_str, 64, 6)。 -- 6 是字符 64 到 70 的长度。
至于从文本文件中读取第一行,您需要设置一个循环来读取每一行直到文件末尾,将它们解析为字符串数组,然后只处理第一行。
或者,由于您只需要第一行,因此只需运行一次fsoStream.ReadLine()。
所以在你的情况下:
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("filename.txt")
'This only reads the first line of the file.
'To read any others, we would need a loop.
line = file.ReadLine()
thisStr = Mid(line,64,6)
【讨论】:
While Not EOF(file) line = file.ReadLine() Wend。如果你覆盖循环中的line变量,或者每次都在while-wend循环中处理它,你应该能够检测到最后一行是循环退出时留下的那一行。在进入循环之前确保你Dim line,这样循环退出时它就不会被释放。
Do While file.AtEndOfStream <> True line = file.ReadLine Loop 是 Microsoft 提供的另一个示例 here,它可能会更好一些。