VBMAN.ToolsStream - File Stream Operation Object
Overview
VBMAN.ToolsStream provides stream-based file read/write functionality, supporting large file chunked processing, line mode read/write, and other advanced features.
Core Features
- Stream Processing: Suitable for large file operations
- Line Mode: Read/write text files line by line
- Encoding Support: Automatically handles multiple character encodings
- Progress Feedback: Supports read progress events
Methods
LoadFileAsText
Load file in text mode
vb
Public Function LoadFileAsText(filePath As String, Optional charset As String = "UTF-8") As cToolsStreamReadLine
Read a line
vb
Public Function ReadLine() As StringWriteLine
Write a line
vb
Public Sub WriteLine(text As String)SaveFileAsText
Save text file
vb
Public Sub SaveFileAsText(filePath As String, Optional charset As String = "UTF-8")UseLineMode
Enable/disable line mode
vb
Public Function UseLineMode(enable As Boolean) As cToolsStreamComprehensive Examples
Example 1: Process Large File Line by Line
vb
Private Sub ProcessLargeFile(filePath As String)
Dim stream As New cToolsStream
' Enable line mode
stream.UseLineMode(True).LoadFileAsText filePath, "UTF-8"
Dim lineNum As Long
lineNum = 0
Do While Not stream.IsEOF
Dim line As String
line = stream.ReadLine
lineNum = lineNum + 1
' Process each line
ProcessLine lineNum, line
' Refresh interface every 1000 lines
If lineNum Mod 1000 = 0 Then
LabelStatus.Caption = "Processed: " & lineNum & " lines"
DoEvents
End If
Loop
stream.Close
End SubExample 2: Generate Log File
vb
Private Sub GenerateLogFile()
Dim stream As New cToolsStream
stream.UseLineMode(True)
' Write multiple log lines
stream.WriteLine "[" & Now & "] System started"
stream.WriteLine "[" & Now & "] Loading configuration..."
stream.WriteLine "[" & Now & "] Configuration loaded"
' Save
stream.SaveFileAsText App.Path & "\\system.log", "UTF-8"
End SubExample 3: File Merge
vb
Private Sub MergeFiles(sourceFiles() As String, destFile As String)
Dim outStream As New cToolsStream
outStream.UseLineMode(True)
Dim i As Integer
For i = LBound(sourceFiles) To UBound(sourceFiles)
Dim inStream As New cToolsStream
inStream.UseLineMode(True).LoadFileAsText sourceFiles(i), "UTF-8"
' Copy content
Do While Not inStream.IsEOF
outStream.WriteLine inStream.ReadLine
Loop
inStream.Close
Next i
' Save merged file
outStream.SaveFileAsText destFile, "UTF-8"
End SubBest Practices
- Close Promptly: Call Close to release resources after use
- Large File Processing: Use line mode to avoid memory overflow
- Encoding Consistency: Use same character encoding for reading and writing
- Error Handling: Add error handling for file operations