Функция разбиения строки в Delphi - CodeHelper

Функция разбиения строки в Delphi

1

Нужна функция разбиения строки в массив или в TStringList с указанием символов разделителей, типа split в php

Лучший ответ:

1

В Delphi есть стандартная функция для разбиения строки на подстроки, совсем как в PHP

var
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    ExtractStrings([';', ','], [' '], 'language: russian; delphi, php, c++; Ivanov', sl);
    // тут обрабатываем sl.Items
  finally
    sl.Free;
  end;
end;

Данная функция описана в Classes

type TSysCharSet = set of Char;
function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer;

Подробнее тут

Можно конечно самостоятелько написать "велосипед"

function Explode(const delim, str: string): TStringList;
var offset: integer;
    cur: integer;
    dl: integer;
begin
  Result:=TStringList.Create;
  dl:=Length(delim);
  offset:=1;
  while True do begin
      cur:=PosEx(delim, str, offset);
      if cur > 0 then
          Result.Add(Copy(str, offset, cur - offset))
      else begin
          Result.Add(Copy(str, offset, Length(str) - offset + 1));
          Break
      end;
      offset:=cur + dl;
  end;
end;
v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.