Einzelnen Beitrag anzeigen

sexmagic

Registriert seit: 16. Sep 2006
56 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Textteile aus HTML Code extrahieren

  Alt 9. Mär 2007, 12:41
Also ich hab das vor kurzem auch requested, leider hab ich keine wirkliche Hilfe erhalten, habe nach langem dann selbst einen Weg gefunden.

Ich habe es mit der Komponente TPerlRegex gemacht, diese ist kostenlos und bekommst du hier: TPerlRegEx

Mit dieser Komponente kannst du dir einen passenden reg. ausdruck erstellen und somit alles rausparsen.

Hier ein Beispiel wie ichs gemacht habe:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  imgpos: integer;
begin
  Memo1.Clear;
  Memo2.Clear;

  i := 0;
  Memo1.Lines.LoadFromFile(Edit1.Text);
  Memo1.Text := StringReplace(Memo1.Text, #13#10, '', [rfReplaceAll]);

  for i := 0 to Memo1.Lines.Count - 1 do
  begin
    PerlRegEx1.Subject := Memo1.Lines[i];
    PerlRegEx1.RegEx := 'valign="top".*</td>';
    if PerlRegEx1.Match then
      Memo2.Lines.Add( Trim(PerlRegEx1.MatchedExpression) );
      while PerlRegEx1.MatchAgain do
       begin
         Memo2.Lines.Add( Trim(PerlRegEx1.MatchedExpression) );
       end;
  end;

  Memo2.Text := StringReplace(Memo2.Text, 'valign="top">', '', [rfReplaceAll]);
  Memo2.Text := StringReplace(Memo2.Text, '</td>', '', [rfReplaceAll]);
  Memo2.Text := StringReplace(Memo2.Text, '</span>', '', [rfReplaceAll]);
  Memo2.Text := StringReplace(Memo2.Text, '<hr>', '', [rfReplaceAll]);
  Memo2.Text := StringReplace(Memo2.Text, '
', '', [rfReplaceAll]);

  for i := Memo2.Lines.Count - 1 downto 0 do
  begin
    if Trim(Memo2.Lines[i]) = 'then
      Memo2.Lines.Delete(i);
    Memo2.Lines[i] := Trim(Memo2.Lines[i]);
  end;
 end;
Mann könnte sagen, Schuster bleib bei deinen Leisten aber ich bin froh das ichs überhaupt hinbekommen habe.

Eine andere Möglichkeit wäre du besorgst dir eine HTML Parser Komponente, aber da musst du erst eine finden die Kostenlos ist und das kann was du willst, ich habe die Hier ausprobiert und finde die funzt ganz gut DIHtmlParser

Ich hoffe das hilft dir weiter!

greez
  Mit Zitat antworten Zitat