Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| [Résolu] Comment ouvrir un fichier depuis internet | |
| | Auteur | Message |
---|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: [Résolu] Comment ouvrir un fichier depuis internet Mar 25 Mai 2021 - 14:28 | |
| Bonjour à tous ! Le beau temps est en approche, je commence donc a sortir de ma tanière... Et pour mon retour je vous soumet le problème suivant : Tout le monde connais la syntaxe : FILE_LOAD 1,"C:\fichier.txt"Mais y a t-il une syntaxe équivalente pour les fichier en ligne. En gros je cherche à faire : FILE_LOAD 1,"https://my.cloudme.com/minibug/fichier.txt". Que ce soit sur un drive ou sur un site, y a t-il un moyen de récupérer le fichier par programmation ? A moins qu'une solution se cache dans les dll... Attention ! je ne veux pas EXECUTER le fichier. Je veux le charger dans un MEMO ou un LIST... Merci d'avance pour vos réponses.
Dernière édition par Minibug le Mar 25 Mai 2021 - 15:59, édité 1 fois | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: [Résolu] Comment ouvrir un fichier depuis internet Mar 25 Mai 2021 - 15:03 | |
| Je ne sais pas si mon explication est très claire !! En fait je souhaiterai pouvoir récupérer le contenu d'un fichier en ligne. C'est peut être plus clair comme çà. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: [Résolu] Comment ouvrir un fichier depuis internet Mar 25 Mai 2021 - 15:16 | |
| Bonjour Minibug, J'ai cette sub dans mes archives, à voir (adapter le chemin de fvb$): - Code:
-
SUB WebLoadFic(url$,fr$) ' Téléchargement d'un fichier web donné par son url -> fr$ ' (affichage d'une fenêtre noire temporaire jusqu'à la fin de l'opération). DIM_LOCAL f,q$,fvb$ fvb$ = "C:\TEMP\Download.vbs": q$ = CHR$(34): ' <= chemin à adapter ! f=1950: WHILE OBJECT_EXISTS(f)=1: f=f+1: END_WHILE FORM f: TOP f,TOP(0): LEFT f,LEFT(0): WIDTH f,WIDTH(0): HEIGHT f,HEIGHT(0) BORDER_HIDE f: COLOR f,255,0,0: ' témoin d'activité FILE_OPEN_WRITE 9,fvb$ FILE_WRITELN 9,"strFileURL = "+q$+url$+q$ FILE_WRITELN 9,"strHDLocation = "+q$+fr$+q$ FILE_WRITELN 9,"Set objXMLHTTP = CreateObject("+q$+"MSXML2.XMLHTTP"+q$+")" FILE_WRITELN 9,"objXMLHTTP.open "+q$+"GET"+q$+", strFileURL, false" FILE_WRITELN 9,"objXMLHTTP.send()" FILE_WRITELN 9,"If objXMLHTTP.Status = 200 Then" FILE_WRITELN 9,"Set objADOStream = CreateObject("+q$+"ADODB.Stream"+q$+")" FILE_WRITELN 9,"objADOStream.Open" FILE_WRITELN 9,"objADOStream.Type = 1" FILE_WRITELN 9,"objADOStream.Write objXMLHTTP.ResponseBody" FILE_WRITELN 9,"objADOStream.Position = 0" FILE_WRITELN 9,"Set objFSO = Createobject("+q$+"Scripting.FileSystemObject"+q$+")" FILE_WRITELN 9,"If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation" FILE_WRITELN 9,"Set objFSO = Nothing" FILE_WRITELN 9,"objADOStream.SaveToFile strHDLocation" FILE_WRITELN 9,"objADOStream.Close" FILE_WRITELN 9,"Set objADOStream = Nothing" FILE_WRITELN 9,"End if" FILE_WRITELN 9,"Set objXMLHTTP = Nothing" FILE_CLOSE 9 EXECUTE_WAIT "cscript.exe|" + fvb$ FILE_DELETE fvb$ DELETE f END_SUB | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: [Résolu] Comment ouvrir un fichier depuis internet Mar 25 Mai 2021 - 15:38 | |
| Bonjour JL35 !
Merci pour ton partage.
Mais quoi mettre alors dans url$ et fr$ ?? J'ai fais plusieurs tests. pas de bug mais rien dans le dossier !!
En fait j'ai un fichier situé à "http://gpp.panoramic.free.fr/Files/Other/setup_GPP_alpha_0-69-5.exe"
Est ce que je dois lancer par WebLoadFic("http://gpp.panoramic.free.fr/Files/Other/","setup_GPP_alpha_0-69-5.exe")
Et le dossier fvb$ = "C:\Downloads\Download.vbs" c'est là ou on récupère le fichier c'est ça ? | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: [Résolu] Comment ouvrir un fichier depuis internet Mar 25 Mai 2021 - 15:52 | |
| Ca se complique ! dans ton message là_haut tu parlais d'un fichier texte (fichier.txt), et là tu parles d'un fichier binaire (.exe) ça n'est pas la même chose ! Les paramètres de la sub: url$ = le chemin complet du fichier à télécharger = l'adresse du site et le chemin complet sur le site (y compris le nom du fichier) fr$ = le chemin et nom du fichier résultat dans TON PC, cad ici un fichier .txt théoriquement. fvb$ est simplement le fichier batch à exécuter pour faire l'opération Donc pour toi: url$ = "http://gpp.panoramic.free.fr/Files/Other/setup_GPP_alpha_0-69-5.exe" fr$ = C:\... un répertoire chez toi ...\Resultat.exe" Mais attention, je ne suis pas sûr que la sub marche pour un fichier binaire comme c'est le cas ici, et même je crois bien que non. J'ai une autre sub qui doit pouvoir chargar un fichier binaire... PS Je viens de faire un essai chez moi (charger le fichier .exe) Apparemment... ça marche ! le code complet: - Code:
-
dim url$,fr$ url$ = "http://gpp.panoramic.free.fr/Files/Other/setup_GPP_alpha_0-69-5.exe" fr$ = "C:\TEMP\Resultat.exe": ' n'importe où, à voir ! WebLoadFic(url$,fr$) end
SUB WebLoadFic(url$,fr$) ' Téléchargement d'un fichier web donné par son url -> fr$ ' (affichage d'une fenêtre noire temporaire jusqu'à la fin de l'opération). DIM_LOCAL f,q$,fvb$ fvb$ = "C:\TEMP\Download.vbs": q$ = CHR$(34): ' <= chemin à adapter ! f=1950: WHILE OBJECT_EXISTS(f)=1: f=f+1: END_WHILE FORM f: TOP f,TOP(0): LEFT f,LEFT(0): WIDTH f,WIDTH(0): HEIGHT f,HEIGHT(0) BORDER_HIDE f: COLOR f,255,0,0: ' témoin d'activité FILE_OPEN_WRITE 9,fvb$ FILE_WRITELN 9,"strFileURL = "+q$+url$+q$ FILE_WRITELN 9,"strHDLocation = "+q$+fr$+q$ FILE_WRITELN 9,"Set objXMLHTTP = CreateObject("+q$+"MSXML2.XMLHTTP"+q$+")" FILE_WRITELN 9,"objXMLHTTP.open "+q$+"GET"+q$+", strFileURL, false" FILE_WRITELN 9,"objXMLHTTP.send()" FILE_WRITELN 9,"If objXMLHTTP.Status = 200 Then" FILE_WRITELN 9,"Set objADOStream = CreateObject("+q$+"ADODB.Stream"+q$+")" FILE_WRITELN 9,"objADOStream.Open" FILE_WRITELN 9,"objADOStream.Type = 1" FILE_WRITELN 9,"objADOStream.Write objXMLHTTP.ResponseBody" FILE_WRITELN 9,"objADOStream.Position = 0" FILE_WRITELN 9,"Set objFSO = Createobject("+q$+"Scripting.FileSystemObject"+q$+")" FILE_WRITELN 9,"If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation" FILE_WRITELN 9,"Set objFSO = Nothing" FILE_WRITELN 9,"objADOStream.SaveToFile strHDLocation" FILE_WRITELN 9,"objADOStream.Close" FILE_WRITELN 9,"Set objADOStream = Nothing" FILE_WRITELN 9,"End if" FILE_WRITELN 9,"Set objXMLHTTP = Nothing" FILE_CLOSE 9 EXECUTE_WAIT "cscript.exe|" + fvb$ FILE_DELETE fvb$ DELETE f END_SUB
Dernière édition par JL35 le Mar 25 Mai 2021 - 16:00, édité 1 fois | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: [Résolu] Comment ouvrir un fichier depuis internet Mar 25 Mai 2021 - 15:58 | |
| - JL35 a écrit:
- Mais attention, je ne suis pas sûr que la sub marche pour un fichier binaire comme c'est le cas ici,
Eh ben ça marche parfaitement avec le fichier EXE qui se télécharge très bien. Pour le fichier TXT j'ai testais depuis mon cloud et je récupère bien le fichier mais ce n'est pas le contenu d'origne... Je pence qu'il faut que je refasse le test depuis un site ordinaire comme pour l'EXE. Enfin bref j'ai compris l'idée générale. Je vais maintenant creuser tout çà ! Encore merci JL35. Je te tiens au courant de mes avancés... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: [Résolu] Comment ouvrir un fichier depuis internet Mar 25 Mai 2021 - 16:31 | |
| un plaisir Minibug ! J'arrive après la bataille, mais je pense que la sub ci-dessous serait plus adaptée au binaire, et apparemment ça va plus vite ! PRÉCISION: à l'appel: - rep$ (au choix) est le répertoire qui contiendra le résultat, cad le fichier téléchargé avec son nom original dans la sub: - fvb$ : fichier de manoeuvre temporaire, n'importe où - Code:
-
dim url$,rep$ url$ = "http://gpp.panoramic.free.fr/Files/Other/setup_GPP_alpha_0-69-5.exe" rep$ = "Z:": ' à adapter ! GetBinaryFile(url$,rep$) Print "Terminé !" end
SUB GetBinaryFile(url$,rep$) ' Charger un fichier binaire (par ex. une image) depuis internet ' url$ = url de l'image, rep$ = répertoire de destination ' (l'image aura le nom de l'image d'origine) ' Exemple. url$ = "http://www.paulsadowski.com/images1/back.gif" ' rep$ = "Z:" DIM_LOCAL i%,q$,img$,fvb$,a$ q$ = CHR$(34) fvb$ = "Z:\GetFile.vbs": ' Fichier de manoeuvre temporaire, A ADAPTER ! IF RIGHT$(rep$,1)<>"" THEN rep$ = rep$+"" FOR i% = LEN(url$) TO 1 STEP -1 a$ = MID$(url$,i%,1): IF a$ = "/" OR a$ = "" THEN EXIT_FOR NEXT i% img$ = RIGHT_POS$(url$,i%+1) IF FILE_EXISTS(rep$+img$)=1 THEN FILE_DELETE rep$+img$ DATA "GetBinFile" DATA "URL = "+q$+url$+q$ DATA "ImageFile = "+q$+img$+q$ DATA "DestFolder = "+q$+rep$+q$ DATA "Set xml = CreateObject("+q$+"Microsoft.XMLHTTP"+q$+")" DATA "xml.Open "+q$+"GET"+q$+", URL, False" DATA "xml.Send" DATA "set oStream = createobject("+q$+"Adodb.Stream"+q$+")" DATA "Const adTypeBinary = 1" DATA "Const adSaveCreateOverWrite = 2" DATA "Const adSaveCreateNotExist = 1" DATA "oStream.type = adTypeBinary" DATA "oStream.open" DATA "oStream.write xml.responseBody" ' Ne pas écraser un fichier existant (supprimé éventuellement précédemment) DATA "oStream.savetofile DestFolder & ImageFile, adSaveCreateNotExist" ' Utiliser la syntaxe suivante pour écraser un fichier existant : ' oStream.savetofile DestFolder & ImageFile, adSaveCreateOverWrite DATA "oStream.close" DATA "set oStream = nothing" DATA "Set xml = Nothing" DATA "F" FILE_OPEN_WRITE 1,fvb$ RESTORE: READ a$: WHILE a$<>"GetBinFile": READ a$: END_WHILE READ a$: WHILE a$<>"F": FILE_WRITELN 1,a$: READ a$: END_WHILE FILE_CLOSE 1 EXECUTE_WAIT "Wscript.exe|"+fvb$ FILE_DELETE fvb$ END_SUB | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: [Résolu] Comment ouvrir un fichier depuis internet Mar 25 Mai 2021 - 18:35 | |
| | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: [Résolu] Comment ouvrir un fichier depuis internet Mar 25 Mai 2021 - 19:02 | |
| bonjour Klaus ! Merci pour ces infos. KGF est un vrai couteau suisse... Comme le programme pour lequel est destiné cette fonction n'intègre pas de DLL je préfère rester sur l'idée de JL35. @JL35 : J'ai réussi a télécharger un fichier TXT depuis mon site de GPP. J'ai intégré la SUB dans mon programme et tout fonctionne comme je le souhaite ! Merci à tous les 2 pour vos retours. PS : Le post est passé en [Résolu] | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: [Résolu] Comment ouvrir un fichier depuis internet Mar 25 Mai 2021 - 19:42 | |
| Ah oui Klaus, ça m'étonnait aussi, je l'avais cherchée mais pas trouvé la fonction DownloadFile. J'ai essayé avec DownloadFileFromFTP mais évidemment ça ne marchait pas. En tout cas le DownloadFile est bien plus simple que ce que j'ai mis, ça marche et perso je l'adopte ! | |
| | | Contenu sponsorisé
| Sujet: Re: [Résolu] Comment ouvrir un fichier depuis internet | |
| |
| | | | [Résolu] Comment ouvrir un fichier depuis internet | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |