Hakee intternetmaailmasta tiedoston Winsockin avulla. Käyttää ihan sitä samaa tekniikkaa kuin selaimetkin, eli HTTP:tä. Lisää formille Winsock ja jätä se "Winsock1":ksi. Eli siis jos haluat filen netistä messagelootaan niin esim. MsgBox GetNetFile("www.ohjelmointiputka.net"), antaa palautusarvona sisällön.
Private HostiName As String 'remootti hosti(mikä ihme se on suomeks?!?) Private Tiedosto As String 'hostin tiedosto Private Vastaus As String 'mitä hosti on kertonut Private Valmista As Boolean 'nimensä mukainen Public Function GetNetFile(ByVal Osote As String) 'knapataan pois turha http:// juttu If LCase(Left(Osote, 7)) = "http://" Then Osote = Mid(Osote, 8) Mesta = InStr(Osote, "/") 'katkaisukohta If Mesta = 0 Then Osote = Osote & "/": Mesta = Len(Osote) 'jos siinä ei ole kauttaviivoja niin lisätään yks =) HostiName = Left(Osote, Mesta - 1) 'hosti Tiedosto = "/" & Mid(Osote, Mesta + 1) 'fileé Winsock1.Close 'suljetaan se ettei tuu turhia virheitä Winsock1.LocalPort = 0 'varmuuden vuoksi... Winsock1.Connect HostiName, 80 'ja yhdistetään s = timer 'aloitusaika Do: DoEvents: Loop Until Valmista or (s + 10 < timer) 'odotetaan että saadaan sivu tai timeoutti(10 sek) Winsock1.Close 'suljetaan soketti Valmista = False 'ettei ensi kutsulla luulisi että heti valmista GetNetFile = Vastaus 'palautetaan sivu joka saatiin Vastaus = "" End Function Private Sub Winsock1_Close() 'servu sulki soketin elikkä kaikki tieto saatu 'mukava tieto, käytä jos haluat 'kertoo esim. ajan, serverin, keksit, ... Headeri = Left$(Vastaus, InStr(Vastaus, vbCrLf & vbCrLf) - 1) 'napataan otsikko pois varsinaisesta sivusta Vastaus = Mid(Vastaus, InStr(Vastaus, vbCrLf & vbCrLf) + 4) Valmista = True 'kun on valmista niin on valmista End Sub Private Sub Winsock1_Connect() 'tiedoston pyyntö otsikko FilePyyntö = "GET " & Tiedosto & " HTTP/1.1" & vbCrLf & _ "Host: " & HostiName & vbCrLf & _ "Connection: close" & vbCrLf & _ "Accept: */*" & vbCrLf & _ vbCrLf 'lähetetään pyyntö Winsock1.SendData FilePyyntö End Sub Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim Data As String Winsock1.GetData Data 'haetaan data Vastaus = Vastaus & Data '...ja lisätään se koko dataan End Sub
Eli hatusta vedetty?
host = osoite
host = isäntä, näin sanoo minun EuroTranslaattorini
puoliks hatusta, testattu koulussa vb6:lla... toi isäntä kuulostaa aika hyvin kyllä hostilta. En kyllä kuitenkaan opi sanomaan "isäntä" tai "asiakas" :P
hosti on aina hosti minun mielstäni
no niin minunkin mielstäni!
Tota oonki tarvinnu! Hyödellinen koodivinkki! Mä löysin kyl yhest mun VB Internet Ohjelmointi-kirjasta samanlaisen, mut reilusti pienempi lähdekoodi eikä se sit lopuks toiminukkaa...
Ihan hyvähän tää on. Tämmönen yksinkertanen http clientti :)
Mistäs ton Winsockin pystyy lisäämään? :))
noh, klikkaa oikealla korvalla sitä palkkia mistä saa nappuloita ja tekstilootia ym(mikä ihme sen nimi nyt oikeen??) ja valitse popupmenusta se Components... ja siitä sitten Microsoft Winsock Control.
siis mul ei ainakaan oo komponents valikos tota vinsok komentoo :P
Kato prkl, olise siellä... Omasta mielestäni katoin jo Mikkisoftin kaikki kohdat... Taidan vaan olla puusilmä :)
Winsock-kontrolli löytyy VB6:sta vain Professional ja Enterprise-versioista.
no löytyyhän se toki jos lisäät sen sinne listaan ite sillä Browse napilla, etit vaan sen ocx tiedoston ja kerrot missä se on.
Saako sen OCX:sin jostain ladattavaksi? Voisin testata toimiiko VB4:sella
kato mun sivuilta: http://koti.mbnet.fi/koodaaja/lataukset/load.
Remootti -> Remote -> etä****** tjsp
www.googe.fi ja ... ups! kone tilttaa!
Ei se kyllä mihinkään tilttaa, jää vaan junnaamaan :D noh ongejlma korjattu, timeoutti lisätty.
Onks ihan normaalii et tulee "Invalid procedure call or argument" ja se maala HostiName = Left(Osote, Mesta - 1) 'hosti
Toi tulee jos mä lisään:
Private Sub Form_Load()
MsgBox GetNetFile("www.ohjelmointiputka.net")
End Sub
Mut vaan jos lisään...
Ohhoh, D4_B34M: korjattu. Toi virhe oli siitä että jos urlissa ei ole lainkaan kauttaviivoja :)
Pystyykö tohon vaihtamaan sitä mihin se lataa nuo filut ?
Mitennii mihin lataa, se lataa sen muuttujaan :)
Se tiedosto tulee funktion palautusarvona, ja sen arvon voi lykätä, mihin tahtoo. Kivasti toimii, mutta VB:n mokoma kaatuu aina, kun sammutan ohjelman, jossa käytän tota. :P
Varmasti hyödyllinen vinkki, kiitos tästä.
miten siit sais sellasen joka näytttää messageboxis tämän http://koti.mbnet.fi/someone/ip.php ja mulla on vb6
siis ton linkin sisällön
Hei! Miten pystyy rivi kerrallaan lukemaan internet fileä? Siis auttakaa ny vähän!
HEI! Taas. Kun sammutan ohjelman missä tuo on niin miksi se alkaa lagaamaan?
Aihe on jo aika vanha, joten et voi enää vastata siihen.