Trocar maiusculo por minusculo
Moderador: Moderadores
Trocar maiusculo por minusculo
Como Trocar RUA BARÃO DO ITAIM POR Rua Barão do Itaim. Trocar as primeiras letras maiúsculas por letras minúsculas.
Obrigado
Obrigado
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Trocar maiusculo por minusculo
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....
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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Trocar maiusculo por minusculo
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:
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)Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Trocar maiusculo por minusculo
Precisa só de uma pequena melhoria.
O segundo FOR/NEXT só desfaz UMA ocorrência de exceções.
Talvez melhor assim, ou usando AEval()
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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Trocar maiusculo por minusculo
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.
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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
-
Softwhouse
- Usuário Nível 3

- Mensagens: 324
- Registrado em: 07 Dez 2011 18:44
- Localização: Porto Alegre/RS
Trocar maiusculo por minusculo
Jairo, olhei rápidamente e notei que falta a função MAIUSC, o que ela faz ? Pode disponibilizar ?
Fernando
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
Trocar maiusculo por minusculo
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 Arg1Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
-
Softwhouse
- Usuário Nível 3

- Mensagens: 324
- Registrado em: 07 Dez 2011 18:44
- Localização: Porto Alegre/RS
Trocar maiusculo por minusculo
Perfeito Jairo, implementei com a alteração sugerida pelo José Quintas (falta colocar um parênteses de fechamento no final) e funcionou corretamente. Obrigado.
Fernando
