Amigos, boa noite.
Neste espaço, eu tenho convidá-los a divulgar suas rotinas. Do básico ao Avançado.
Precisamos colcaborar para que o Guia do Hacker esteja sempre em ativa.
Grande abraço,
Neste espaço, eu tenho convidá-los a divulgar suas rotinas. Do básico ao Avançado.
Precisamos colcaborar para que o Guia do Hacker esteja sempre em ativa.
Código:
function AbreviaNome(Nome: String): String; var Nomes: array[1..20] of string; i, TotalNomes: Integer; 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(#32, 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; if TotalNomes > 2 then begin {Abreviar a partir do segundo nome, exceto o último.} for i := 2 to TotalNomes - 1 do begin {Contém mais de 3 letras? (ignorar de, da, das, do, dos, etc.)} if Length(Nomes[i]) > 3 then {Pega apenas a primeira letra do nome e coloca um ponto após.} Nomes[i] := Nomes[i][1] + '.'; end; Result := ''; for i := 1 to TotalNomes do Result := Result + Trim(Nomes[i]) + #32; Result := Trim(Result); end; end; end;
Comment