Página 1 de 1
Trocar maiusculo por minusculo
Enviado: 21 Nov 2016 13:44
por marsp
Como Trocar RUA BARÃO DO ITAIM POR Rua Barão do Itaim. Trocar as primeiras letras maiúsculas por letras minúsculas.
Obrigado
Trocar maiusculo por minusculo
Enviado: 21 Nov 2016 14:04
por JoséQuintas
Tentar direto aqui, sem testar.
Seria ativar maiúscula ao encontrar espaço em branco, e desativar após passar pra maiúscula.
Então....
Código: Selecionar todos
UpperLower( @cTexto )
FUNCTION UpperLower( cTexto )
LOCAL cTextoNovo, lUpper := .T., nCont, cLetra
cTextoNovo := ""
FOR nCont = 1 TO Len( cTexto )
cLetra := Substr( cTexto, nCont, 1 )
IF cLetra == " "
lUpper := .T.
ELSEIF lUpper
cLetra := Upper( cLetra )
lUpper := .F.
ENDIF
cTextoNovo += cLetra
NEXT
RETURN cTextoNovo
Trocar maiusculo por minusculo
Enviado: 21 Nov 2016 15:19
por marsp
Obrigado Jose Quintas.
Trocar maiusculo por minusculo
Enviado: 21 Nov 2016 16:47
por Jairo Maia
Olá Pessoal,
Uso já há algum tempo essa função, que peguei aqui no fórum mesmo. Se não estou enganado foi disponibilizada pelo Toledo (acho). Mas funciona legal:
Código: Selecionar todos
Function Captular(texto)
LOCA i, excecao, fim, tamanho, novotexto, ini
excecao:={" Do "," Dos "," Da "," Das "," De "," Em "," A "," E "," O "}
novotexto=Space(1)+Lower(texto)
fim:=Len(texto)
FOR i=1 TO fim
IF SubStr(novotexto,i,1)=" "
novotexto=Stuff(novotexto,i+1,1,MAIUSC(SubStr(novotexto,i+1,1)))
ENDI
NEXT
tamanho=Len(excecao)
FOR i=1 TO tamanho
IF excecao[i] $ novotexto
novotexto=Stuff(novotexto,At(EXCECAO[i],novotexto),;
Len(excecao[i]),Lower(excecao[i]))
ENDI
NEXT
novotexto=Stuff(novotexto,2,1,MAIUSC(SubStr(novotexto,2,1)))
RETU LTrim(novotexto)
Trocar maiusculo por minusculo
Enviado: 21 Nov 2016 17:17
por JoséQuintas
Precisa só de uma pequena melhoria.
O segundo FOR/NEXT só desfaz UMA ocorrência de exceções.
Talvez melhor assim, ou usando AEval()
Código: Selecionar todos
FOR nCont =1 TO Len( Exceção )
NovoTexto := StrTran( NovoTexto, Exceção[ nCont ], Lower( Exceção[ nCont ] )
NEXT
Trocar maiusculo por minusculo
Enviado: 21 Nov 2016 17:32
por marsp
Obrigado a você também Jairo
Trocar maiusculo por minusculo
Enviado: 24 Nov 2016 11:02
por Jairo Maia
Com razão José. Mais limpo e mais rápido. Valeu.
Para registro: Acima disse que havia baixado a função aqui no fórum mesmo. Mas na verdade essa função é disponibilizada pelo GASPRO, e a parte de exceções foi acrescentada por mim mesmo e segundo meu registro no .PRG em 02/2002.
Trocar maiusculo por minusculo
Enviado: 24 Nov 2016 11:40
por Softwhouse
Jairo, olhei rápidamente e notei que falta a função MAIUSC, o que ela faz ? Pode disponibilizar ?
Trocar maiusculo por minusculo
Enviado: 24 Nov 2016 12:49
por Jairo Maia
Verdade:
Código: Selecionar todos
Func Maiusc( Arg1 )
Local t
Arg1 := Upper( Arg1 )
For t:=1 To 11
Arg1 := StrTran( Arg1, SubStr( "çáàêâèéãõüí", t, 1 ), SubStr( "ÇÁÀÊÂÈÉÃÕÜI", t, 1 ) )
Next
Return Arg1
Trocar maiusculo por minusculo
Enviado: 24 Nov 2016 14:26
por alxsts
Trocar maiusculo por minusculo
Enviado: 24 Nov 2016 16:04
por Softwhouse
Perfeito Jairo, implementei com a alteração sugerida pelo José Quintas (falta colocar um parênteses de fechamento no final) e funcionou corretamente. Obrigado.