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

Получение N-го слова из строки

Delphi , Синтаксис , Текст и Строки



Автор: Gua
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> 
Зависимости: System
Автор:       Gua, fbsdd@ukr.net, ICQ:141585495, Simferopol
Copyright:   Gua
Дата:        02 мая 2002 г.
***************************************************** }

{
  Str: Строка
  Smb: Разгранечительный символ
  WordNmbr: Номер нужного сова
}

function GetWord(Str, Smb: string; WordNmbr: Byte): string;
var
  SWord: string;
  StrLen, N: Byte;
begin

  StrLen := SizeOf(Str);
  N := 1;

  while ((WordNmbr >= N) and (StrLen <> 0)) do
  begin
    StrLen := Pos(Smb, str);
    if StrLen <> 0 then
    begin
      SWord := Copy(Str, 1, StrLen - 1);
      Delete(Str, 1, StrLen);
      Inc(N);
    end
    else
      SWord := Str;
  end;

  if WordNmbr <= N then
    Result := SWord
  else
    Result := '';
end;

Пример использования:

GetWord('Здесь ваш текст',' ',3); // Возвращает -> 'текст'

Программная функция на языке Delphi для извлечения N-ого слова из строки!

Вот разбивка кода:

Подпись функции

function GetWord(Str, Smb: string; WordNmbr: Byte): string;

Функция принимает три параметра:

  • Str: Входная строка.
  • Smb: Символ-разделитель (например, пробел, запятая и т.д.).
  • WordNmbr: Целое число, представляющее номер слова для извлечения (индексация с 1).

Объявления переменных

var
  SWord: string;
  StrLen, N: Byte;

Мы объявляем четыре переменные:

  • SWord: Переменная типа строка для хранения извлеченного слова.
  • StrLen: Байтовая переменная для хранения длины входной строки.
  • N: Байтовая переменная для счетчика количества найденных слов.

Основной логик

begin
  StrLen := SizeOf(Str); // Получаем длину входной строки
  N := 1; // Инициализируем счетчик слова

  while (WordNmbr >= N) and (StrLen <> 0) do // Пока не найдено требуемое слово или не достигнут конец строки
  begin
    StrLen := Pos(Smb, str); // Нахожем позицию символа-разделителя в входной строке
    if StrLen <> 0 then // Если символ-разделитель найден
    begin
      SWord := Copy(Str, 1, StrLen - 1); // Извлекаем слово до символа-разделителя
      Delete(Str, 1, StrLen); // Удаляем символ-разделитель и извлеченное слово из входной строки
      Inc(N); // Увеличиваем счетчик слова
    end
    else // Если не найдено более символов-разделителей (т.е., достигнут конец строки)
      SWord := Str; // Присваиваем оставшуюся часть строки `SWord`

  end;

Основной логик заключается в цикле, который повторяется до тех пор, пока не найдено требуемое слово или не достигнут конец входной строки. В цикле мы: 1. Нахожем позицию символа-разделителя в входной строке с помощью Pos. 2. Если символ-разделитель найден: * Извлекаем слово до символа-разделителя с помощью Copy. * Удаляем символ-разделитель и извлеченное слово из входной строки с помощью Delete. * Увеличиваем счетчик слова. 3. Если не найдено более символов-разделителей (т.е., достигнут конец строки), присваиваем оставшуюся часть строки SWord.

Выражение возвращения

if WordNmbr <= N then
  Result := SWord
else
  Result := '';

Если требуемое слово найдено, возвращаем его значение. В противном случае возвращаем пустую строку.

Пример использования

GetWord('Здесь ваш текст','  ',3); // Возвращает -> 'текст'

В этом примере мы вызываем GetWord с входной строкой 'Здесь ваш текст', символом-разделителем пробел (' '), и номером слова 3. Функция возвращает третье слово, которое является 'текст'.

В целом, эта функция работает, повторяясь через входную строку, извлекая слова на основе символа-разделителя, и учитывая счетчик слова. Это простое но эффективное решение для извлечения конкретных слов из строки в Delphi!

В статье описывается функция на языке Delphi, которая позволяет извлечь N-е слово из строки, разделяющейся разгранечительным символом.


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

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




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


:: Главная :: Текст и Строки ::


реклама


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

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