Ir para conteúdo
Fórum Script Brasil
  • 0

Function com variavel de retorno


Jefferson Pereira

Pergunta

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);

Nomes[TotalNomes] := 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.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

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

Jefferson .. voce já tem todas as posições guardadas no array Nomes[TotalNomes]

Nomes[TotalNomes] := Copy(Nome, 1, i - 1);

como não vi a definição deste array dentro da função, então ela deve estar definida fora da função.... e desta maneira voce pode usar o array para mostrar todas as posições.

exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
begin
   memo1.clear;
   for i := 1 to Total do
      Memo1.Lines.Append(Nomes[i]);
end;
OBS: Crie uma variavel publica chamada Total que recerá o resultado da contagem dos nomes exemplo:
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);

Total := TotalNomes;   ///  total recebe o numero de ocorrencias

Nomes[TotalNomes] := Copy(Nome, 1, i - 1);
Delete(Nome, 1, i);
i := Pos(#32, Nome);
end;
end;
end;

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...