【问题标题】:Find specific column range and line using VBSCRIPT使用 VBSCRIPT 查找特定的列范围和行
【发布时间】:2013-08-27 19:51:25
【问题描述】:

我有一个 txt 文件,我只需要读取第一行,但只需要第 1 行中第 64-70 列的值。如何在 vbscript 中执行此操作?我已经研究了几种方法来做到这一点,但无法得到我正在寻找的东西。请帮忙。

【问题讨论】:

  • 请提供一些你看过/尝试过的细节。还有助于展示您的文本文件的样机。

标签: vbscript


【解决方案1】:

对于从该行读取的字符,使用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,它可能会更好一些。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-14
  • 1970-01-01
  • 1970-01-01
  • 2023-02-21
  • 1970-01-01
相关资源
最近更新 更多