Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Fragen zu Copy?


bruce185 - So 01.03.09 18:26
Titel: Fragen zu Copy?
Hallo,
ich möchte zB. nach 2</a> suchen, wenn das vorhanden ist, dann möchte ich Test ins Memo schreiben.
<a href="Test">2</a>

Ich könnte auch einfach nach " suchen und mit PosEx ab dieser Position+1 nach dem 2ten " suchen und den Inhalt dann rauskopieren.
Das funktioniert aber so nicht, da ich mehrere solche Links habe, beispiel:
<a href="Test">2</a><a href="Test">3</a><a href="Test">4</a>

Ist es vieleicht möglich PosEx umzuschreiben, das es nach hinten Prüft statt vorwärts?

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function PosEx(const Substr: stringconst S: string; Offset: Integer): Integer;
begin
  if Offset <= 0 then Result := 0 
  else
    Result := Pos(Substr, Copy(S, Offset, Length(S)));

  if Result <> 0 then
    Result := Result + Offset - 1;
end;


Ich habe mir überlegt statt

Delphi-Quelltext
1:
Result := Result + Offset - 1;                    


gleich

Delphi-Quelltext
1:
Result := Result - Offset + 1;                    


zu schreiben.

Würde das funktionieren oder muss man da noch was umschreiben?

Danke euch schonmal für die Hilfe.

MfG


jaenicke - So 01.03.09 18:35

Nimm doch eine Schleife und geh selbst durch den Text. Von der gefundenen Position aus suchst du rückwärts die beiden " usw.


BenBE - So 01.03.09 18:38

Ich würde eher den Ansatz fahren, dass Du erstmal alle Links raussuchst und dann diese einzelnen Links noch einmal analysierst. Damit musst Du im ersten Schritt nur die Links verarbeiten und kannst dann im zweiten Schritt eine Detail-Bearbeitung deiner einzelnen Strings machen.

Hochgegriffen würde sowas auch mit einem XML-Parser gehen, wenn die Quellseite valid ist.


bruce185 - So 01.03.09 20:18

Ich hab das anders gelöst.

Trotzdem, vielen Dank.

MfG


Marc. - So 01.03.09 20:25

user profile iconbruce185 hat folgendes geschrieben Zum zitierten Posting springen:
Ich hab das anders gelöst.

Und wie? :)


bruce185 - So 01.03.09 23:37

user profile iconMarc. hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconbruce185 hat folgendes geschrieben Zum zitierten Posting springen:
Ich hab das anders gelöst.

Und wie? :)


Ich habe das ohne PosEx gemacht.
Bei den Links stehen mitten drin immer eine andere Zahl, diese Prüfe ich und Kopiere dann diesen Inhalt raus.

MfG