Сын к папе-интернетчику подходит:
- Папа, а адрес пишется с одной "с", или с двумя?
- С тремя 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 dobeginif Pos('http://', Memo1.Lines.Strings[i]) > 0 thenbegin
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]) doif 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 вызывается при клике кнопки, связанной с этим событием.
Она очищает списокbox, вызывая его метод Clear.
Затем она проходит по каждой строке текста в поле memo с помощью цикла for.
Для каждой строки она проверяет, содержит ли строка строку "http://". Если это так, она извлекает URL из этой строки и добавляет его в списокbox.
Для извлечения URL она читает символы с начала строки до обнаружения символа пробела.
Затем она удаляет любые trailing символы (например, знаки вопроса или точки) из извлеченного URL.
Наконец, она обновляет надпись label с количеством найденных URL.
Альтернативное решение с использованием регулярных выражений:
В этом коде мы используем компонент TRegExpr для создания регулярного выражения, которое соответствует URL. Паттерн регулярного выражения - это 'http://[^\s]+', где [^\s]+ означает один или более символов, которые не являются пробелами. Затем мы проходим по каждой строке текста в поле memo и вызываем метод Match объекта регулярного выражения, передавая в него каждую строку как аргумент. Если найдено совпадение, мы добавляем его в списокbox. Наконец, мы обновляем надпись label с количеством найденных URL.
Статья описывает программный код на языке Pascal, который позволяет фильтровать и извлекать все ссылки в текстовом редакторе TMemo.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.