EOS and LineSeparator Properties and SkipLine Method Example (VB)

Microsoft ActiveX Data Objects (ADO)

EOS and LineSeparator Properties and SkipLine Method Example (VB)

This example demonstrates how to manipulate text streams one line at a time. The effect of changing the line separator from the default carriage return/linefeed (adCRLF) to simply linefeed (adLF) or carriage return (adCR) is shown.

Public Sub SkipLineX()
    'Declare variables
    Dim i As Integer
    Dim objStream As Stream
    Dim strLine, strChar As String
    
    'Instantiate and open stream
    Set objStream = New Stream
    objStream.Open
    
    'Set line separator to line feed
    objStream.LineSeparator = adLF
       
    'Load text content of list box into stream
    'One line at a time
    For i = 0 To (List1.ListCount - 1)
        objStream.WriteText List1.List(i), adWriteLine
    Next
    
    'Display the entire stream
    Debug.Print "Whole Stream:"
    objStream.Position = 0
    Debug.Print objStream.ReadText
        
    'Display the first line
    Debug.Print "First Line:"
    objStream.Position = 0
    strLine = objStream.ReadText(adReadLine)
    Debug.Print strLine
    Debug.Print "Line length: " + str(Len(strLine))
    
    'Skip a line, then display another line
    Debug.Print "Third Line:"
    objStream.SkipLine
    strLine = objStream.ReadText(adReadLine)
    Debug.Print strLine
    Debug.Print "Line length: " + str(Len(strLine))
    
    'Switch line separator to carriage return
    'All items from list will be considered one line
    'Assuming no CRs have been loaded into stream
    Debug.Print "Whole Stream/First Line:"
    objStream.Position = 0
    objStream.LineSeparator = adCR
    strLine = objStream.ReadText(adReadLine)
    Debug.Print strLine
    Debug.Print "Line length: " + str(Len(strLine))
    Debug.Print "Stream size: " + str(objStream.Size)
    
    'Use EOS to Determine End of Stream
    Debug.Print "Character by character:"
    objStream.Position = 0
    Do Until objStream.EOS
        strChar = objStream.ReadText(1)
        Debug.Print strChar
    Loop
End Sub