Clipper On Line • Ver Tópico - Trocar maiusculo por minusculo

Trocar maiusculo por minusculo

Discussão sobre a linguagem CA-Clipper.

Moderador: Moderadores

 

Trocar maiusculo por minusculo

Mensagempor marsp » 21 Nov 2016 12:44

Como Trocar RUA BARÃO DO ITAIM POR Rua Barão do Itaim. Trocar as primeiras letras maiúsculas por letras minúsculas.

Obrigado
marsp
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 46
Data de registro: 11 Fev 2013 13:09
Curtiu: 2 vezes
Mens.Curtidas: 3 vezes

Trocar maiusculo por minusculo

Mensagempor JoséQuintas » 21 Nov 2016 13:04

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....

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, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18162
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Trocar maiusculo por minusculo

Mensagempor marsp » 21 Nov 2016 14:19

Obrigado Jose Quintas.
marsp
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 46
Data de registro: 11 Fev 2013 13:09
Curtiu: 2 vezes
Mens.Curtidas: 3 vezes

Trocar maiusculo por minusculo

Mensagempor Jairo Maia » 21 Nov 2016 15:47

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:
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)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Trocar maiusculo por minusculo

Mensagempor JoséQuintas » 21 Nov 2016 16:17

Precisa só de uma pequena melhoria.
O segundo FOR/NEXT só desfaz UMA ocorrência de exceções.
Talvez melhor assim, ou usando AEval()

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, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18162
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Trocar maiusculo por minusculo

Mensagempor marsp » 21 Nov 2016 16:32

Obrigado a você também Jairo
marsp
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 46
Data de registro: 11 Fev 2013 13:09
Curtiu: 2 vezes
Mens.Curtidas: 3 vezes

Trocar maiusculo por minusculo

Mensagempor Jairo Maia » 24 Nov 2016 10:02

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.
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)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Trocar maiusculo por minusculo

Mensagempor Softwhouse » 24 Nov 2016 10:40

Jairo, olhei rápidamente e notei que falta a função MAIUSC, o que ela faz ? Pode disponibilizar ?
Fernando
Softwhouse
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 300
Data de registro: 07 Dez 2011 17:44
Cidade/Estado: Porto Alegre/RS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Trocar maiusculo por minusculo

Mensagempor Jairo Maia » 24 Nov 2016 11:49

Verdade:
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
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)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Trocar maiusculo por minusculo

Mensagempor alxsts » 24 Nov 2016 13:26

Olá!

Consulte também o tópico Converter carcteres maiusculos por minusculos.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Trocar maiusculo por minusculo

Mensagempor Softwhouse » 24 Nov 2016 15:04

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
Softwhouse
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 300
Data de registro: 07 Dez 2011 17:44
Cidade/Estado: Porto Alegre/RS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes




Retornar para CA-Clipper

Quem está online

Usuários vendo este fórum: Google [Bot] e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro