[DELPHI] faire une regex

faire une regex [DELPHI] - Delphi/Pascal - Programmation

Marsh Posté le 29-06-2004 à 17:48:11    

Bonjour,
 
j'utilise idHTTP pour récupérer une page que j'ai fait sur Internet, et je voudrais ne récupérer que le texte (donc enlever tous les codes HTML) avait vous une solution à ce problème :??:
 
je ne voudrais pas passer par un autre composant si possible comme WebBrowser qui lui le fait mais la je n'arrrive pas à récupérer le résultat ailleur que dans un RichEdit alors que je le voudrais dans une variable !
 
Merci d'avance !


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 29-06-2004 à 17:48:11   

Reply

Marsh Posté le 29-06-2004 à 18:13:40    

Code :
  1. function HTMLRemoveTags(const Value: string): string;
  2. var
  3.   i, Max: Integer;
  4. begin
  5.   result := '';
  6.   Max := Length(Value);
  7.   i := 1;
  8.   while i <= Max do
  9.   begin
  10.     if Value[i] = '<' then
  11.     begin
  12.       repeat
  13.         inc(i);
  14.       until (i > Max) or (Value[i-1] = '>');
  15.     end else
  16.     begin
  17.       result := result + Value[i];
  18.       inc(i);
  19.     end;
  20.   end;
  21. end;


 
(pour faire propre il faudrait aussi rajouter la détection des scripts et feuilles de style)
 
sinon il y a des composants gratuits gérant les expressions régulières, tu peux toujours aller faire un tour sur www.torry.net


Message édité par antp le 29-06-2004 à 18:14:21

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

Marsh Posté le 30-06-2004 à 09:56:27    

Merci beaucoup, c'est déjà un départ !


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 23-07-2004 à 17:35:28    

antp a écrit :


(pour faire propre il faudrait aussi rajouter la détection des scripts et feuilles de style)


 

Code :
  1. [...]
  2.   i := Pos('<body>', Value) + 6;
  3.   [...]

Reply

Marsh Posté le 23-07-2004 à 17:36:25    

Il peut y avoir des scripts n'importe où sur la page [:itm]
(et des commentaires aussi en fait)
 
Puis body peut-être écrit en majuscule, et il peut y avoir des attributs dans body...


Message édité par antp le 23-07-2004 à 17:36:58

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

Marsh Posté le 23-07-2004 à 17:39:24    

antp a écrit :

Il peut y avoir des scripts n'importe où sur la page [:itm]
(et des commentaires aussi en fait)
 
Puis body peut-être écrit en majuscule, et il peut y avoir des attributs dans body...


 
Ce n'etait qu'une suggestion, je n'ai meme pas tester le truc. Mais au final le probleme est beaucoup plus compliqué. Le mieux serait en fait le composant XMLDocument.

Reply

Marsh Posté le 23-07-2004 à 17:50:41    

XMLDocument il va avoir du mal avec une page HTML :p
Si on a un document XML propre c'est plus simple, même en le faisant "à la main" comme ici.


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

Marsh Posté le 23-07-2004 à 18:00:22    

antp a écrit :

XMLDocument il va avoir du mal avec une page HTML :p
Si on a un document XML propre c'est plus simple, même en le faisant "à la main" comme ici.


Je vois mal pourquoi il aurait du mal avec un document HTML. Un document HTML ne serait-ce pas d'ailleurs également un document XML...


Message édité par alexistoulotte le 23-07-2004 à 18:00:56
Reply

Marsh Posté le 23-07-2004 à 18:04:48    

non, pas du tout
 
ceci par exemple :
http://antp.be/temp/html4open.html
c'est un document HTML parfaitement valide
mais il y aurait des dizaines d'erreurs pour un parseur XML, car plein de tags sont ouverts.
 
Puis peu de pages HTML sont conformes aux specs de toute façon.


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

Marsh Posté le 23-07-2004 à 18:15:27    

antp a écrit :

non, pas du tout
 
ceci par exemple :
http://antp.be/temp/html4open.html
c'est un document HTML parfaitement valide
mais il y aurait des dizaines d'erreurs pour un parseur XML, car plein de tags sont ouverts.
 
Puis peu de pages HTML sont conformes aux specs de toute façon.


Je suis d'accord, c'est vrai que les specs du HTML acceptes ton document (d'ailleurs, w3.org le valide). Mais bon, il faut avouer que le HTML va ceder sa place au XHTML. Pour ce qui est des specs, je trouve ca dommage qu'autant de sites, surtout des sites avec une frequence de visite enorme ne fasses pas un minimum attention. Quand on voit que la page d'accueil de microsoft.com n'a meme pas de DOCTYPE... Mais bon, oui je sais, c'est microsoft...

Reply

Marsh Posté le 23-07-2004 à 18:15:27   

Reply

Marsh Posté le 23-07-2004 à 18:18:07    

XHTML c'est du XML, mais HTML ne l'est pas et n'a jamais eu ce but. c'est du SGML (XML étant aussi du SGML il me semble).


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

Marsh Posté le 23-07-2004 à 18:19:57    

antp a écrit :

XHTML c'est du XML, mais HTML ne l'est pas et n'a jamais eu ce but. c'est du SGML (XML étant aussi du SGML il me semble).


Oui le XML est du SGML

Reply

Sujets relatifs:

Leave a Replay

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