Esses dias precisei criar uma função que me retornasse uma array de string. Porém não consegui achar em nenhum lugar um meio de fazer isso em delphi. Apenas vi que muitos outros programadores também estavam com o mesmo problema. Por isso resolvi postar algo que talvez ajude a contornar essa situação. O artigo é algo bem simples.
Código da função
// entrada de dados //para função “S” recebe string, “separador” recebe caracter de separação da string. function Tform1.arraystring(S : String; separador : char): TStringList; var conta : integer; // variáveis auxiliares resultado : TStringList; // variáveis auxiliares Saux : string; // variáveis auxiliares begin // inicializa variavel resultado := TStringList.Create; //pega posição do separador conta := pos(separador,S); // verifica se existe o separador caso contrario trata apenas // como uma única linha if conta <> 0 then begin // enquanto S não for nulo executa
while trim(S) <> '' do begin // Variável Saux recebe primeiro valor Saux := copy(S,1,conta-1); //deleta primeiro valor delete(S,1,conta); //se não ouver mais separador Saux equivale ao resto da //linha if conta = 0 then begin Saux := S; S := ''; end; // adiciona linhas na string lista resultado.Add(Saux); //pega posição do separador conta := pos(separador,S); end; end else begin Saux := S; resultado.Add(Saux); end; // retorna resultado como uma lista indexada Result := resultado; end; |
Para ver a utilização do código acesse este site.
Um comentário:
Meu amigo Erick, voce poderia usar Tstringlist.Delimiter e Tstringlist.DelimitedText. Automaticamente você teria como retorno um array de strings.
Abs,
Paulo Maluco (ex DSN-PACK)
Postar um comentário