06/02/2006

Função para trocar a primeira letra do nome para maiúsculo

galera preciso padronizar um cadastro de um cliente que está em maiúsculo e jogar no padrão somente a primeira letra ex:

MARCOS JOÃO DA SILVA E COSTA
assi:
Marcos João da Silva e Costa


Alguém tem fácil?

Thanks


Marcos Fernando

Respostas

06/02/2006

Emerson

tente essa função:
function TForm1.FormataNome(sNome: String): string;
const
  excecao: array[0..5&93; of string = (´ da ´, ´ de ´, ´ do ´, ´ das ´, ´ dos ´, ´ e ´);
var
  tamanho, j: integer;
  i: byte;
begin
  Result := AnsiLowerCase(sNome);
  tamanho := Length(Result);

  for j := 1 to tamanho do
    // Se é a primeira letra ou se o caracter anterior é um espaço
    if (j = 1) or ((j>1) and (Result&91;j-1&93;=Chr(32))) then
      Result&91;j&93; := AnsiUpperCase(Result&91;j&93;)&91;1&93;;

  for i := 0 to Length(excecao) do
    Result := StringReplace(Result,excecao&91;i&93;,excecao&91;i&93;,&91;rfReplaceAll, rfIgnoreCase&93;);
end;



Responder Citar

06/02/2006

Marcos Fernando

Grato amigo deu na batata,

Thanks


Responder Citar