EOS 및 LineSeparator 속성 및 SkipLine 메서드 예제(VB)
이 예제에서는 텍스트 스트림을 한 번에 한 줄씩 조작하는 방법을 보여 줍니다. 선 구분 기호를 기본 캐리지 리턴/줄 바꿈(adCRLF)에서 단순히 줄 바꿈(adLF) 또는 캐리지 리턴(adCR)으로 변경하는 효과가 표시됩니다.
'BeginSkipLineVB
Private Sub cmdSkipLine_Click()
On Error GoTo ErrorHandler
'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
' clean up
objStream.Close
Set objStream = Nothing
Exit Sub
ErrorHandler:
' clean up
If Not objStream Is Nothing Then
If objStream.State = adStateOpen Then objStream.Close
End If
Set objStream = Nothing
If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Sub
Private Sub Form_Load()
List1.AddItem "This is the first line"
List1.AddItem "This is the second line"
List1.AddItem "This is the third line"
End Sub
'EndSkipLineVB