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

Быстрая функция для разбивки строки на части (слова) в один цикл

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

 
Code:
type TDelim=set of Char;
       TArrayOfString=Array of String;
 
 
//*******************
//
// Разбивает строку с разделителями на части
// и возвращает массив частей
//
// fcToParts
//
 
function fcToParts(sString:String;tdDelim:TDelim):TArrayOfString
var iCounter,iBegin:Integer;
begin//fc
if length(sString)>0 then
begin
include(tdDelim,#0);iBegin:=1; SetLength(Result,0);
For iCounter:=1 to Length(sString)+1 do
 begin//for
   if (sString[iCounter] in tdDelim) then
    begin
     SetLength(Result,Length(Result)+1);
     Result[Length(Result)-1]:=Copy(sString,iBegin,iCounter-iBegin);
     iBegin:=iCounter+1;
    end;
end;//for
end;//if
end;//fc
 
 
Пример использования:
Code:
var
StrArr:TArrayOfString
 
StrArr:=fcToParts('строка1-строка2@строка3',['-','@']):
 
 
Автор ДЫМ
Взято с Vingrad.ru http://forum.vingrad.ru

Это функция Delphi под именем fcToParts, которая разбивает строку на части с помощью набора символов-разделителей. Функция принимает два параметра: sString, входную строку, которую нужно разбить, и tdDelim, набор символов-разделителей.

Вот шаг за шагом, как функция работает:

  1. Если входная строка не пуста, функция инициализирует пустой массив Result и устанавливает его длину в 0.
  2. Функция затем проходит по каждому символу в входной строке с помощью цикла For.
  3. Внутри цикла функция проверяет, является ли текущий символ частью набора символов-разделителей (tdDelim). Если это так, функция:
    • Устанавливает длину массива Result в ее текущую длину плюс 1.
    • Копирует подстроку от начала входной строки до текущего символа (исключительно) и присваивает ее последнему элементу массива Result.
    • Устанавливает начало следующей подстроки для копирования как текущий символ плюс 1.
  4. Функция возвращает массив Result, который теперь содержит разбитые части оригинальной входной строки.

Пример использования функции показывает, как вызывать ее с образцом ввода и разделителями символов, и присваивать результат переменной StrArr.

Вот альтернативное реализация с использованием встроенного метода String.Split Delphi:

function fcToParts(sString: String; tdDelim: TDelim): TArrayOfString;
begin
  Result := sString.Split(tdDelim);
end;

Эта реализация более компактна и эффективна, чем оригинальный код, но может не быть совместима с более старыми версиями Delphi, которые не поддерживают метод Split.

Функция fcToParts, написанная на языке Delphi, позволяет быстро разбить строку на части (слова) с помощью разделителей в один цикл.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-04-04 05:40:10/0.0055179595947266/0