Delphi-PRAXiS
Seite 1 von 6  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi wie benutze ich regular expressions? (https://www.delphipraxis.net/134919-wie-benutze-ich-regular-expressions.html)

nimmersattXD 1. Jun 2009 16:33


wie benutze ich regular expressions?
 
Hallo an alle,
ich habe schon ausgiebig nach eine loesung zu meinem problem gesucht, aba leider nichts gefunden, deswegen ein neues thema...

ich habe bisher noch nie von regular expressions gehoert, soll aba damit mein programm schneller machen, was bis jetzt sehr langsam ist

ich moechte aus html und htmlm dateien alle genutzten bilder raussuchen (ob nun jpg, png oder anderer formate), mit den regular expressions soll das ja leicht sein, nur hab ich keine ahnung wie man die benutzt, sind das funktionen die in delphi7 schon drin sinn oder wie muss ich das verstehen?? (da ich vista hab geht meine delhpi hilfe leider auch nicht :( )

bitte helft mir!!

omata 1. Jun 2009 16:37

Re: wie benutze ich regular expressions?
 
klick

Beispiel: klick

Bernhard Geyer 1. Jun 2009 16:40

Re: wie benutze ich regular expressions?
 
Für deinen Zweck ist nicht RegEx die zu vervorzugende Technik sondern ein HTML-Parser. Hierzu läst du die datei im TWebBrowser und gehst über das Document-Property welches vom Type IHTMLDocument2 ist (MSHTML.pas) und dort findest du eine Images-Auflistung. Funktioniert auch wenn statt HTML XML + XSLT vorliegt. Einig beim MS Word-HTML versagt diese Technik teilweise das das MS Word HTML teilweis alles anderes als vernünftiges HTML ist.

toms 1. Jun 2009 16:55

Re: wie benutze ich regular expressions?
 
Ein HTML Parser ist z.B. IEParser von bsalsa.com
Damit kann man ganz einfach Bilder etc aus einer URL herausfiltern.

Delphi-Quellcode:
uses
 {...}IEParser, MSHTML_EWB;

procedure TForm1.IEParser1OnImage(Sender: TObject; Source: String;
  ImgElement: IHTMLImgElement; Element: TElementInfo);
begin
  Memo1.Lines.Add(ImgElement.href);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  IEParser: TIEParser;
begin
  IEParser := TIEParser.Create(Self);
  try
    IEParser.OnImage := IEParser1OnImage;
    IEParser.Parse('http://delphipraxis.net');
  finally
    IEParser.Free;
  end;
end;

nimmersattXD 2. Jun 2009 09:50

Re: wie benutze ich regular expressions?
 
hui also vielen dank schonmal fuer die hilfreichen sachen!

das einzige was ich vllt nich richtig erklaert hab, ich habe die html und htmlm dateien richtig in ordnern, also brauche ich gar nicht in inet gehen :)

ich hab mich jetzt auch auf der seite von omata die RegExpr unit geholt und mich weiter informiert (wikipedia) hab jetzt auch das prinzip verstanden! was mir jetzt noch kopf zerbrechen bringt ist, wie ich das mit den htmls realisiere, da es glaub ich unsinn waere den ganzen quelltext der htmls in das programm zu laden und das dann durchzusuchen!

hat jemand vielleicht dazu eine idee??

das waere unheimlich nett!!

ps: Ich habe im Grunde nur ein bisschen Schulwissen von Delphi, dass mit den HTML parser hab ich deshalb noch nicht richtig verstanden :coder2:

nimmersattXD 3. Jun 2009 14:29

Re: wie benutze ich regular expressions?
 
hat keiner einen tipp fuer mich?

nimmersattXD 4. Jun 2009 11:03

Re: wie benutze ich regular expressions?
 
mmh gut ich hab jetzt erstmal probeweise mit loadfromfile den html-code in eine strinlist geladen!

Diesen text durchsuche ich mit re.Expression := '(.+).(jpg|png|pdf|bmp|gif)';

Leider gibt das Programm mir dann den ganzen html text aus, ich moechte aber nur die bild-dateinamen! Was hab ich falsch gemacht?

nat 4. Jun 2009 11:40

Re: wie benutze ich regular expressions?
 
probier es doch ma damit
Code:
<img .*src="([^"]*)"
greedy sollte dabei allerdings aus!

nimmersattXD 4. Jun 2009 11:44

Re: wie benutze ich regular expressions?
 
ähm da gibt das programm mir gar nichts aus! Hat denn jemand ne idee warum meins alles ausgiebt? es muesste doch sonst richtig sein oder?

ich freu mich auch ueber neue varianten!

freak4fun 4. Jun 2009 11:47

Re: wie benutze ich regular expressions?
 
Zeig doch mal deine Version. Vielleicht kann man darauf aufbauen. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr.
Seite 1 von 6  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz