Расщепление строки с разделителями на массив строкDelphi , Синтаксис , Текст и СтрокиРасщепление строки с разделителями на массив строк
Автор: ALL.exe { **** UBPFD *********** by delphibase.endimus.com **** >> Расщепление строки с разделителями на массив строк Зависимости: System Автор: ALL.exe, Alexe@054.pfr.ru, ICQ:161857370, Kostroma Copyright: ALL.exe Дата: 13 марта 2003 г. ***************************************************** } type TSepArr = array of string; // массив "записей" TSepRec = record Rec: TSepArr; // сами "записи" Max: integer; // количество полученных "записей" end; function GetSeparatorRec(const sRows: string; cSeparator: char = ','): TSepRec; var cCol: array of integer; i, j: integer; bSTRING: boolean; begin Result.Max := -1; j := 1; bSTRING := False; SetLength(cCol, j); cCol[0] := 0; for i := 1 to Length(sRows) do begin if sRows[i] = '"' then bSTRING := not bSTRING; if (sRows[i] = cSeparator) and (not bSTRING) then begin j := j + 1; SetLength(cCol, j); cCol[j - 1] := i; end; end; j := j + 1; SetLength(cCol, j); cCol[j - 1] := Length(sRows) + 1; Result.Max := High(cCol); if Result.Max > 0 then begin SetLength(Result.Rec, Result.Max + 1); Result.Rec[0] := IntToStr(Result.Max); for i := 1 to Result.Max do Result.Rec[i] := Copy(sRows, cCol[i - 1] + 1, cCol[i] - cCol[i - 1] - 1); end; end; Пример использования: var R: TSepRec; begin R := GetSeparatorRec('123.45-ABCDEF-"A-B-C"-"0"-', '-'); // результат: R.Max = 5; R.Rec = ('5', '123.45', 'ABCDEF', '"A;B;C"', '"0"', ''); Это программный код на Delphi, который разбивает строку с разделителями в массив строк с помощью функции Обзор кода:
Замечания по коду:
Функция GetSeparatorRec в Delphi расщепляет строку с разделителями на массив строк, учитывая возможность заключения разделителей в двойные кавычки. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Текст и Строки ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |