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