Fórum Alguém me ajuda? Como converter primeira letra p/ maiúscula? #173819
08/08/2003
0
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
Curtir tópico
+ 0Posts
08/08/2003
Bacalhau
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
Gostei + 0
08/08/2003
Vmotta
código para transformar a primeira letra em maiuscula :
varstring[1] := uppercase(varstring[1])[1];
t+
Vitor <vmotta@eep.br>
Gostei + 0
08/08/2003
Aroldo Zanela
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;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)