VBScript AtEndOfStream 属性
最后修改于 2025 年 4 月 9 日
VBScript 中的 AtEndOfStream
属性是 TextStream
对象的一部分。它指示当前位置是否已到达文本文件的末尾。此属性是只读的,并返回一个布尔值。它对于逐行或逐字符读取文件至关重要。
AtEndOfStream
有助于防止在处理文件内容时出现错误。它通常在循环中使用,直到文件结束。本教程通过实际示例介绍 AtEndOfStream
的用法。
AtEndOfStream 属性概述
如果文件指针位于文件末尾,AtEndOfStream
属性将返回 True。否则,它返回 False。它与通过 VBScript 中的 FileSystemObject
打开的文件一起工作。该属性仅可用于读取文本文件。
主要功能包括自动检测文件结束和简单的布尔返回值。它不会修改文件或其内容。AtEndOfStream
通常与 ReadLine
或 ReadAll
方法一起使用。理解此属性有助于创建健壮的文件读取脚本。
使用 AtEndOfStream 进行基本文件读取
此示例演示了 AtEndOfStream
最简单的逐行读取文件用法。它显示了如何检查文件结束条件。脚本一直读取直到整个文件被处理。
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("C:\temp\data.txt", 1) ' 1 = ForReading Do Until file.AtEndOfStream line = file.ReadLine WScript.Echo line Loop file.Close Set file = Nothing Set fso = Nothing
脚本创建一个 FileSystemObject
并打开一个文件进行读取。循环一直持续到 AtEndOfStream
返回 True。每次迭代读取一行并显示它。最后,资源得到妥善清理。
一次性读取整个文件
此示例展示了如何将 AtEndOfStream
与 ReadAll
一起使用。它演示了在读取整个文件内容之前检查该属性。这种方法对于小文件很有用。
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("C:\temp\note.txt", 1) If Not file.AtEndOfStream Then content = file.ReadAll WScript.Echo content End If file.Close Set file = Nothing Set fso = Nothing
脚本在读取之前检查 AtEndOfStream
。如果文件不为空,它会一次性读取所有内容。这对于小文件来说是高效的,但不应与大文件一起使用。该属性可防止不必要的操作。
逐字符读取
此示例演示了使用 AtEndOfStream
逐个字符读取文件。它展示了对文件读取操作的精确控制。每个字符都会单独处理直到结束。
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("C:\temp\chars.txt", 1) Do Until file.AtEndOfStream char = file.Read(1) WScript.Echo "Character: " & char Loop file.Close Set file = Nothing Set fso = Nothing
脚本在每次迭代中读取一个字符。AtEndOfStream
确保循环在文件末尾停止。这种方法对于解析或处理单个字符很有用。它提供了最大的读取控制。
处理 CSV 文件
此示例展示了 AtEndOfStream
在 CSV 文件中的实际用法。它演示了读取和解析逗号分隔值。每一行都被分割成组件以供进一步处理。
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("C:\temp\data.csv", 1) Do Until file.AtEndOfStream line = file.ReadLine values = Split(line, ",") WScript.Echo "Name: " & values(0) & ", Age: " & values(1) Loop file.Close Set file = Nothing Set fso = Nothing
脚本读取每一行 CSV 直到末尾。AtEndOfStream
确保所有行都得到处理。每一行都被分割成一个值数组。这种模式对于数据处理脚本很常见。该属性使循环安全。
计算文件行数
此示例使用 AtEndOfStream
来计算文本文件的行数。它演示了如何使用该属性进行文件分析。脚本在读取文件时维护一个计数器。
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("C:\temp\log.txt", 1) lineCount = 0 Do Until file.AtEndOfStream file.ReadLine lineCount = lineCount + 1 Loop WScript.Echo "Total lines: " & lineCount file.Close Set file = Nothing Set fso = Nothing
脚本为读取的每一行递增计数器。AtEndOfStream
确保所有行都被计数。这种方法对于大文件来说是内存高效的。该属性提供了循环终止条件。结果显示总行数。
来源
在本文中,我们探讨了 VBScript 中的 AtEndOfStream
属性,涵盖了它的用法和实际应用。从基本的文件读取到复杂的数据处理,这些示例都展示了可靠的文件处理。有了这些知识,您就可以通过健壮的文件结束检测来增强文件处理脚本。