магазин Лувр

Delphi: Как вынуть из строки несколько слов между "Чем-то" и "чем-то"

Когда мы работаем с текстовыми данными в Delphi, возникают ситуации, когда нам нужно извлечь определенные слова или фразы из строки между двумя заданными точками. Например, допустим у нас есть строка вида:

str := 'Delphi это мощный инструмент, с помощью которого разработчики могут создавать разнообразные программы, которые решают различные задачи.';

И мы хотим вынуть слова между словами "Delphi" и "различные" из данной строки.

В Delphi для решения этой задачи, мы можем использовать функции Pos и Copy.

Вот пример кода, который демонстрирует, как это сделать:

program ExtractWordsBetween;

uses
  SysUtils;

function ExtractWords(const AText, AStartWord, AEndWord: string): string;
var
  StartPos, EndPos: Integer;
begin
  StartPos := Pos(AStartWord, AText);

  if StartPos > 0 then
  begin
    EndPos := PosEx(AEndWord, AText, StartPos + Length(AStartWord));

    if EndPos > 0 then
      Result := Copy(AText, StartPos + Length(AStartWord), EndPos - StartPos - Length(AStartWord));
  end;
end;

var
  str: string;
  extractedWords: string;
begin
  str := 'Delphi это мощный инструмент, с помощью которого разработчики могут создавать разнообразные программы, которые решают различные задачи.';
  extractedWords := ExtractWords(str, 'Delphi', 'различные');

  if extractedWords <> '' then
    WriteLn(extractedWords)
  else
    WriteLn('Words not found.');
end.

Здесь мы определяем функцию ExtractWords, которая принимает три параметра: AText - исходная строка, AStartWord - начальное слово и AEndWord - конечное слово. Используя функцию Pos, мы находим позицию начального слова в строке. Если это слово найдено, то мы вызываем функцию PosEx, чтобы найти позицию конечного слова после начального слова. Затем, с использованием функции Copy, мы извлекаем подстроку между найденными позициями.

В главной программе мы определяем строку str и вызываем функцию ExtractWords, передавая в нее начальное слово "Delphi" и конечное слово "различные". Если извлеченные слова найдены, мы выводим их на экран, иначе выводим сообщение "Words not found."

Теперь, это всего лишь пример кода, и его можно модифицировать в соответствии с вашими конкретными требованиями.