FUNCTION COM RETORNO DE MAIS UMA VARIAVEL

Delphi

30/11/2008

function MontaString(Nome,separador: String): string;
begin
Nome := Trim(Nome);
Result := Nome;
{Insere um espaço para garantir que todas as letras sejam testadas}
Nome := Nome + #32;
{Pega a posição do primeiro espaço}
i := Pos(separador, Nome);
if i > 0 then
begin
TotalNomes := 0;
{Separa todos os nomes}
while i > 0 do
begin
Inc(TotalNomes);
[b:e413cb6bba]Nomes[TotalNomes][/b:e413cb6bba] := Copy(Nome, 1, i - 1);
Delete(Nome, 1, i);
i := Pos(32, Nome);
end;
end;
end;

essa função esta quase perfeita pra mim, a minha necessidade é que após ler um string eu conseguise obter todas as posições.
ex:

a:=Nomes[1]
b:=Nomes[2]
a minha dificuldade e ter todos esses valores fora da função,pois se escrevo esse código dentro da procedure eu tenho o retorno.


Jefferson Pereira

Jefferson Pereira

Curtidas 0

Respostas

Rudá

Rudá

30/11/2008

Você pode criar array dinamico.

Type
  TTipo = Array of String;
  function MontaString(Nome,separador: String): TTipo;
  begin 
    Nome := Trim(Nome); 
    Result := Nome; 
    {Insere um espaço para garantir que todas as letras sejam testadas} 
    Nome := Nome + #32; 
    {Pega a posição do primeiro espaço} 
    i := Pos(separador, Nome); 
    if i > 0 then 
    begin 
      TotalNomes := 0; 
      {Separa todos os nomes} 
      while i > 0 do 
      begin 
        Inc(TotalNomes); 
        Setlengh(Result,TotalNomes);
        Result[TotalNomes-1] := Copy(Nome, 1, i - 1); 
        Delete(Nome, 1, i); 
        i := Pos(32, Nome); 
      end; 
    end; 
  end;



GOSTEI 0
POSTAR