Correção na segunda implementação:

 

function SplitStr(const s: string; sep: Char): TStringDynArray; overload;
var
  ls: TStrings;
begin
  ls := SplitStr(s, sep);

  try
    SetLength(Result, 0);
    while ls.Count > 0 do
    begin
      SetLength(Result, Succ(Length(Result)));
      Result[High(Result)] := ls[0];
      ls.Delete(0);
    end;

  finally 

    ls.Free;

  end;
end;

 

De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em
nome de Rubem Nascimento da Rocha
Enviada em: terça-feira, 15 de junho de 2010 11:02
Para: delphi-br
Assunto: RE: [delphi-br] Função Explode
Prioridade: Alta

 

  


Não tem nativa. Vai ter que implementar.

Exemplo de implementação:

{ Retorna um TStrings contendo em cada posição

cada palavra de um texto especificado }

function SplitStr(const s: string; sep: Char): TStrings; overload;

begin

Result := TStringList.Create;

Result.Delimiter := sep;

Result.DelimitedText := s;

end;

{ Retorna um array dinâmico de strings contendo em cada posição

cada palavra de um texto especificado }

function SplitStr(const s: string; sep: Char): TStringDynArray; overload;

var

ls: TStrings;

begin

ls := SplitStr(s, sep);

SetLength(Result, 0);

while ls.Count > 0 do

begin

SetLength(Result, Succ(Length(Result)));

Result[High(Result)] := ls[0];

ls.Delete(0);

end;

end;


Sds.

To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> 
From: evaldoave...@yahoo.com.br <mailto:evaldoavelar%40yahoo.com.br> 
Date: Tue, 15 Jun 2010 07:55:25 -0700
Subject: [delphi-br] Função Explode

Delphi tem alguma função explode nativa?
ou vou ter que implementar?

por exemplo:

A string:
str := teste,teste,teste,teste
explode(str,',');

retorna uma stringlist:
teste
teste
teste
tese


__________________________________________________________
O INTERNET EXPLORER 8 TE AJUDA A FICAR PROTEGIDO DE FRAUDES NA WEB. LEIA
MAIS AQUI.
http://www.microsoft.com/brasil/windows/internet-explorer/features/dicas.asp
x?tabid=1
<http://www.microsoft.com/brasil/windows/internet-explorer/features/dicas.as
px?tabid=1&catid=1&WT.mc_id=1589> &catid=1&WT.mc_id=1589

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]

Responder a