Einzelnen Beitrag anzeigen

kcx

Registriert seit: 19. Feb 2008
44 Beiträge
 
#5

Re: Pos / Zeichenketten herausfinden / Die Pure Verzweiflung

  Alt 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.
  Mit Zitat antworten Zitat