Sources
Delphi Russian Knowledge Base
DRKB - база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Найти все ссылки в TMemo

01.01.2007

{ 
  For this tip you need Memo1, ListBox1, Label1, Button1. 

}

procedure TForm1.Button1Click(Sender: TObject);
var
   i, p: Integer;
  s: string;
begin
  ListBox1.Clear;
  for i := 0 to Memo1.Lines.Count - 1 do
  begin
    if Pos('http://', Memo1.Lines.Strings[i]) > 0 then
    begin
      s := '';
      {If the current line contains a "http://", read on until a space is found 

      Die aktuelle Zeile wird nach der Zeichenfolge "http://" durchsucht 
      und bei Erfolg ab der gefundenen Position ausgelesen, bis ein 
      Leerzeichen auftritt...}

      for p := Pos('http://', Memo1.Lines.Strings[i]) to
        Length(Memo1.Lines.Strings[i]) do
        if Memo1.Lines.Strings[i][p] <> ' ' then
          s := s + Memo1.Lines.Strings[i][p]
      else
        break;

       {Remove some characters if address doesn't end with a space 

      Falls die gefundene Adresse nicht mit einem Leerzeichen abschlie?t, 
      werden hier noch anhangende Textzeichen entfernt...}

      while Pos(s[Length(s)], '..;!")]}?''>') > 0 do
        Delete(s, Length(s), 1);
      // Add the Address to the list... 
     //Gefundene Adresse in die Liste aufnehmen... 
     ListBox1.Items.Add(s);
    end;
  end;

  // Show the number of Addresses in Label1 
  // Die Zahl der gefundenen Adressen in Label1 anzeigen... 

  if ListBox1.Items.Count > 0 then
     label1.Caption := IntToStr(ListBox1.Items.Count) +
       ' Adresse(n) gefunden.'
   else
     label1.Caption := 'Keine Adresse gefunden.';
 end;
Previous page:
Как сделать окошко подсказки в редакторе как Delphi по Ctrl-J
Top:
DRKB
Next page:
Вставка текста