Fórum Alguém me ajuda? Como converter primeira letra p/ maiúscula? #173819

08/08/2003

0

Bom dia companheiros...
Vejam se podem me ajudar?

Peguei uma função que faz com que a primeira letra de cada palavra digitada dentro de um edit fique maiúscula.
Por exemplo: O usuário digitou ´pablo rodrigues´, com a funcionamento da função fica assim: Pablo Rodrigues
Até aí tudo bem. Só que já tem mais de 300 registros cadastrados na tabela, com o formato antigo que era todas em minúsculas.
Existem uma função que altere os dados da tabela formatando a primeira letra de cada palavra em maiúscula dentro de um campo como por exemplo endereço?
Se alguém puder me ajudar ficarei muito grato...
Um abraço a todos...
Pablo - Marília-SP


Pablo_lima

Pablo_lima

Responder

Posts

08/08/2003

Bacalhau

Colega, tenta isto:

var linha : string;

table1.first;
while not table1.eof do
begin
linha := table1.fieldbyname(<nome do campo>).asstring;

// coloca a primeira linha em maiuscula

linha := uppercase(linha[1] + copy(linha,2,length(linha) - 1);

for i := 2 to length(linha - 1) do
begin
if linha[i] = ´ ´ then
linha := copy(linha,1,i) + uppercase(linha[i + 1]) +
copy(linha,i + 2, length(linha) - i - 2);
end;

table1.edit;
table1.fieldbyname(<nome do campo>).asstring := linha;
table1.post;
table1.next;
end;

O tratamento da variavel string é meio complicadinho mas resulta
abraço do bacalhau


Responder

Gostei + 0

08/08/2003

Vmotta

e se vc correr a tabela editando ela e alterando a primeira letra para maiusculo ?

código para transformar a primeira letra em maiuscula :

varstring[1] := uppercase(varstring[1])[1];

t+
Vitor <vmotta@eep.br>


Responder

Gostei + 0

08/08/2003

Aroldo Zanela

Colega,

Fiz a função [b:d74a2884f8]FormataMaiusculas[/b:d74a2884f8] abaixo baseado no que entendi de sua necessidade, ou seja, ler uma base de dados (no caso endereço) e converter as iniciais das palavras numa frase (primeira letra e após um espaço):


// Isso aqui é apenas uma tabela para testar a funçào
procedure TForm10.Button1Click(Sender: TObject);
begin
IBQuery1.Open;

  while not IBQuery1.Eof do
  begin
  RichEdit1.Lines.Add((FormataMaiusculas(LowerCase(IBQuery1PES_ENDERE.Value))));
  IBQuery1.Next;
    Application.ProcessMessages;
    if Checkbox1.Checked then exit;
  end;

  IBQuery1.Close;
end;

// Função genérica
function TForm10.FormataMaiusculas(Origem: String): String;
var nX, nZ: Integer;
  Letra: String;
begin
  nZ := Length(Origem); // Obter comprimento apenas um vez para cada frase (Performance)
  Result := ´´;
  For nX := 1 to nZ do
  begin
    if (nX = 1) or ((nX>1) and (Origem[nx-1]=Chr(32))) then // Se é a primeira letra da frase ou se o caracter anterior é um espaço
      Letra := UpperCase(Origem[nX])
    else
      Letra := Origem[nX];
    Result := Result + Letra; //Armazena a frase de retorno formatada para maiúsculas/minúsculas
  end;
end;



Responder

Gostei + 0

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

Aceitar