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

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

Delphi , Компоненты и Классы , TMemo и TRichEdit

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

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

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

  Fur diesen Tip braucht man ein Memo1, eine ListBox1, 
  ein Label1 und einen 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 из компонента TMemo и отображает их в компоненте ListBox. Вот подробное описание кода:

Переменные

  • i: целочисленная переменная, используемая как счетчик цикла
  • p: целочисленная переменная, используемая для перебора символов в строке
  • s: строковая переменная, используемая для хранения извлеченного URL

Процедура Button1Click Эта процедура вызывается при клике на кнопку Button1. Она выполняет следующие задачи:

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

Замечания

  • Код использует функцию Pos для поиска строки "http://" и функцию Length для получения длины строки.
  • Код использует функцию Delete для удаления trailing символов из извлеченного URL.
  • Код не обрабатывает случаи, когда URL разбивается на несколько строк.

Альтернативное решение Чтобы улучшить этот код, можно было бы использовать регулярные выражения (например, компонент TRegEx) для извлечения URL из текста. Это сделало бы более простым обрабатывать случаи, когда URL разбивается на несколько строк или содержит специальные символы.

Например, можно было бы использовать регулярное выражение \bhttp://[^\s]+ для поиска любого строки, начинающейся с "http://" и продолжающейся до обнаружения пробела. Затем можно было бы использовать метод FindAll компонента TRegEx для нахождения всех совпадений в тексте и добавления их в компонент ListBox1.

В статье описывается способ поиска и добавления всех ссылок в формате 'http://' из TMemo-компонента в ListBox-компонент с помощью кнопки на форме.


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

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




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


:: Главная :: TMemo и TRichEdit ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 02:57:45/0.0033540725708008/0