[Delphi 7] comment telecharger un fichier ?

comment telecharger un fichier ? [Delphi 7] - Delphi/Pascal - Programmation

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
Reply

Marsh Posté le 22-11-2004 à 18:47:38   

Reply

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.
 
 
{Pour récupérer le source HTML dans un TMemo : }  
MyMemo.Text := MyWebBrowser.OleObject.Document.Body.InnerHTML;  
{Pour récupérer le texte du document dans un TMemo : }  
MyMemo.Text := MyWebBrowser.OleObject.Document.Body.InnerText;


 
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 ?


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 22-11-2004 à 23:52:49    

Citation :

c'est un peu prendre un bulldozer pour écraser une mouche


:gratgrat:
Proverbe belge je suppose.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 22-11-2004 à 23:54:08    

non, déformation d'une expression connue que j'ai oubliée :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

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


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

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.

Reply

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 ?


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

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 ? :o


Message édité par antp le 23-11-2004 à 18:02:15
Reply

Marsh Posté le 23-11-2004 à 18:45:48    

ben en fait j'ai fait :
 
var bonlig:tstringlist
begin
bonlig.text:=stringreplace ...


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 23-11-2004 à 18:45:48   

Reply

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 :o)
 


var
  bonlig: TStringList;
begin
  bonling := TStringList.Create;
  try
    bonlig.Text := StringReplace(...);
    // tu fais ce que tu veux de tes éléments
  finally
    FreeAndNil(bonling);
  end;
end;


Message édité par antp le 23-11-2004 à 18:53:20

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-11-2004 à 18:57:38    

ah ok !
j'essaye !


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed