Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1292 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [DELPHI] faire une regex

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[DELPHI] faire une regex

n°781704
stef_dober​mann
Personne n'est parfait ...
Posté le 29-06-2004 à 17:48:11  profilanswer
 

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...
mood
Publicité
Posté le 29-06-2004 à 17:48:11  profilanswer
 

n°781718
antp
Super Administrateur
Champion des excuses bidons
Posté le 29-06-2004 à 18:13:40  profilanswer
 

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
n°782069
stef_dober​mann
Personne n'est parfait ...
Posté le 30-06-2004 à 09:56:27  profilanswer
 

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


---------------
Tout à commencé par un rêve...
n°804819
alexistoul​otte
Al
Posté le 23-07-2004 à 17:35:28  profilanswer
 

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.   [...]

n°804820
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-07-2004 à 17:36:25  profilanswer
 

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
n°804824
alexistoul​otte
Al
Posté le 23-07-2004 à 17:39:24  profilanswer
 

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.

n°804832
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-07-2004 à 17:50:41  profilanswer
 

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
n°804836
alexistoul​otte
Al
Posté le 23-07-2004 à 18:00:22  profilanswer
 

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
n°804837
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-07-2004 à 18:04:48  profilanswer
 

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
n°804841
alexistoul​otte
Al
Posté le 23-07-2004 à 18:15:27  profilanswer
 

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...

mood
Publicité
Posté le 23-07-2004 à 18:15:27  profilanswer
 

n°804843
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-07-2004 à 18:18:07  profilanswer
 

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
n°804848
alexistoul​otte
Al
Posté le 23-07-2004 à 18:19:57  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [DELPHI] faire une regex

 

Sujets relatifs
Parser un fichier... regex ?[OLE] Delphi
[DELPHI] dbcombobox et liste complete des recordsComment connecter une base Access dans un projet Delphi??
[Delphi] Recuperer resultat d'une requete[Delphi 6] Pb : executer une procédure apres un temps d'inactivité
fonction pour connexion serveur + regexEOF sous delphi
[Delphi]application multifiches (MDI)Script de compil Delphi
Plus de sujets relatifs à : [DELPHI] faire une regex


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR