Einzelnen Beitrag anzeigen

NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#12

Re: Interneteintrag in Listview auflisten

  Alt 12. Okt 2009, 09:21
So nach einer längen Beschäftigung mit diesem Problem hab ich nun folgende Lösung gefunden:
Delphi-Quellcode:
var ergebnis,s,Ende,Anfang,Eintrag : String;
    Pos0,Pos1,Count,ZeileIndex : Integer;
begin
s := Edit1.Text; //Dein Text ist halt ein zusammenhängender String ohne Leerzeichen und Zeilenumbruch...ich hoffe dass ich das richtig verstanden hab
Anfang := '<td>[B][In den Korb][/B]</td>';
Ende := '</table>';
Pos0 := Pos(Anfang, s);
Pos1 := Pos(Ende, s);
Ergebnis := Copy(s, Pos0 + length(Anfang), Pos1-Pos0);
Ergebnis := Stringreplace(ergebnis, '<div>', '', [rfReplaceAll]);
Ergebnis := Stringreplace(ergebnis, '</div>', '', [rfReplaceAll]);
Ergebnis := Stringreplace(ergebnis, '<center>', '', [rfReplaceAll]);
Ergebnis := Stringreplace(ergebnis, '</center>', '', [rfReplaceAll]);
Ergebnis := Stringreplace(ergebnis, '<td>', '', [rfReplaceAll]);
Ergebnis := Stringreplace(ergebnis, '</td>', ' ', [rfReplaceAll]);
Ergebnis := Stringreplace(ergebnis, '<div style=', '', [rfReplaceAll]);
Ergebnis := Stringreplace(ergebnis, '<tr>', '', [rfReplaceAll]);
Ergebnis := Stringreplace(ergebnis, '</tr>', '', [rfReplaceAll]);
Ergebnis := Stringreplace(ergebnis, '"color: limeGreen;">', '', [rfReplaceAll]);
Ergebnis := Stringreplace(ergebnis, '</table>', '', [rfReplaceAll]);
Pos0 := 1;
Count := 1;
ZeileIndex := 0;
while Pos0 > 0 do
begin
Pos1 := PosEx(' ', Ergebnis,Pos0);
Eintrag := Copy(Ergebnis, Pos0, Pos1-Pos0);
if (Count = 1) and (Eintrag > '') then
with ListView1.Items.Add do
Caption := Eintrag
else
ListView1.Items[ZeileIndex].SubItems.Add(Eintrag);
if Count = 3 then
ZeileIndex := ZeileIndex + 1;
if Count = 3 then
Count := 1
else
Count := Count + 1;

Pos0 := PosEx(' ', Ergebnis ,Pos1)+1;
if Pos0 = Length(Ergebnis)+1 then
Pos0 := 0;
end;

end;
Der HTTP-Code hab ich für nene Test erweitert...ich hoffe das es deinem Schema entspricht:

Code:
<table><td>[B][Artikelname][/B]</td><td>[B][Preis][/B]</td><td>[B][Verfügbarkeit][/B]</td><td>[B][In den Korb][/B]</td><tr><td>Glückskeks</td><td><center>0.2</center></td><td><center><div style="color: limeGreen;">Verfügbar</div></center></td></tr><tr><div><center>Gertränke<center></div></td><div><center>0.5</center></div></td><td><div style="color: limeGreen;">Verfügbar</div></td></tr></table>
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat