Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Фильтровать все ссылки в TMemo

Delphi , Интернет и Сети , URL

Фильтровать все ссылки в TMemo

Сын к папе-интернетчику подходит:
- Папа, а адрес пишется с одной "с", или с двумя?
- С тремя w, сынок.


// 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;

Программный код на Delphi, предназначенный для извлечения и отображения всех URL (ссылок http) из поля memo в графическом пользовательском интерфейсе приложении.

Процедура Button1Click вызывается при клике кнопки, связанной с этим событием.

  1. Она очищает списокbox, вызывая его метод Clear.
  2. Затем она проходит по каждой строке текста в поле memo с помощью цикла for.
  3. Для каждой строки она проверяет, содержит ли строка строку "http://". Если это так, она извлекает URL из этой строки и добавляет его в списокbox.
  4. Для извлечения URL она читает символы с начала строки до обнаружения символа пробела.
  5. Затем она удаляет любые trailing символы (например, знаки вопроса или точки) из извлеченного URL.
  6. Наконец, она обновляет надпись label с количеством найденных URL.

Альтернативное решение с использованием регулярных выражений:

uses ..., RegExpr;

procedure TForm1.Button1Click(Sender: TObject);
var
  re: TRegExpr;
begin
  ListBox1.Clear;
  re := TRegExpr.Create('http://[^\s]+');
  try
    for i := 0 to Memo1.Lines.Count - 1 do begin
      if re.Match(Memo1.Lines.Strings[i]) then begin
        ListBox1.Items.Add(re.Match);
      end;
    end;
  finally
    re.Free;
  end;

  if ListBox1.Items.Count > 0 then
    Label1.Caption := IntToStr(ListBox1.Items.Count) + ' Adresse(n) gefunden.'
  else
    Label1.Caption := 'Keine Adresse gefunden.';
end;

В этом коде мы используем компонент TRegExpr для создания регулярного выражения, которое соответствует URL. Паттерн регулярного выражения - это 'http://[^\s]+', где [^\s]+ означает один или более символов, которые не являются пробелами. Затем мы проходим по каждой строке текста в поле memo и вызываем метод Match объекта регулярного выражения, передавая в него каждую строку как аргумент. Если найдено совпадение, мы добавляем его в списокbox. Наконец, мы обновляем надпись label с количеством найденных URL.

Статья описывает программный код на языке Pascal, который позволяет фильтровать и извлекать все ссылки в текстовом редакторе TMemo.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: URL ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:55:35/0.0054621696472168/1