TÉLÉCHARGER UN FICHIER SUR INTERNET TRES SIMPLEMENT EN VB.NET

cs_Nox Messages postés 415 Date d'inscription mardi 3 avril 2001 Statut Membre Dernière intervention 26 avril 2008 - 12 févr. 2003 à 03:43
surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010 - 22 juin 2008 à 20:00
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/6109-telecharger-un-fichier-sur-internet-tres-simplement-en-vb-net

surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010
22 juin 2008 à 20:00
exacte backgroundworker_dowork, c'est ça principale utilité , de plus entre temps, j'avais découvert la classe network dans l'espace de nom "My.Computer" qui a déja une fonction de télécharchement.
@++ et bonne prog
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
22 juin 2008 à 18:31
lol... c'est à toi de le placer dans un thread pour ne pas "geler" ton main thread

regarde ça sinon :
http://www.vbfrance.com/codes/NET2-CLASSE-TELECHARGEMENT-HTTP-AVEC-GESTION-RESUME-PROGRESSION_41850.aspx
soldier8514 Messages postés 295 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 24 janvier 2014 1
22 juin 2008 à 16:12
ce code doit surement geler le programme pendant que ça télécharge , ça craint !
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
25 juin 2006 à 23:02
desolé d'entrer dans le debat si tard...
pour faire simple et court :
fais une requete GET et enregistre le resultat ou tu veux.
http://www.vbfrance.com/codes/REQUETE-HTTP-GET-POST_36181.aspx
sousoulebarbu Messages postés 101 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 11 janvier 2009
25 juin 2006 à 21:19
En utilisant cette fonction, tu arrive à retomber sur
"Aucune émission ne correspond à votre recherche..."?????
C'est bizard que j'y arrive pas.
Pour les personnes qui ont ce problème, j'utilise maintenant la fonction:
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Integer, ByVal szURL As String, _
ByVal szFileName As String, ByVal dwReserved As Integer, _
ByVal lpfnCB As Integer) As Integer

A utiliser comme ça: URLDownloadToFile(0,url, filename, 0, 0)
et tout fonctionne parfaitement
surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010
25 juin 2006 à 16:16
ben en faite je tombe sur :
Résultats


Aucune émission ne correspond à votre recherche...

Retour

Mais cependant fait attention au histoire de formatage de l'url, avec ou sans guillemet, quote ou encore les ~ ou %20% qui remplace des trucs comme les espaces ou autres caractéres
sinon je ne vois pas
sousoulebarbu Messages postés 101 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 11 janvier 2009
23 juin 2006 à 21:56
Je sais, je suis pas un newbie non plus...
Quand j'ouvre le fichier téléchargé avec notepad, j'obtiens un code source totallement différent de celui de la page lorsque je l'ouvre avec ie ou ff.
Essaye toi même, tu verra!
surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010
23 juin 2006 à 20:05
ce n'est pas une fonction de navigateur internet qui interprete et affiche du code (html,asp,php ...) mais qui recupere un fichier d'un serveur vers un ordi.
En clair l'affichage de la page web depand du navigateur essaye le meme lien que tu donne avec ie et firefox tu verra des differences
sousoulebarbu Messages postés 101 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 11 janvier 2009
23 juin 2006 à 15:27
Bonjour,
J'ai essayé d'utiliser cette fonction avec
"http://pelerin.lesagencestv.com/php/recherche_resultat/recherche_resultat.php?f_type_recherche=simple&f_jour=28-6-2006&f_chaine=4&f_debut_emission=0"
mais je n'obtiens pas la même page que lorsque j'ouvre l'url dans mon navigateur. Quelqu'un saurait-il expliquer ce problème?
GuilleW Messages postés 118 Date d'inscription vendredi 18 avril 2003 Statut Membre Dernière intervention 28 décembre 2006
4 juin 2006 à 00:30
Bonjour, pour VB.net vous pouvez même l'avoir gratuit en version étudiante disponible également sur le site microsoft, après je sais plus ou ...
Sinon un Grand merci < hvb > ta petite source était juste ce qu'il me fallait. Je vais pouvoir créer mon autoupdater plus simplement que prévue ^^
Merki!
aporler Messages postés 55 Date d'inscription samedi 19 octobre 2002 Statut Membre Dernière intervention 6 août 2009
15 févr. 2006 à 17:32
Pour la personne qui demande ou trouver vb.net
Ce rendre à http://msdn.microsoft.com/vstudio/express/vb/download/
Version d'essais de 30 Jours.
betapoil Messages postés 8 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 10 février 2005
11 févr. 2006 à 20:24
Nota, j'ai fait de mon mieux pour la lisibilité ...
et pour faire du vrai VB.Net, il faut remplacer les "msgbox" par "messagebox.show" (j'en ai ouvblié qq uns)
betapoil Messages postés 8 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 10 février 2005
11 févr. 2006 à 20:23
Bon code, trés sympa, j'ai repris celui de Surfzoid en ajoutant des controles d'erreurs importants :
Dim reponse
Dim telecharge
Dim LinesFromFile, NextLine As String, FileNum As Integer, Erreur as boolean = False

If Not (Directory.Exists("cache")) Then mkdir("cache")
If Not (File.Exists("version.txt")) Then Genere_Fichier_Version("version.txt")

Lblwaiting.Visible = True
try
If Dir("cache") <> "" Then Kill("cache\*.*") Catch e As Exception
msgbox (e.ToString )
end try

If (download_file(serveurname & "/version.txt", cache\version.txt")<>"") Then
messagebox.Show ("Erreur de téléchargement du fichier version.txt")
Erreur = True
GoTo fintransfert
End If

FileOpen(1, "cache\version.txt", OpenMode.Input) ' Open file.
FileOpen(2, "version.txt", OpenMode.Input) ' Open file.
reponse = MsgBox("La version " & LineInput(1) & " est dispo sur le seveur, vous utilisez la version " & LineInput(2) & " voulez vous faire une mise à jours ?", MsgBoxStyle.YesNo)

If reponse = vbYes Then
If (download_file(serveurname & "/liste.txt", "cache\liste.txt")<>"") Then
messagebox.Show ("Erreur de téléchargement du fichier liste.txt")
Erreur = True
GoTo fintransfert
End If
FileClose(1)
FileOpen(1, "cache\liste.txt", OpenMode.Input) ' Open file.
logage.Visible = True
Do Until EOF(1)
NextLine = LineInput(1)
System.Windows.Forms.Application.DoEvents()
logage.Text = "Téléchargement en cours du fichier : " & NextLine
'LinesFromFile = LinesFromFile & NextLine & Chr(13) & Chr(10)
System.Windows.Forms.Application.DoEvents()
If (download_file(serveurname & NextLine, "cache" & NextLine)<>"") Then
messagebox.Show ("Erreur de téléchargement du fichier " & NextLine & "Mise à jour échouée.")
Erreur = True
GoTo fintransfert
End If
'telecharge = LinesFromFile
System.Windows.Forms.Application.DoEvents()
Loop
Else
GoTo fintransfert
End If

reponse = MsgBox("Le téléchargement des fichiers est terminé, pour faire la mise à jour le logiciel vas être fermé, continuer ?", MsgBoxStyle.YesNo)
If reponse = vbYes Then
If (File.Exists("cache\maj.cmd")) Then
Shell("cache\maj.cmd", AppWinStyle.NormalFocus)
End
Else
messagebox.Show ("Erreur : fichier maj.cmd introuvable !" & vbcrlf & vbcrlf & "Mise à jour échouée.")
End If
Else
MsgBox("Pour proceder à une mise à jours ultérieure vous pouvez utiliser le fichier update.cmd qui se trouve dans le repertoire \cache\ de l application")
End If

fintransfert:
FileClose(1)
FileClose(2)
logage.Visible = False
Lblwaiting.Visible = False
Me.Close
If not Erreur then SaveSetting(System.Reflection.Assembly.GetExecutingAssembly.GetName.Name, "options", "lastupdate", Today.DayOfYear)
surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010
25 sept. 2005 à 20:15
pas terrible le formatage des message le code est carrement illisible dsl
sinon je n est pas testé mais ta fonction devrai marchée avec aussi du ftp genre
ftp://user:pass@adresse_ftp_du_file
surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010
25 sept. 2005 à 20:13
Exacte et je viens de le finir, vraiment exelente ta function download
pour ceux que ca interesse voici le code que j ai rajouter pour liste qui me permet de maintenir mon soft a jour via http
Dim reponse
Dim telecharge
Dim LinesFromFile, NextLine As String, FileNum As Integer

Lblwaiting.Visible = True
If Dir("cache") <> "" Then Kill("cache\*.*")
telecharge = download_file("http://" & serveurname & "/pointage-adi/updates/liste.txt", "cache\liste.txt")
telecharge = download_file("http://" & serveurname & "/pointage-adi/updates/version.txt", "cache\version.txt")
FileOpen(1, "cache\version.txt", OpenMode.Input) ' Open file.
FileOpen(2, "version.txt", OpenMode.Input) ' Open file.
reponse = MsgBox("La version " & LineInput(1) & " est dispo sur le seveur, vous utilisez la version " & LineInput(2) & " voulez vous faire une mise à jours ?", MsgBoxStyle.YesNo)
If reponse = vbYes Then
FileClose(1)
FileOpen(1, "cache\liste.txt", OpenMode.Input) ' Open file.
logage.Visible = True
Do Until EOF(1)
NextLine = LineInput(1)
System.Windows.Forms.Application.DoEvents()
logage.Text = "Téléchargement en cours du fichier : " & NextLine
'LinesFromFile = LinesFromFile & NextLine & Chr(13) & Chr(10)
System.Windows.Forms.Application.DoEvents()
telecharge = download_file("http://" & serveurname & "/pointage-adi/updates/" & NextLine, "cache" & NextLine)
'telecharge = LinesFromFile
System.Windows.Forms.Application.DoEvents()
Loop
Else
GoTo fintransfert
End If

reponse = MsgBox("Le téléchargement des fichiers est terminé,faire la mise à jours(Le logiciel vas être fermé)", MsgBoxStyle.YesNo)
If reponse = vbYes Then
Shell("cache\update.cmd", AppWinStyle.NormalFocus)
End
Else
MsgBox("Pour proceder à une mise à jours ultérieure vous pouvez utiliser le fichier update.cmd qui se trouve dans le repertoire \cache\ de l application")
End If

fintransfert:
FileClose(1)
FileClose(2)
logage.Visible = False
Lblwaiting.Visible = False
SaveSetting(System.Reflection.Assembly.GetExecutingAssembly.GetName.Name, "options", "lastupdate", Today.DayOfYear)
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
25 sept. 2005 à 16:51
bah oui, mais c'est à toi de le coder...
tu recupere la pages qui liste tes liens, tu formattes tes données, et tu fais une boucle... non? peut être que je comprend pas ce que tu veux.
surfzoid Messages postés 463 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 21 avril 2010
25 sept. 2005 à 16:22
marche impacable
mais est il possible de definir une liste de fichier a partir d un rep http puis de telecharge la dite liste ?
10/10
ludovicanceaux Messages postés 440 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 6 mai 2010
14 févr. 2005 à 15:50
bon le code n'est pô semblabe mai ca fai la même chose koi lolllllllllll
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
14 févr. 2005 à 12:21
"Ca donne quoi en VB6 ?"
un long code ecris par toi meme...

passer de vb6 à vb.net c'est tout simple, le contraire n'est pas toujours evident, voir parfois impossible.

Et winsock n'est pas du tout semblable au System.Net.WebClient
ludovicanceaux Messages postés 440 Date d'inscription mardi 21 octobre 2003 Statut Membre Dernière intervention 6 mai 2010
13 févr. 2005 à 15:50
en vb6 ce composant n'existe pô mai il y en a un similaire (Winsock)
gedsismik Messages postés 2 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 8 septembre 2003
8 sept. 2003 à 22:45
Ca donne quoi en VB6 ?
Noiretulipe Messages postés 164 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 13 juillet 2008
13 févr. 2003 à 21:30
chez le marchand lollll ... Ct nul, ok ..... ne referais plus ....
cs_utopia Messages postés 26 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 17 août 2009
13 févr. 2003 à 20:41
On peu je peut trouver Visual Basic.net ?

Merci a vous
cs_Nox Messages postés 415 Date d'inscription mardi 3 avril 2001 Statut Membre Dernière intervention 26 avril 2008
13 févr. 2003 à 04:04
ouais
me su encore fait avoir ak les sources vb.net jpensait stai tu vb simple :p
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
12 févr. 2003 à 12:49
mais... c t pas du vb6 ton projet? (c celui dont tu as mis la src nan?)
cs_Nox Messages postés 415 Date d'inscription mardi 3 avril 2001 Statut Membre Dernière intervention 26 avril 2008
12 févr. 2003 à 03:43
goood!
parfait pour mon problème de "gel" de mon exemple pour prendre une partie d'un code html
9/10
Rejoignez-nous