![]() |
Text Parsen / Durchsuchen
Hallo,
Ich habe ein Problem und würde mich über Hilfe sehr freuen. In einem memo steht Quelltext folgendes Wiederholt sich :
XML-Code:
usw...
<td><span class="dodo">wert1</span></td>
mehr Quelltext <td><span class="dodo">wert2</span></td> mehr Quelltext <td><span class="dodo">wert3</span></td> Ich möchte jeweils den Wert rausfiltern. Wie kann ich vorgehen? LG Detrox |
Re: Text Parsen / Durchsuchen
Lade es in TWebBrowser und gehe über das HTML-Document (MSHTML.pas) und lass dir das Table-Objekt (IHTMLTable) geben.
Doku gibts bei ![]() |
Re: Text Parsen / Durchsuchen
Hallo und Willkommen in der DP :dp:,
Du könntest mit PosEx nach dem wiederkehrenden Teil suchen ("<td><span class="dodo">"). Dann ab der Fundstelle (plus Stringlänge) bis zur Position von "</span>" kopieren, damit dürftest Du Deinen Wert haben. Eine andere Möglichkeit wären evtl. reguläre Ausdrücke, aber damit kenne ich mich nicht aus. |
Re: Text Parsen / Durchsuchen
Den Webbrowser wollte ich eigentlich vermeiden.
ich lade die html Datei oer idhttp von den indy Komponenten. DeddyH Hi :) könntest du einen Codeansatz posten mit Beschreibug würde mich freuen LG Detrox |
Re: Text Parsen / Durchsuchen
Wenn er einen Wert hat soll er ja weiter runter rutschen und den nächsten Suchen :)
|
Re: Text Parsen / Durchsuchen
Deshalb ja PosEx ;)
|
Re: Text Parsen / Durchsuchen
Zitat:
|
Re: Text Parsen / Durchsuchen
Ich hab jetzt mal im Forum gesucht, ich bekomme es als Anfänger ja hin das erste zu finden und dazwischen auszugeben aber das er danach mit den andern weitermach bekomm ich nich hin, hier mal mein Code:
Delphi-Quellcode:
LGprocedure TForm1.Button1Click(Sender: TObject); var StringList:TStringList; posi:integer; s:string; begin StringList := TStringList.Create; try StringList.Text := Memo1.text ; s:=StringList.Text; delete(s, 1, pos('<td><span class="dodo">', s) + length('<td><span class="dodo">') - 1); Memo2.Text := copy(s, 1, pos('</span></td>', s) - 1); finally StringList.free; end; Detrox |
Re: Text Parsen / Durchsuchen
Und so?
Delphi-Quellcode:
Aber wie Bernhard schon meinte, Kommentare und dergleichen werden dabei nicht berücksichtigt.
function FilterText(const Source, TagStart, TagEnd: string): string;
var StartPos, EndPos: integer; Buffer: TStringList; begin Buffer := TStringList.Create; try StartPos := PosEx(TagStart,Source); while StartPos > 0 do begin inc(StartPos,Length(TagStart)); EndPos := PosEx(TagEnd,Source,StartPos); Buffer.Add(Copy(Source,StartPos,EndPos - StartPos)); StartPos := PosEx(TagStart,Source,EndPos + Length(TagEnd)); end; Result := Buffer.Text; finally Buffer.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Text := FilterText(Memo1.Text,'<span class="dodo">','</span>'); end; |
Re: Text Parsen / Durchsuchen
Toll...
Riesen Dank das funktioniert Super, wenn ich jetzt noch jeden Wert in einer Listbox hätte wäre das die Krönung, aber ich möchte ja nicht unverschämt werden :stupid: LG Detrox |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz