Duas maneiras de se fazer split no Delphi XE2 parecido com a função split do C#


Para se fazer uma função split no Delphi basta usar array dinâmico ou list de string.
O exemplo abaixo mostra como.


function split(original: string; separador: string) : TStringArray;
var idx: integer;
tmp, item: string;
resultado: TStringArray;
begin

  idx:=0;
  SetLength(resultado, idx);
  tmp := original;

  while Pos(separador, tmp) > 0 do
  begin

    SetLength(resultado, length(resultado)+1);
    item := Copy(tmp, 1, Pos(separador, tmp)-1);
    tmp := Copy(tmp, Pos(separador, tmp) + length(separador), length(tmp) +  Pos(separador, tmp) - length(separador));
    resultado[idx] := item;
    inc(idx);

  end;
  SetLength(resultado, length(resultado)+1);
  resultado[idx] := tmp;
  Result := resultado;

end;




function split2(original: string; separador: string) : TList < string >;
var
  tmp, item: string;
begin
  result := TList< string >.Create;
  tmp := original;

  while Pos(separador, tmp) > 0 do
  begin
    Result.Add( Copy(tmp, 1, Pos(separador, tmp)-1));
    tmp := Copy(tmp, Pos(separador, tmp) + length(separador), length(tmp) +  Pos(separador, tmp) - length(separador));
  end;

  Result.Add(tmp);

end;

É isso aí, isso é usado em alguns outros posts desse blog.

Comentários

Postagens mais visitadas deste blog

Detectar o encoding de um arquivo para não corromper ao transformá-lo

erro "ora-12154: tns: não foi possível resolver o identificador de conexão especificado"

Quebras de linha no Delphi 2010