Fórum Função pegar Primeiro Nome #459838

30/10/2013

0

Pessoal,

Encontrei essa função na rede.
Gostaria de saber: Como faço para pegar os dois primeiros nome (ou palavra da frase)?

Na função abaixo ela faz: JOÃO PEDRO DA SILVA = JOÃO
Gostaria: JOÃO PEDRO DA SILVA = JOÃO PEDRO

function PrimeiroNome (Nome : String) : String;
var
PNome : String;
begin
PNome := '';
if pos (' ', Nome) <> 0 then
PNome := copy (Nome, 1, pos (' ', Nome) - 1);
Result := PNome;
end; 
Elton Ésqui

Elton Ésqui

Responder

Posts

30/10/2013

Marcos Oliveira

Elton,

Fiz um código que parece funcionar.

procedure TForm1.Button1Click(Sender: TObject);
var
   i, Contador: Integer;
   s: String;
begin
     Contador := 0;
     s := '';

     for i := 0 to Length(Edit1.Text) - 1 do
     begin
          if Copy(Edit1.Text,i+1,1) = ' ' then
          begin
               Inc(Contador);
               if Contador > 1 then
                  Break
          end;
          s := s + Copy(Edit1.Text,i+1,1);
     end;
     ShowMessage(Trim(s));
end;


Qualquer dúvida, vai me falando.

Att,

Marcos
Responder

Gostei + 0

30/10/2013

Marcos Saffran

Elton, veja a função abaixo, que criei há algum tempo para meus programas
function TForm1.LimitaNome(Nome: String): String;
var
  i : integer;
  Nome2 : String;
begin
  i := pos(' ', Nome);
  if i = 0 then
    Nome2 := Nome
  else
    begin
      Nome2 := copy(Nome, 1, i);
      delete(Nome, 1, i);
      i := pos(' ', Nome);
      if i = 0 then
       Nome2 := Nome2 + Nome
      else
        Nome2 := Nome2 + copy(Nome, 1, i);
    end;
  i := length(Nome2);
  if (copy(Nome2, i, 1) = ' ') then
    Nome2 := copy(Nome2, 1, i - 1);
  result := Nome2;
end;
Responder

Gostei + 0

30/10/2013

Thiago Irrazabal

Pessoal,

Encontrei essa função na rede.
Gostaria de saber: Como faço para pegar os dois primeiros nome (ou palavra da frase)?

Na função abaixo ela faz: JOÃO PEDRO DA SILVA = JOÃO
Gostaria: JOÃO PEDRO DA SILVA = JOÃO PEDRO

function PrimeiroNome (Nome : String) : String;
var
PNome : String;
begin
PNome := '';
if pos (' ', Nome) <> 0 then
PNome := copy (Nome, 1, pos (' ', Nome) - 1);
Result := PNome;
end; 



if Pos(' ', Nome) > 0 then
  begin
    PNome := Copy(S, 1, Pos(' ', Nome) -1);
    Nome := Copy(S, Pos(' ', Nome), Length(Nome));
    while Pos(' ', Nome[1]) <> 0 do
      Nome := Copy(Nome, Pos(' ', Nome) + 1, Length(Nome));
    Nome := Copy(Nome, 1, Pos(' ', Nome) - 1);
    Result := PNome + ' ' + Nome;
  end;
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar