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

Выбрать слово из строки по номеру (2)

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

Code:
//Функция возвращающая N-ое слово в строке
//Если N=0, то функция возвращает подстоку начиная с первого разделителя
function GetWord(str:string;n:word;sep:char):string;
var i,space,l,j:integer;
   buf:string;
begin
l:=length(str);
if n=0 then begin //особый параметр
             j:=pos(GetWord(str,2,sep),str);
             GetWord:=copy(str,j,l-j+1);
             exit
            end;
space:=0;
i:=0;
while (space<>(n-1))and(i<=l) do
begin
  i:=i+1;
 if str[i]=sep then space:=space+1
end;
i:=i+1;
buf:='';
while (i<=l)and(str[i]<>sep) do
begin
  buf:=buf+str[i];
  i:=i+1
end;
GetWord:=buf;
end;
 
Автор: TP@MB@Y
Взято с Vingrad.ru http://forum.vingrad.ru

Привет! Вот перевод текста на русский язык:

Код - функция Delphi, которая извлекает N-ое слово из заданной строки, где каждое слово разделено указанным символом (например, пробелом, запятой и т.д.). Вот шаг за шагом, что код делает:

  1. Функция GetWord принимает три параметра: str (входная строка), n (индекс желаемого слова, начиная с 0) и sep (символ разделителя).
  2. Если n установлен в 0, функция возвращает подстроку, начинающуюся от первого вхождения символа разделителя.
  3. Функция инициализирует несколько переменных: l для длины входной строки, space для хранения количества встреченных символов разделителя и i как индекс для перебора строки.
  4. В основном цикле код увеличивает i, пока не будет достигнуто либо:
    • Желаемое слово найдено (т.е. space равно n-1). В этом случае функция переходит в новый цикл, чтобы извлечь N-ое слово из входной строки.
  5. Когда N-ое слово идентифицировано, функция создает пустой буфер (buf) и перебирает оставшиеся символы входной строки, пока не будет встречен символ разделителя снова.
  6. Извлеченное слово присваивается переменной GetWord, которая возвращается как результат.

Вот шаг за шагом пример:

  • Вход: "Hello, World!", sep = ','
  • n = 1
    • Найдите первый запятый (индекс 7)
    • Верните подстроку от индекса 8 ("World!") Если вы хотите использовать эту функцию в вашем коде Delphi, просто вызовите ее с параметрами, которые вам нужны:
var
  str: string;
begin
  str := 'Hello, World!';
  Result := GetWord(str, 1, ','); // возвращает "World!"
end.

Обратите внимание, что это реализация чувствительна к регистру и предполагает, что каждое слово разделено одним символом разделителя. Если вам нужно болееadvanced функциональность (например, обработка нескольких символов разделителя, игнорирование пробелов и т.д.), рассмотрите возможность изменения или замены существующей функции на более robust решение.

Функция GetWord возвращает N-ое слово в строке, где 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 02:40:40/0.022562980651855/1