Solved

Download a text file using HTTP

Posted on 2000-03-16
9
174 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
 
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
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
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

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Introduction I needed to skip over some file processing within a For...Next loop in some old production code and wished that VB (classic) had a statement that would drop down to the end of the current iteration, bypassing the statements that were c…
If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

708 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

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now