Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

J. L. Gregorio

Função para tranformar as iniciais de uma string em maiúsculas

Recommended Posts

Galera, o problema é o seguinte: Eu tenho vários registros em uma tabela que estão com letras maíusculas, por exemplo, os nomes das cidades. Preciso criar alguns documentos imprimíveis utilizando esses dados, o problema é que nos tais documentos os nomes das cidades não podem aparecer todos em maiúsculos. Criei então uma função que pega uma string e converte todas as suas iniciais para maíuscula, vejam a função:

 

function PMAIUSCULA(texto: string): String;

var i:integer;

aux:string;

begin

texto:=LowerCase(texto);

aux:='';

for i:=1 to length(texto) do

begin

if i=1 then

begin

aux:=UpCase(texto);

aux:=aux+texto[i+1];

end

else

if texto = ' ' then

aux:=aux+UpCase(texto[i+1]) else

aux:=aux+texto[i+1];

end;

Result:=AUX;

end;

 

A função acima só funciona com caracteres que não possuem acentos, ou seja, se eu digitar a palavra SÃO PAULO, ela irá me retornar SÃo Paulo http://forum.imasters.com.br/public/style_emoticons/default/closedeyes.gif . Letras com acentos não são convertidas...!

 

Alguma sugestão?

 

Abraços.....!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta trocar a função LowerCase por AnsiLowerCase, ficando:

 

function PMAIUSCULA(texto: string): String;var	i:integer;	aux:string;begintexto:=AnsiLowerCase(texto);aux:='';for i:=1 to length(texto) do	begin	if i=1 then		begin		aux:=UpCase(texto[i]);		aux:=aux+texto[i+1];		end	else		if texto[i] = ' ' then	aux:=aux+UpCase(texto[i+1]) else	aux:=aux+texto[i+1];	end;Result:=AUX;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.