help on downloading a text file from a website into memory

D

Dougsd1r

I have uploaded a text file to my website and can be accessed using a
browser i.e.

http://www.mysite.com/schedule.txt

The text file is just plain text on multiple lines ie

This is a test on line 1
--------------------------------
This is a test on line 3
++++++++++++++++
Line 5

What im trying to achieve is to have a button on my vb form brings up
a msgbox which in turn displays the contexts of the text file
(including the same formatting ie with carriage returns)

I've found sample code on the web which outputs a file to a text box
which i tried to amend but i found that I lost the carriage returns
or line breaks as these were replaced with spaces.

Can any one help me to change this code or is there another way to go
about it

Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Me.TextBox1.Multiline = True
Me.TextBox1.ScrollBars = ScrollBars.Both
'above only for showing the sample
Dim Doc As mshtml.IHTMLDocument2
Doc = New mshtml.HTMLDocumentClass
Dim wbReq As Net.HttpWebRequest = _
DirectCast(Net.WebRequest.Create("http://
msdn.microsoft.com/"), _
Net.HttpWebRequest)
Dim wbResp As Net.HttpWebResponse = _
DirectCast(wbReq.GetResponse(), Net.HttpWebResponse)
Dim wbHCol As Net.WebHeaderCollection = wbResp.Headers
Dim myStream As IO.Stream = wbResp.GetResponseStream()
Dim myreader As New IO.StreamReader(myStream)
Doc.write(myreader.ReadToEnd())
Doc.close()
wbResp.Close()

'the part below is not completly done for all tags.
'it can (will) be necessary to tailor that to your needs.

Dim sb As New System.Text.StringBuilder
For i As Integer = 0 To Doc.all.length - 1
Dim hElm As mshtml.IHTMLElement = _
DirectCast(Doc.all.item(i), mshtml.IHTMLElement)
Select Case hElm.tagName.ToLower
Case "body", "html", "head", "form"
Case Else
If hElm.innerText <> "" Then
sb.Append(hElm.innerText & vbCrLf)
End If
End Select
Next
TextBox1.Text = sb.ToString
End Sub
End Class


I should add that i am using Visual Basic 2005 Express Edition
 
K

kimiraikkonen

I have uploaded a text file to my website and can be accessed using a
browser i.e.

http://www.mysite.com/schedule.txt

The text file is just plain text on multiple lines ie

This is a test on line 1
--------------------------------
This is a test on line 3
++++++++++++++++
Line 5

What im trying to achieve is to have a button on my vb form brings up
a msgbox which in turn displays the contexts of the text file
(including the same formatting ie with carriage returns)

Why don't you just use webbrowser control and place / dock this
control on a extra form, then navigate to text file using
webbrowser1.navigate("http://www.mysite.com/schedule.txt"). Then call
this extra form from your main vb form using show method? As i
understand from your goal.
 
D

Dougsd1r

thanks i will do that
didnt think of doing it that way,
i am trying to convert a progam i wrote in vb6 which did it they way i
mentioned above but your way is a lot simpler
thanks again
 
H

Herfried K. Wagner [MVP]

Dougsd1r said:
I have uploaded a text file to my website and can be accessed using a
browser i.e.

http://www.mysite.com/schedule.txt

The text file is just plain text on multiple lines ie

This is a test on line 1
--------------------------------
This is a test on line 3
++++++++++++++++
Line 5

What im trying to achieve is to have a button on my vb form brings up
a msgbox which in turn displays the contexts of the text file
(including the same formatting ie with carriage returns)

Take a look at 'WebClient.DownloadString'.
 
S

ShaneO

Dougsd1r said:
What im trying to achieve is to have a button on my vb form brings up
a msgbox which in turn displays the contexts of the text file
(including the same formatting ie with carriage returns)
You can do it with the following code -

Dim WebClient As New System.Net.WebClient
Try
MsgBox(WebClient.DownloadString("http://www.mysite.com/schedule.txt")
Catch ex As Exception
'Error handling in here
End Try

At the time of this post, your site is currently not available, so you
will receive the following Exception -

"The remote server returned an error: (404) Not Found."

To me, this is the simplest way to achieve what you require and has the
added advantage of being able to easily handle errors etc.


ShaneO

There are 10 kinds of people - Those who understand Binary and those who
don't.
 
J

Just_a_fan

From reading books, it seems you need to use a Rich Text Box rather than
the regular one.

Mike
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top