Buscar

Função para dividir uma string com caracteres separadores em array

Código

Antes de mais nada, crie o tipo arrRetorno na sua seção type para que seja utilizado o array como tipo de retorno (É necessário fazer isso porque o Delphi não suporta o retorno de tipos de arquivo complexos em funções):

type
  //Tipo necessário para que a função split utilize tipos complexos - simplesmente um array dinâmico
  arrRetorno = array of string;

Em seguida, declare a função como public (se quiser, claro) e digite seu corpo:

// Recebe uma string como input e a parte em um array. Cada ocorrência de splitChar é o separador
// de um item do array.
function TfrmPrincipal.split(input, splitChar: string): arrRetorno;
var
  inputLength, i, arrayDims: integer;
  inputAux : string;
begin
  inputLength := Length(input);
  inputAux := '';
  arrayDims:= 0;

  for i := 1 to inputLength do
  begin
    if input[i] = splitChar then
      arrayDims := arrayDims + 1;
  end;

  setLength(result, arrayDims+1);
  arrayDims:= 0;
 
  for i := 1 to inputLength do
  begin
    if input[i] <> splitChar then
      inputAux := inputAux + input[i]
    else
    begin
      result[arrayDims] := inputAux;
      arrayDims := arrayDims + 1;
      inputAux := '';
    end;

    if i >= inputLength then
    begin
      result[arrayDims] := inputAux;
      arrayDims := arrayDims + 1;
      inputAux := '';
    end;
  end;
end;

Para utilizar, basta declarar uma variável como sendo do tipo arrRetorno, e populá-la com a função:

var
  arrayAgencias : arrRetorno;
begin
    arrayAgencias := split('1,2,3',','); //Retorna um array assim: [1,2,3]
end;

Publicidade

Vote na dica




Quantidade de votos: 2 votos
Aceitação: 100%


Detalhes da dica

Categoria: Forms
Adicionada dia: 29/06/09
Por: Tiago César Oliveira
Visualizada: 1046 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009

LANÇAMENTO! Curso de Delphi 2009, clique aqui e confira!