我需要一個來源讀取.txt內容從一個網址。如何從vb 6中逐行讀取文本文件內容?
我的文本文件內容的樣品,然後在VB6加載:
我的源:
Dim data As String
data = Inet1.OpenURL("http://test.com/sample.txt")
Text1.Text = data
我需要一個來源讀取.txt內容從一個網址。如何從vb 6中逐行讀取文本文件內容?
我的文本文件內容的樣品,然後在VB6加載:
我的源:
Dim data As String
data = Inet1.OpenURL("http://test.com/sample.txt")
Text1.Text = data
沒有什麼,只會「下載」,在一個時間,因爲它的線無法知道換行符是在哪裏下載的。
如果你只想讀/進程在時間線,你可以在換行符下載後分裂:
Dim Data As String
Dim DataLines() As String
Data = Inet1.OpenURL("http://test.com/sample.txt")
DataLines = Split(Data, vbCrLf)
For Index = LBound(DataLines) to UBound(DataLines)
MsgBox DataLines(Index)
Next
你必須要小心,以確保你有正確的線中斷正在讀取的數據。
在處理HTTP時,您必須考慮行分隔符和字符編碼。如果你可以在測試後做出假設,那麼你可以繞過一些檢查,只是硬編碼以適應你的需求。但是舊版互聯網傳輸控制(「Inet」)通常不是最好的選擇,而更多現代的替代品是作爲Windows的一部分發布的,因爲至少IE 5.5的出現,並且隨着更加古老的IE 5.5的安裝Windows版本。因此,他們甚至可以在幾乎所有仍在運行的Win95系統上運行。
'References to MSXML 3.0 or later,
' ADO 2.5 or later.
Private Function GetHttpText(ByVal URL As String) As ADODB.Stream
Dim Req As MSXML2.XMLHTTP
Dim CharSet As String
Dim CharsetPos As Long
Dim LineSeparator As LineSeparatorEnum
Set Req = New MSXML2.XMLHTTP
Set GetHttpText = New ADODB.Stream
With GetHttpText
.Open
.Type = adTypeBinary
With Req
.Open "GET", URL, False
.send
CharSet = LCase$(.getResponseHeader("CONTENT-TYPE"))
End With
.Write Req.responseBody
CharsetPos = InStr(CharSet, "charset")
If CharsetPos Then
CharSet = Split(Mid$(CharSet, CharsetPos), "=")(1)
Else
'UTF-8 is a reasonable "default" these days:
CharSet = "utf-8"
End If
If CharSet = "utf-8" Then
LineSeparator = adLF
Else
'Your milage may vary here, since there is no line-end
'header defined for HTTP:
LineSeparator = adCRLF
End If
.Position = 0
.Type = adTypeText
.CharSet = CharSet
.LineSeparator = LineSeparator
End With
End Function
Private Sub DumpTextLineByLine()
With GetHttpText("http://textfiles.com/art/simpsons.txt")
'Read text line by line to populate a multiline TextBox
'just as a demonstration:
Do Until .EOS
Text1.SelText = .ReadText(adReadLine)
Text1.SelText = vbNewLine
Loop
.Close
End With
End Sub
除了我的回答,文本框默認情況下不會顯示多行。爲了正確顯示,將MultiLine屬性設置爲true,並確保源數據使用CRLF換行符。 – Deanna