Learn about VBScript AtEndOfLine property, including text file processing, line reading, and more. Understand how to use it effectively with practical examples.
last modified April 9, 2025
The AtEndOfLine property in VBScript is part of the TextStream object. It indicates whether the file pointer has reached the end of a line in a text file. This property is read-only and returns True or False. It’s essential for reading text files line by line or character by character.
AtEndOfLine helps control file reading operations precisely. It works with the TextStream object’s methods like Read and ReadLine. This tutorial covers AtEndOfLine with practical examples to demonstrate its usage.
The AtEndOfLine property checks if the file pointer is at the end of a line. It returns True only when the pointer reaches a line terminator. The property is used with TextStream objects opened for reading.
Key features include detecting line endings during sequential file reading. It doesn’t move the file pointer or modify the file. AtEndOfLine helps process text files with precise control. Understanding this property is crucial for text file manipulation.
This example demonstrates the simplest use of AtEndOfLine to read a text file character by character. It shows how the property changes when encountering line endings. The script reads until the end of the first line.
basic_ateol.vbs
Set fso = CreateObject(“Scripting.FileSystemObject”) Set file = fso.OpenTextFile(“test.txt”, 1) ’ 1 = ForReading
Do Until file.AtEndOfLine char = file.Read(1) WScript.Echo char Loop
file.Close Set fso = Nothing
The script opens “test.txt” for reading and reads one character at a time. The loop continues until AtEndOfLine becomes True. Each character is echoed to the output. This demonstrates basic end-of-line detection.
This example shows how to process an entire file using both AtEndOfLine and AtEndOfStream. It reads each line character by character while tracking line endings. The script handles multiple lines in a text file.
multiline_ateol.vbs
Set fso = CreateObject(“Scripting.FileSystemObject”) Set file = fso.OpenTextFile(“data.txt”, 1)
Do Until file.AtEndOfStream Do Until file.AtEndOfLine char = file.Read(1) WScript.Echo “Char: " & char Loop WScript.Echo “End of line reached” file.SkipLine ’ Move to next line Loop
file.Close Set fso = Nothing
The outer loop checks for end of file, while the inner loop checks for end of line. Each character is processed individually. When a line ends, a message is displayed. SkipLine moves to the next line.
This example uses AtEndOfLine to count characters in each line of a file. It demonstrates practical file analysis using the property. The script tracks line numbers and their respective lengths.
count_chars.vbs
Set fso = CreateObject(“Scripting.FileSystemObject”) Set file = fso.OpenTextFile(“document.txt”, 1) lineNum = 1
Do Until file.AtEndOfStream charCount = 0 Do Until file.AtEndOfLine file.Read(1) charCount = charCount + 1 Loop WScript.Echo “Line " & lineNum & “: " & charCount & " characters” lineNum = lineNum + 1 file.SkipLine Loop
file.Close Set fso = Nothing
The script reads through each line without storing characters. It increments a counter for each character read. After each line, it reports the line number and character count. This shows how to use AtEndOfLine for analysis.
This example demonstrates custom line processing using AtEndOfLine. It reads lines but processes specific characters differently. The script converts vowels to uppercase while reading.
custom_processing.vbs
Set fso = CreateObject(“Scripting.FileSystemObject”) Set file = fso.OpenTextFile(“input.txt”, 1) output = "”
Do Until file.AtEndOfStream Do Until file.AtEndOfLine char = file.Read(1) If InStr(“aeiou”, LCase(char)) > 0 Then output = output & UCase(char) Else output = output & char End If Loop output = output & vbCrLf ’ Add line break file.SkipLine Loop
WScript.Echo output file.Close Set fso = Nothing
The script reads each character and checks if it’s a vowel. Vowels are converted to uppercase in the output. Other characters remain unchanged. AtEndOfLine controls the inner reading loop. The modified text is built in the output variable.
This example shows how to read fixed-width fields using AtEndOfLine. It processes each line in segments of specific lengths. The script demonstrates structured file parsing.
fixed_width.vbs
Set fso = CreateObject(“Scripting.FileSystemObject”) Set file = fso.OpenTextFile(“records.txt”, 1)
Do Until file.AtEndOfStream field1 = file.Read(10) ’ First 10 chars field2 = file.Read(15) ’ Next 15 chars field3 = file.Read(5) ’ Next 5 chars
WScript.Echo "Field 1: " & Trim(field1)
WScript.Echo "Field 2: " & Trim(field2)
WScript.Echo "Field 3: " & Trim(field3)
' Skip remaining characters in line if any
Do Until file.AtEndOfLine
file.Read(1)
Loop
file.SkipLine
Loop
file.Close Set fso = Nothing
The script reads specific character counts for each field. It uses AtEndOfLine to handle variable-length lines. Fields are trimmed to remove extra spaces. This approach is useful for fixed-format data files. The inner loop ensures proper line termination handling.
TextStream Object Documentation
In this article, we have explored the AtEndOfLine property in VBScript, covering its usage and practical applications. From basic file reading to complex text processing, these examples demonstrate precise line handling. With this knowledge, you can enhance your file processing scripts with better control.
My name is Jan Bodnar and I am a passionate programmer with many years of programming experience. I have been writing programming articles since 2007. So far, I have written over 1400 articles and 8 e-books. I have over eight years of experience in teaching programming.
List all VBScript tutorials.