quinta-feira, 16 de outubro de 2014

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.

Nenhum comentário:

Postar um comentário

Postagens populares

Marcadores

delphi (60) C# (31) poo (21) Lazarus (19) Site aos Pedaços (15) sql (13) Reflexões (10) .Net (9) Humor (9) javascript (9) ASp.Net (8) api (8) Básico (6) Programação (6) ms sql server (5) Web (4) banco de dados (4) HTML (3) PHP (3) Python (3) design patterns (3) jQuery (3) livros (3) metaprogramação (3) Ajax (2) Debug (2) Dicas Básicas Windows (2) Pascal (2) games (2) linguagem (2) música (2) singleton (2) tecnologia (2) Anime (1) Api do Windows (1) Assembly (1) Eventos (1) Experts (1) GNU (1) Inglês (1) JSON (1) SO (1) datas (1) developers (1) dicas (1) easter egg (1) firebird (1) interfaces (1) introspecção (1) memo (1) oracle (1) reflexão (1)