Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: Problème avec DownLoadFile. Mar 12 Mar 2019 - 7:03 | |
| Bonjour. @Klaus. Je rencontre un problème avec cette fonction. J'obtiens le message d'erreur suivant: Impossible to load the file !Le problème vient du fait que le nom du fichier, donc du mot, comporte des accents ! Le dossier c:\pons existe bien. Merci de la suite. - Code:
-
dim url$, fichier$, mot$, res%
dll_on "kgf"
mot$="élève"
url$="https://fr.pons.com/traduction?q="+mot$+"&l=defr&in=fr&lf=fr"
fichier$="c:\pons\"+mot$+".txt" res%=dll_call2("DownloadFile",adr(url$),adr(fichier$))
dlist 997 file_load 997,fichier$
| |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec DownLoadFile. Mar 12 Mar 2019 - 8:19 | |
| | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec DownLoadFile. Mar 12 Mar 2019 - 9:55 | |
| Solution: dans l'URL, il faut remplacer les caractères accentués par leur code ISO. Démonstration: - Code:
-
' test_pedro_probleme_DownloadFile.bas
' ici, on a la liste des caractères spéciaux, à transformer: ' https://www.commentcamarche.net/contents/489-caracteres-speciaux-html ' utiliser la 2ème colonne (code ISO)
dim url$, fichier$, mot$, res%
dll_on "kgf"
mot$="élève" mot$ = "%C3%A9l%C3%A8ve"
url$="https://fr.pons.com/traduction?q="+mot$+"&l=defr&in=fr&lf=fr"
fichier$="test.txt" res%=dll_call2("DownloadFile",adr(url$),adr(fichier$)) message str$(res%)
memo 997 : full_space 997 : bar_both 997 file_load 997,fichier$
end
Dans les commentaires, il y a l'URL d'une page qui donne la liste exhaustive de ces codes.EDIT Désolé, l'URL n'est pas la bonne. Je vais actualiser prochainement - je suis en train de faire une autre fonction, duplicata de celle-ci mais avec conversion automatique de ces caractères spéciaux. Je te tiens au courant... | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec DownLoadFile. Mar 12 Mar 2019 - 14:03 | |
| Voilà - problème résolu. La bonne URL pour les codes remplaçant les caractères spéciaux est: https://www.utf8-chartable.de/unicode-utf8-table.plIl faut prendre la colonne hexa (2ème colonne) et placer le code "%xx%yy" dans espaces à la palce du caractère spécial "z", avec xx et yy étant les valeurs hexa de la 3ème colonne. J'ai créé une fonction DownloadFileUrlISO. Elle est la copie de DownloadFile, mais avec conversion automatique des caractères suivants: - Code:
-
'à','%C3%A0', 'â','%C3%A3', 'æ','%C3%A6', 'ç','%C3%A7', 'è','%C3%A8', 'é','%C3%A9', 'ê','%C3%AA', 'ë','%C3%AB', 'î','%C3%AE', 'ï','%C3%AF', 'ô','%C3%B4', 'ù','%C3%B9', 'û','%C3%BB', 'ü','%C3%BC'
La routine place l'URL convertie dans le presse-papier. Voici le programme de démo: - Code:
-
' test_pedro_probleme_DownloadFile.bas
' ici, on a la liste des caractères spéciaux, à transformer: ' https://www.utf8-chartable.de/unicode-utf8-table.pl ' utiliser la 2ème colonne (code ISO)
dim url$, fichier$, mot$, res%
dll_on "kgf"
mot$="élève"
url$="https://fr.pons.com/traduction?q="+mot$+"&l=defr&in=fr&lf=fr" fichier$="test.txt" res%=dll_call2("DownloadFileUrlISO",adr(url$),adr(fichier$)) message "URL convertie: "+clipboard_string_paste$ if res%=1 then message "Erreur en téléchargement"
memo 997 : full_space 997 : bar_both 997 file_load 997,fichier$
end
Tu peux charger KGF.dll à partir de mon site (lien dans ma signature). Le WebDav n'est pas encore à jour, et la doc est en cours de création. | |
|
Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: Problème avec DownLoadFile. Mar 12 Mar 2019 - 15:56 | |
| Bonjour.
Un grand merci Klaus pour la création d'une fonction spécifique à mon usage. Le téléchargement de l'URL contenant un mot accentué fonctionne parfaitement.
Je vais pouvoir maintenant télécharger les traductions en allemand de milliers de mots.
Super !
| |
|