Registriert seit: 19. Feb 2008
44 Beiträge
|
Re: Pos / Zeichenketten herausfinden / Die Pure Verzweiflung
30. Mär 2008, 01:41
Kurz hingeklatscht:
Delphi-Quellcode:
uses
StrUtils;
procedure TForm1.Button1Click(Sender: TObject);
function ExtractBetween(const s, s1, s2: String): String;
var
iPos, iPosLeft, iPosRight: Integer;
begin
Result := '';
iPos := Pos(s1, s);
if iPos > 0 then
begin
iPosLeft := iPos + Length(s1);
iPos := PosEx(s2, s, Succ(iPosLeft));
if iPos > 0 then
begin
iPosRight := iPos;
Result := Copy(s, iPosLeft, iPosRight - iPosLeft);
end;
end;
end;
var
iPos, iPosLeft, iPosRight, iPosTemp: Integer;
sTemp, sLink, sID, sVorNachname, sVorname, sNachname: String;
begin
iPos := 0;
repeat
iPos := PosEx('<div class="Image">', Memo1.Text, Succ(iPos));
if iPos > 0 then
begin
iPosLeft := iPos + 19;
iPos := PosEx('</div>', Memo1.Text, Succ(iPosLeft));
if iPos > 0 then
begin
iPosRight := iPos;
sTemp := Copy(Memo1.Text, iPosLeft, iPosRight - iPosLeft);
sLink := ExtractBetween(sTemp, '<a href="', '">');
iPosTemp := Pos('Benutzer/', sLink);
if iPosTemp > 0 then
sID := Copy(sLink, iPosTemp + 9, MAXINT)
else
sID := '';
//hier sID verarbeiten
sVorNachname := ExtractBetween(sTemp, 'alt="', '"');
iPosTemp := Pos(' ', sVorNachname);
if iPosTemp > 0 then
begin
sVorname := Copy(sVorNachname, 1, Pred(iPosTemp));
sNachname := Copy(sVorNachname, Succ(iPosTemp), MAXINT);
end
else
begin
sVorname := '';
sNachname := '';
end;
//hier Namen verarbeiten
end;
end;
until iPos = 0;
end;
kann man natürlich noch verbessern.
|
|
Zitat
|