VBScript Line Property
last modified April 9, 2025
The Line
property in VBScript is part of the TextStream
object. It returns the current line number in a text file being read. This
property is read-only and automatically increments as lines are read. It's
commonly used for tracking progress in file processing operations.
Line
starts counting from 1 when a file is opened. It provides
valuable debugging information during file operations. This tutorial covers
Line
with practical examples to demonstrate its usage in various
scenarios.
Line Property Overview
The Line
property belongs to the TextStream
object
created via FileSystemObject
. It returns a long integer representing
the current line position. The counter increments after each line read operation.
Key features include automatic line counting and read-only access. It doesn't
affect file reading operations. Line
works with both sequential and
random file access. Understanding this property helps create robust file
processing scripts.
Basic Line Counting
This example demonstrates the simplest use of Line
to track reading
progress. It shows how the property increments automatically. The script reads a
file while displaying current line numbers.
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("C:\data\log.txt", 1) ' 1 = ForReading Do Until file.AtEndOfStream lineText = file.ReadLine() WScript.Echo "Line " & file.Line & ": " & lineText Loop file.Close Set fso = Nothing
The script opens a text file and reads it line by line. Each iteration displays
the current line number and content. Line
starts at 1 and increments
after each ReadLine
call. This provides real-time progress feedback.
Error Reporting with Line Numbers
This example shows using Line
for error reporting in data files. It
demonstrates validating file content while tracking line numbers. Invalid data
can be reported with precise line references.
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("C:\data\values.csv", 1) Do Until file.AtEndOfStream lineText = file.ReadLine() If Not IsNumeric(lineText) Then WScript.Echo "Error in line " & file.Line & ": Not a number" End If Loop file.Close Set fso = Nothing
The script checks if each line contains numeric data. Non-numeric lines trigger
an error message with the line number. Line
helps pinpoint data
quality issues. This approach is useful for data validation scripts.
Processing Large Files with Progress
This example demonstrates using Line
to show progress when
processing large files. It outputs progress at regular intervals. The script
helps monitor lengthy file operations.
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("C:\data\bigfile.txt", 1) totalLines = 0 Do Until file.AtEndOfStream file.ReadLine() totalLines = totalLines + 1 If totalLines Mod 1000 = 0 Then WScript.Echo "Processed " & totalLines & " lines..." End If Loop WScript.Echo "Total lines processed: " & totalLines file.Close Set fso = Nothing
The script counts all lines in a large file. It reports progress every 1000
lines. Line
could replace the manual counter here. This technique
helps monitor long-running file processing tasks.
Comparing Line and Line Properties
This example compares Line
with manual line counting. It shows both
approaches working simultaneously. The script demonstrates their identical
behavior.
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile("C:\data\sample.txt", 1) manualCount = 0 Do Until file.AtEndOfStream lineText = file.ReadLine() manualCount = manualCount + 1 WScript.Echo "Manual: " & manualCount & ", Property: " & file.Line Loop file.Close Set fso = Nothing
The script shows both counting methods produce identical results. Line
eliminates the need for manual counters. This example verifies the property's
reliability. Using the built-in property reduces code complexity.
Line Counting in Write Operations
This example explores Line
behavior during file writing. It shows
how the property works differently in write mode. The script demonstrates line
counting during output operations.
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.CreateTextFile("C:\data\output.txt", True) ' True = Overwrite file.WriteLine "First line" WScript.Echo "After write 1: " & file.Line file.WriteLine "Second line" WScript.Echo "After write 2: " & file.Line file.Close Set fso = Nothing
The script creates a new file and writes two lines. Line
reflects
the next line number to be written. Unlike reading, it increments before the
write operation. This behavior is important for write tracking scenarios.
Source
TextStream Object Documentation
In this article, we have explored the Line
property in VBScript,
covering its usage and practical applications. From simple line counting to
complex file processing, these examples demonstrate reliable line tracking. With
this knowledge, you can enhance your file handling scripts with precise line
position information.
Author
List all VBScript tutorials.