Solved

Download a text file using HTTP

Posted on 2000-03-16
9
181 Views
Last Modified: 2012-05-04
Can anyone give me an EXAMPLE of how to download a text file from a server onto the local machine without any user interaction (ie no prompts to run from current location or save).

Ie the answer I am looking for is a complete version of the following

Public Function GetFile(byval sURL as string, byval sFileName as string) as Boolean

    'Download and store file at sURL as sFilename
    'Return True/False based on success of operation

End Function


I have seen a very similar question posted here before but the accepted answer wasnt a complete solution and I cant get it to work.

Anybody able to provide me with a complete example in the format above ?

Cheers
0
Comment
Question by:paulstamp
  • 4
  • 3
  • 2
9 Comments
 
LVL 28

Expert Comment

by:AzraSound
ID: 2622736
are you partial against using the inet control?
0
 
LVL 3

Author Comment

by:paulstamp
ID: 2622740
Nope... thats fine.
0
 
LVL 28

Expert Comment

by:AzraSound
ID: 2622749
well you can stick an inet control on your form and try this:

Dim b() As Byte
Dim intCount As Integer
Dim strData As String

Inet1.Cancel ' Stops any current operations

b() = Inet1.OpenURL("http://www.vbsquare.com/index.html", icByteArray)

For intCount = 0 To UBound(b) - 1

  strData = strData & Chr(b(intCount))
Next intCount

Open "myfile.txt" For Binary Access Write As #1

Put #1, , b()

Close #1



0
Is Your AD Toolbox Looking More Like a Toybox?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

 
LVL 28

Accepted Solution

by:
AzraSound earned 75 total points
ID: 2622765
If you wanted to write directly to the file on the disk and surpass first putting the info into a byte array then you can use:

Dim strURL As String      ' URL string
Dim intFile As Integer   ' FreeFile variable
IntFile = FreeFile()
strURL = "http://www.youresite.com/text.text"
Open "c:\temp\myfile.txt" For Output _
As #IntFile
Write #IntFile, Inet1.OpenURL(strURL)
Close #IntFile
0
 
LVL 27

Expert Comment

by:Ark
ID: 2622782
Hi
What do you meen "Text File?" Page?
Add Internet Transfer Control(Inet1) at your form

Private Function GetPage(sURL As String, sFile As String) As Boolean
   Dim nFile As Integer
   GetPage = True
   On Error GoTo ERROR_GetPage
   Dim b() As Byte
   Inet1.Cancel
   Inet1.Protocol = icHTTP
   Inet1.URL = sURL
   b() = Inet1.OpenURL(, icByteArray)
   nFile = FreeFile
   Open sFile For Binary Access Write As nFile
   Put nFile, , b()
   Close nFile

EXIT_GetPage:
   Exit Function

ERROR_GetPage:
Select Case MsgBox("Error " & Err.Number & ": " & Err.Description & " at line: " & Erl, vbAbortRetryIgnore + vbCritical, "Error")
       Case vbAbort
            Screen.MousePointer = vbDefault
            GetPage = False
            Resume EXIT_GetPage:
       Case vbRetry
            Resume
       Case vbIgnore
            GetPage = False
            Resume Next
End Select
Resume EXIT_GetPage
End Function
0
 
LVL 27

Expert Comment

by:Ark
ID: 2622792
Hi
AzraSound:Sorry, look at time when i posted message - I didn't see your comments.
Cheers
0
 
LVL 28

Expert Comment

by:AzraSound
ID: 2622797
Not a problem....the more the merrier for those who need answers  =)
0
 
LVL 3

Author Comment

by:paulstamp
ID: 2623015
Thanks AzraSound... thats pretty much what I needed. Only two minor problems :

a) Unfortunately it puts quotes around the data in the file but thats not a big issue.

b) It seems to be cacheing the file somewhere : The situation is I'm writing a vb front end to a web-based system (I'm writing both sides of the equation), and when I modify the text file on my web site I still seem to be getting the file I first downloaded.

Any ideas (not to worry if you havent - you have already answered my real question).

Cheers
0
 
LVL 3

Author Comment

by:paulstamp
ID: 2623060
Actually.. scrub the last point - I've found out why its downloading an old version - got two different versions of the web site and I'm looking at wrong one !
0

Featured Post

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

I’ve seen a number of people looking for examples of how to access web services from VB6.  I’ve been using a test harness I built in VB6 (using many resources I found online) that I use for small projects to work out how to communicate with web serv…
Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question