如何使用 VBScript 从文本文件中读取?

Posted

技术标签:

【中文标题】如何使用 VBScript 从文本文件中读取?【英文标题】:How to read from a text file using VBScript? 【发布时间】:2010-10-25 16:39:40 【问题描述】:

我正在寻找一种使用 VBScript 读取和写入文本文件的简单方法。

我认为这是一种可接受的写入文件的方法。

 Dim f, 
 Dim fso

 Set fso = CreateObject("Scripting.FileSystemObject")
 Set f = fso.CreateTextFile("C:\test.txt", True, True)

 f.WriteLine("Data to Add to file.")
 f.Close

但是,我想知道如何以类似的方式读取文件。

【问题讨论】:

我不明白。这不是你刚刚做的,只是你没有使用 read 方法吗? 是的,但这只适用于一行。 所以改用 ReadAll 方法 WriteLine 写一行。 ReadLine 读取一行。 ReadAll 读取整个文件(或Read(fileObj.Size)),Write 写入所有内容。 【参考方案1】:

先使用方法OpenTextFile,然后...

要么使用ReadAll的方法一次读取文件:

Const ForReading = 1
Dim file, content

Set file = fso.OpenTextFile("C:\test.txt", ForReading)
content = file.ReadAll

或逐行使用ReadLine的方法:

Const ForReading = 1
Dim dict, file, row, line

Set dict = CreateObject("Scripting.Dictionary")
Set file = fso.OpenTextFile ("c:\test.txt", ForReading)
row = 0
Do Until file.AtEndOfStream
  line = file.Readline
  dict.Add row, line
  row = row + 1
Loop

file.Close

'Loop over it
For Each line in dict.Items
  WScript.Echo line
Next

【讨论】:

匿名用户在您的代码中有suggested some changes。这似乎是一个有效的观点,但我不确定。也许您可能希望考虑一下。 @NisseEngström 我不明白为什么将格式 -1 (Unicode) 作为参数添加到 OpenTextFile 会更好地回答这个问题。【参考方案2】:
Dim obj : Set obj = CreateObject("Scripting.FileSystemObject")
Dim outFile : Set outFile = obj.CreateTextFile("in.txt")
Dim inFile: Set inFile = obj.OpenTextFile("out.txt")

' Read file
Dim strRetVal : strRetVal = inFile.ReadAll
inFile.Close

' Write file
outFile.write (strRetVal)
outFile.Close

【讨论】:

以上是关于如何使用 VBScript 从文本文件中读取?的主要内容,如果未能解决你的问题,请参考以下文章

如何从SFTP服务器获取文本文件并在VBScript中本地存储

如何在不实际提取文件的情况下使用 VBScript 读取 .zip 文件的内容?

VBScript 执行和评估命令

如何在 VBScript 中使用正则表达式替换部分子字符串?

如何使用Python脚本从PDF中读取阿拉伯语文本

如何使用 Java 直接从 Internet 读取文本文件?