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

Отображение сообщения при отсутствии упоминания "Olive Oil" в списке строк на Delphi

Delphi , Базы данных , Поиск

Вопрос, поставленный пользователем, заключается в необходимости отображения сообщения в том случае, если в списке строк, представленных в компоненте Memo, отсутствует упоминание фразы "Olive Oil". Для решения этой задачи необходимо изменить логику обработки строк, чтобы после прохождения всего списка строк можно было определить, что упоминание "Olive Oil" отсутствует, и на основе этого показать соответствующее сообщение.

Решение проблемы

Для начала, рассмотрим исходный код процедуры, которая должна обрабатывать строки Memo:

procedure TForm1.bFAT1Click(sender: TObject);
var
  FAT: Integer;
begin
  for FAT := 0 to memo1.lines.Count - 1 do
  begin
    if AnsiContainsStr(memo1.lines[FAT], 'Olive Oil') then
    begin
      ShowMessage('Olive Oil exist!');
      // Выход из цикла, так как фраза найдена
      Exit;
    end;
  end;
  // Здесь мы оказываемся, если ни одна строка не содержит 'Olive Oil' (из-за Exit)
  ShowMessage('Olive Oil does not exist!');
end;

В данном коде, как только строка с упоминанием "Olive Oil" найдена, выполняется выход из цикла с помощью инструкции Exit. Если цикл завершается без выполнения Exit, это означает, что упоминание отсутствует, и отображается соответствующее сообщение.

Альтернативный подход

Для улучшения читаемости и возможности повторного использования кода, можно определить вспомогательные функции. Например, функция IndexOfLineContaining для поиска строки с заданным текстом и функция HasLineContaining для проверки наличия такой строки:

function IndexOfLineContaining(const Text: String; Lines: TStrings): Integer;
begin
  for Result := 0 to Lines.Count - 1 do
    if AnsiContainsStr(Lines[Result], Text) then
      Exit(Result);
  Result := -1;
end;

function HasLineContaining(const Text: String; Lines: TStrings): Boolean;
begin
  Result := (IndexOfLineContaining(Text, Lines) > -1);
end;

Теперь, чтобы отобразить сообщение, достаточно использовать функцию HasLineContaining:

if HasLineContaining('Olive Oil', Memo1.Lines) then
  ShowMessage('Olive Oil exist!')
else
  ShowMessage('Olive Oil does not exist!');

Заключение

В данной статье был рассмотрен пример реализации на языке Object Pascal (Delphi), который позволяет отображать сообщение в зависимости от наличия или отсутствия заданной фразы в списке строк. Представлены два варианта решения: базовый и с использованием вспомогательных функций для улучшения структуры кода.

Создано по материалам из источника по ссылке.

Ответ на вопрос о реализации отображения сообщения при отсутствии упоминания 'Olive Oil' в списке строк компонента `Memo` в Delphi.


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

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




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


:: Главная :: Поиск ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-22 08:39:55/0.003324031829834/0