comment telecharger un fichier ? [Delphi 7] - Delphi/Pascal - Programmation
Marsh Posté le 22-11-2004 à 19:48:02
tiens j'ai touvé ce code, mais celui-ci ne fonctionne pas :
Citation : Il est possible de récupérer le contenu au format HTML ( ou texte ) de la page affichée dans le TWebbrowser. |
Mais lorsque je tape "webbrowser1." j'ai bien le choix oleobject, ensuite une fois oleobject tapé, si je fait . il n'y a rien d'affiché et si je tape qd même la fin (document.body.innerhtml) et bien le prog bug lors qdu déclenchement de cette ligne !
Quelqu'un peut m'expliquer pourquoi ?
Marsh Posté le 22-11-2004 à 23:18:23
Le webbrowser ça sert à afficher du HTML avec le moteur d'IE.
Si c'est juste pour récupérer la page c'est un peu prendre un bulldozer pour écraser une mouche.
TIdHTTP c'est un des composants "Client" de Indy. Il est fourni depuis Delphi 6 normalement, mais ça se downloade gratuitement sur http://www.indyproject.org/Sockets.iwp
Il suffit de faire
s := idhttp1.Get('http://www.site.com/page.html');
où s est une chaîne, pour récupérer une page
ou
idhttp1.Get('http://www.site.com/page.html', f);
où f est un TFileStream ouvert en écriture, pour récupérer unf ichier
Marsh Posté le 22-11-2004 à 23:52:49
Citation : c'est un peu prendre un bulldozer pour écraser une mouche |
Proverbe belge je suppose.
Marsh Posté le 22-11-2004 à 23:54:08
non, déformation d'une expression connue que j'ai oubliée
Marsh Posté le 23-11-2004 à 06:34:12
merci bp.
Bon ok je vais effacer le webbrowser puisque de toute façon je n'ai pas besoin de l'affichage.
Sinon, existe-t-il sous delphi une fonction qui sert à "splitter" une expression
En VB, il existe lafonction split(montableau,monexpression,separateur)
qui découpe une chaine de caractère suivant un certain séparateur que l'on précise et qui rempli un tableau.
une fonction equivalente existe-t-elle sous delphi ?
Merci
Marsh Posté le 23-11-2004 à 10:00:51
ce que j'utilise :
list.Text := StringReplace(s, separateur, sLineBreak, [rfReplaceAll]);
où "list" est une TStringList et "s" la chaîne à splitter.
Tu peux aussi utiliser list.CommaText et list.Delimiter pour ne pas avoir à utiliser StringReplace, mais alors les délimiteurs au sein de guillemets (modifiables par list.QuoteChar) ne sont pas remplacés, ce qui peut être gênant si tu n'es pas sûr de ce qu'il y a dans tes chaînes. En mettant QuoteChar à #0 ça résout peut-être le problème, à tester.
Marsh Posté le 23-11-2004 à 17:37:49
j'ai un pb avec ta méthode stringreplace :
j'ai fait avec cela pour tester :
bonlig.text:=(stringreplace('tototoestmalade','est',' ',[rfreplaceall]);
à la compile pas de pb, mais lorsque l'évenement est appellé, il y a un message d'erreur :
le projet projet1 a provoqué une classe d'execption ....
As-tu une idée du pb ?
Marsh Posté le 23-11-2004 à 18:01:50
J'imagine que tu bonlig est à nil (ou à n'importe quoi si c'est une variable locale) parce que tu n'as pas créé la TStringList ?
Marsh Posté le 23-11-2004 à 18:45:48
ben en fait j'ai fait :
var bonlig:tstringlist
begin
bonlig.text:=stringreplace ...
Marsh Posté le 23-11-2004 à 18:51:16
bah donc t'as pas créé la TStringList... (qui est une classe, donc qui a besoin d'un Create )
|
Marsh Posté le 23-11-2004 à 18:57:38
ah ok !
j'essaye !
Marsh Posté le 22-11-2004 à 18:47:38
Bonsoir à tous,
bon voilà en fait j'ai deux questions :
1 - Comment fati-on pour récupérer un flux html ? (du style indiquer une page web et récupérer son source dans un memo)
2 - Comment fait-on pour telecharger un fichier dont on connait l'adresse exacte ?
Merci
PS : j'ai vu le post sur IDHTTP (un peu plus bas) mais où trouve-t-on ce composant ?
---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF