wycięcie z memo ostatnich wartości

0

Cześć. W jednym memo mam jakieś adresy, chcę je przenieść do drugiego memo ale tylko po ostatnim separatorze "/".

Pierwsze memo:

Newbie
http://www.google.pl/search
http://cartoony.pl/?p=3533
http://pl.wikipedia.org/wiki/Mozilla_Firefox

Wynik jaki powinien być w memo2:

Newbie?mode=submit
search
?p=3533
Mozilla_Firefox

Myślałem by w każdej linii sprawdzać czy jest dany znak czyli "/" za pomocą pos, i potem od tego znaku wyciąć tekst, tylko że tych znaków w adresie może być wiele a ja muszę wyciąć tekst od ostatniego :/

Proszę o pomoc

0

Użyj pętli, wycinasz dopóki jest coś do wycięcia.

0

Najprościej to chyba tak, bez zbędnego Delete i wielu Pos'ów czy Copy:

var
  S : string;
  I, J : integer;
begin
  Memo2.Clear;
  for I := 0 to Memo1.Lines.Count - 1 do
  begin
    S := Memo1.Lines[I];
    for J := Length(S) downto 1 do
    begin
      if S[J] = '/' then
      begin
        S := Copy(S, J + 1, MaxInt);
        Break;
      end;
    end;
    Memo2.Lines.Add(S);
  end;
end;

Natomiast dla większej ilości tekstu to polecam wyrażenia regularne i moduł z: http://regexpstudio.com - są dołaczone do niego przykłady oraz dokumentacja. A więcej informacji na temat RegExrów jest mnóstwo na google.

0

super działa, dziękuję!

1 użytkowników online, w tym zalogowanych: 0, gości: 1