Jump to content
Fivewin Brasil

LETRAS EM MAIUSCULO E MINUSCULO


marcioe

Recommended Posts

Amigos, será que algum colega tem alguma função que pegue o texto e transforme e Maiusculo e Minusculo

Exemplo

a pessoa digitou assim

MARCIO EDUARDO

queria que Ficasse assim

Marcio Eduardo

Sem acentos nem nada no banco eu gravo em MAIUSCULO MESMO, mas para fazer contratos a pessoa esta querendo seja assim.

Seria algo assim eu passaria a variavel com o Texto Todo e a função faria a troca das lertras.

Maiusculo e Minusculo.

Se puderem postar.

Link to comment
Share on other sites

Use essa minha que dar certo


cNAME := SETLOWER( "MARCIO EDUARDO" )



FUNCTION SETLOWER( cNOMEUPPER)

LOCAL cCHRANT := cCHAR := " "

VARAUX1 := " "

FOR _n = 1 TO LEN(cNOMEUPPER)

cCHAR := SUBSTR(cNOMEUPPER,_n,1)

IF !EMPTY(cCHRANT)

VARAUX1 += LOWER(cCHAR)

ELSE

VARAUX1 += UPPER(cCHAR)

ENDIF

cCHRANT := cCHAR

NEXT

RETURN( LTRIM(VARAUX1) )

**************************************************************************************

Link to comment
Share on other sites

Márcio

Bom dia

cMaiusculo:=""

cParte:=""

For x:=1 To Len(cTexto)

If SubStr(cTexto,x,1)== " "

cMaiusculo += Upper(Left(cParte,1))+Lower(SubStr(cParte,2))+" "

cParte:=""

Else

cParte:= SubStr(cTexto,x,1)

Endif

Next

Acho que é isso... Não testei mas é uma coisa bem simples de fazer...

Upper() - Letras maiúsculas

Lower() - Letras minúsculas

Att

João Bosco

Link to comment
Share on other sites

Excelente idéia <jmsilva>, thanks.




#include "FiveWin.ch"

#ifdef __HARBOUR__
//#require "hbct"
#endif

PROCEDURE Main()

LOCAL cStr := ".,.This.,.is.,.a.,.test!"

? "Begin test of TokenUpper()"


? " Simple tests:"
? ' TokenUpper( "Hello, world, here I am!" ) == "Hello, World, Here I Am!" ?'
? ' -->', '"' + TokenUpper( "Hello, world, here I am!" ) + '"'
? ' TokenUpper( "Hello, world, here I am!",, 3 ) == "Hello, World, Here I am!" ?'
? ' -->', '"' + TokenUpper( "Hello, world, here I am!",, 3 ) + '"'
? ' TokenUpper( "Hello, world, here I am!", ",", 3 ) == "Hello, world, here I am!" ?'
? ' -->', '"' + TokenUpper( "Hello, world, here I am!", ",", 3 ) + '"'
? ' TokenUpper( "Hello, world, here I am!", " w" ) == "Hello, wOrld, Here I Am!" ?'
? ' -->', '"' + TokenUpper( "Hello, world, here I am!", " w" ) + '"'


? ' Uppercase the tokens in the string', '"' + cStr + '"'
? ' with CSetRef( .T. ) and "@"'

CSetRef( .T. )

? ' --> return value of TokenUpper( @cStr ):', TokenUpper( @cStr )
? ' --> cStr is now:', '"' + cStr + '"'

cStr := Lower("MARCIO EDUARDO")

MsgStop(TokenUpper(cStr))


? "End test of TokenUpper()"

RETURN NIL




Link to comment
Share on other sites

  • 3 years later...
 

Só cuidado com os conectivos, exemplo:
TokenUpper("samir sardinha soares de abreu") => Samir Sardinha Soares De Abreu
Tem que passar o 3º parâmetro pelo que o Kapiaba mostrou

Está justamente acontecendo o que o Samir disse e não que dar certo,
quando os textos tem por exemplo 

Exemplos

Samir Sardinha Soares De Abreu.

Juiz De Fora-MG


Inter Construtora E Incorporadora Ltda

Estou usando assim 
TokenUpper( Lower(  ALLTRIM(locatarios_contrato->LOCNOM)), " w"   )
Será que está correto, 


Acontece justamente isso que ele disse

Link to comment
Share on other sites

Eu fiz uma função ja faz tempo. nem estou usando. mais deve servir

FUNCTION TXT_CAPITALIZE(f_cTexto)
  Local lc_cTextoReturn := "", lc_aTmpTokenTxt := {}
  Local lc_cTmpPalavra := "", lc_cTmpCap := ""
  Local lc_iFor := 0

  lc_aTmpTokenTxt := hb_aTokens(f_cTexto)
  
  For lc_iFor := 1 To Len(lc_aTmpTokenTxt)
    lc_cTmpPalavra  := lc_aTmpTokenTxt[lc_iFor]
    lc_cTmpCap      := Lower(lc_cTmpPalavra)
    If Len(lc_cTmpPalavra) > 2
      If !(lc_cTmpCap $ "das dos") 
        lc_cTmpCap := Upper(SubStr(lc_cTmpCap,1,1))+SubStr(lc_cTmpCap,2)
      EndIf  
    EndIf
    lc_cTextoReturn += lc_cTmpCap + " "
  Next
  
  lc_cTextoReturn := rTrim(lc_cTextoReturn)
  
RETURN lc_cTextoReturn  

 

Link to comment
Share on other sites

Amiguinhos,

PRÁTICA

Guardem as informações de forma harmonizada e homogeneizada, ou tudo em maiúsculas ou tudo em minúsculas.

Dependendo do motor de busca seja RDD ou SQL, Jose não é JOSE nem José.

Ah Rochinha, mas com .DBF eu posso buscar de qualquer jeito que ele encontra. Sim, mas pense quando for passar seus dados para SQL, tais diferenças poderão não retornar o desejado.

Apresentem a informação perfumada somente nos impressos ou visões

 

FUNCTION NewCapFirst( string )
   declare excesao[7]
   excesao[1] = " Do "
   excesao[2] = " Dos "
   excesao[3] = " Da "
   excesao[4] = " Das "
   excesao[5] = " De "
   excesao[6] = " E "
   excesao[7] = " Del "
   novotexto = space(1)+lower(string)
   fim = len(string)
   for i = 1 to fim
      if substr(novotexto,i,1) = " "
         novotexto = stuff(novotexto,i+1,1,upper(substr(novotexto,i+1,1)))
      endif
   next
   tamanho = len(excesao)
   for i = 1 to tamanho
      if excesao[i]$novotexto   && tamanho
         novotexto = stuff(novotexto,AT(excesao[i],novotexto),;
         len(excesao[i]),lower(excesao[i]))
      endif
   next
   return (ltrim(novotexto))

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...