ZetCode

VBScript ReadLine 方法

最后修改于 2025 年 4 月 9 日

VBScript 中的 ReadLine 方法是 FileSystemObject TextStream 对象的一部分。它从文本文件中读取一行并将其作为字符串返回。此方法对于逐行处理文本文件至关重要。读取后,它会自动移至下一行。

ReadLine 通常用于文件处理脚本,以处理日志文件、配置文件和数据文件。它会在每个换行符序列处停止。本教程将通过实际示例介绍 ReadLine 的用法。

ReadLine 方法概述

ReadLine 方法从已打开的文本文件中读取单行。它返回行内容,但不包含换行符。该方法需要一个以读取模式打开的 TextStream 对象。每次调用后,它会将文件指针移到下一行。

主要功能包括自动处理换行符和顺序读取。它会为空白行返回一个空字符串。到达文件末尾时,它会引发错误。了解此方法有助于创建健壮的文件处理脚本。

基本文件读取

此示例演示了 ReadLine 读取文件的最简单用法。它展示了如何打开文件、读取其内容以及关闭文件。该脚本将每一行输出到控制台。

basic_readline.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\temp\sample.txt", 1) ' 1 = ForReading

Do Until file.AtEndOfStream
    line = file.ReadLine
    WScript.Echo line
Loop

file.Close
Set fso = Nothing

该脚本创建一个 FileSystemObject 并打开一个文本文件。Do Until 循环读取每一行,直到文件末尾。使用 WScript.Echo 显示每一行。最后,清理资源。

处理 CSV 文件

此示例展示了如何使用 ReadLine 处理 CSV 文件。它读取每一行并将其拆分为字段。该脚本演示了从结构化文本文件进行基本数据解析。

process_csv.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\data\employees.csv", 1)

' Skip header line if needed
file.ReadLine

Do Until file.AtEndOfStream
    line = file.ReadLine
    fields = Split(line, ",")
    WScript.Echo "Name: " & fields(0) & ", Department: " & fields(2)
Loop

file.Close
Set fso = Nothing

该脚本读取包含员工数据的 CSV 文件。每一行都使用逗号分隔符拆分为字段。然后,脚本输出特定的字段。请注意,如果需要,可以跳过标题行。

计算文件行数

此示例演示了如何使用 ReadLine 来计算文件中的行数。它展示了如何在处理文件的同时维护计数器。该脚本提供基本的文件统计信息。

count_lines.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\logs\app.log", 1)
lineCount = 0

Do Until file.AtEndOfStream
    file.ReadLine
    lineCount = lineCount + 1
Loop

WScript.Echo "Total lines: " & lineCount

file.Close
Set fso = Nothing

该脚本打开一个日志文件并初始化一个计数器。每次调用 ReadLine 都会增加计数器。最后显示总行数。此模式对于文件分析任务非常有用。

搜索文件内容

此示例展示了如何使用 ReadLine 在文件中搜索特定文本。它读取每一行并检查是否匹配。该脚本演示了基本文本搜索功能。

search_file.vbs
searchTerm = "ERROR"
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\logs\system.log", 1)
lineNumber = 0

Do Until file.AtEndOfStream
    line = file.ReadLine
    lineNumber = lineNumber + 1
    
    If InStr(line, searchTerm) > 0 Then
        WScript.Echo "Found at line " & lineNumber & ": " & line
    End If
Loop

file.Close
Set fso = Nothing

该脚本在日志文件中搜索 "ERROR"。使用 InStr 检查每一行。匹配的行会显示其行号。这种方法对于日志分析和调试非常有用。

读取配置文件

此示例演示了如何使用 ReadLine 读取配置文件。它处理由等号分隔的键值对。该脚本展示了如何解析简单的配置文件。

read_config.vbs
Set config = CreateObject("Scripting.Dictionary")
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.OpenTextFile("C:\app\config.ini", 1)

Do Until file.AtEndOfStream
    line = file.ReadLine
    If InStr(line, "=") > 0 Then
        parts = Split(line, "=")
        key = Trim(parts(0))
        value = Trim(parts(1))
        config.Add key, value
    End If
Loop

' Access configuration values
WScript.Echo "Timeout: " & config("timeout")

file.Close
Set fso = Nothing

该脚本读取一个配置文件,该文件将设置存储在 Dictionary 中。每个键值对都被拆分和修剪。然后可以通过 Dictionary 对象访问配置。此模式对于脚本配置非常有用。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 ReadLine 方法,涵盖了其用法和实际应用。从简单的文件读取到复杂的数据处理,这些示例展示了基于行的文件处理。有了这些知识,您就可以增强您的文件处理脚本。

作者

我叫 Jan Bodnar,是一位充满热情的程序员,拥有多年的编程经验。自 2007 年以来,我一直在撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面有八年以上的经验。

列出所有 VBScript 教程