UPPER-LOWER

UPPER-LOWER

Postby acuellar » Thu Feb 28, 2019 4:22 pm

Estimados,

Existe una función para poner el primer caracter en Mayúscula y el resto en minúsculas?

Gracias por la ayuda.
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1593
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: UPPER-LOWER

Postby FranciscoA » Thu Feb 28, 2019 5:39 pm

Hola, Adhemar.
Esta function te pone en mayuscula la primer letra de cada palabra en un cadena de texto: (no se quien la creó)
Code: Select all  Expand view
//-----------------------
FUNCTION Capitalize(cText)
LOCAL nToken  := 1
LOCAL cToken  := StrToken(cText, nToken, " ")
LOCAL cResult := ""
     DO WHILE !empty(cToken)
          cResult += Upper(left(cToken,1))+Lower(Substr(cToken,2))+" "
          nToken++
          cToken  := StrToken(cText, nToken, " ")
     ENDDO
RETURN Alltrim(cResult)

 

Esta otra es para poner el primer caracter en Mayúscula y el resto en minúsculas en una cadena de texto:
Code: Select all  Expand view
StrCapFirst(cString)
 

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2111
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: UPPER-LOWER

Postby karinha » Thu Feb 28, 2019 6:10 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7266
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: UPPER-LOWER

Postby acuellar » Thu Feb 28, 2019 7:37 pm

Muchas Gracias
Francisco y Joao

Ambas funcionan, lo único que no convierte es los caracteres especiales ÁÉÍÓÚÑ
Por lo se me ocurrió fue convertir primero éstos caracteres.

Code: Select all  Expand view

FUNCTION StrUpperLow(cNOMBRE)
      cNOMBRE:=StrTran(cNOMBRE,"Á","á")
      cNOMBRE:=StrTran(cNOMBRE,"É","é")
      cNOMBRE:=StrTran(cNOMBRE,"Í","í")
      cNOMBRE:=StrTran(cNOMBRE,"Ó","ó")
      cNOMBRE:=StrTran(cNOMBRE,"Ú","ú")
      cNOMBRE:=StrTran(cNOMBRE,"N","ñ")
Return cNOMBRE
 


Quizás se pueda modificar la función.
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1593
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: UPPER-LOWER

Postby karinha » Thu Feb 28, 2019 8:04 pm

Code: Select all  Expand view

#include "FiveWin.ch"

FUNCTION Main()

   LOCAL cAcento := "ñ" // N

   TIRA_ACENTO( cAcento )

RETURN NIL

FUNCTION StrUpperLow(cNOMBRE)

      cNOMBRE:=StrTran(cNOMBRE,"Á","á")
      cNOMBRE:=StrTran(cNOMBRE,"É","é")
      cNOMBRE:=StrTran(cNOMBRE,"Í","í")
      cNOMBRE:=StrTran(cNOMBRE,"Ó","ó")
      cNOMBRE:=StrTran(cNOMBRE,"Ú","ú")
      cNOMBRE:=StrTran(cNOMBRE,"N","ñ")  // n/N

Return cNOMBRE

FUNCTION TIRA_ACENTO( cStr )
 
   local cStrNew := "", nX, cAcentos, cLetras
 
   cAcentos := {"—","ƒ","Æ","Ç"," ","µ","…","·","‚","É","ê","ˆ","","Ò","í","Í","ó","¢","à","ä","å","“","â","ú","é","","š","ç","€","ã","Ã","á","Á","à","À","é","É","ê","Ê","í","Í","ó","Ó","õ","Õ","ô","Ô","ú","Ú","ü","Ü","ç","ù","AAO","§","¦","º","ª","€","‡","Ç","ç","'","`","ø","¡","Þ","×","Ø",   "ñ", chr(239)}
 
   cLetras  := {"U","A","A","A","A","A","A","A","E","E","E","E","E","E","I","I","O","O","O","O","O","O","O","U","U","U","U","C","C","A","A","A","A","A","A","E","E","E","E","I","I","O","O","O","O","O","O","U","U","U","U","C"," ","CAO",".",".",".",".","C","C","C","C","" ,"" ,".","I","I","I","I", "N",  ""   }
 
   For nX := 1 TO LEN(cAcentos)
 
      cStrNew := StrTran(cStr, cAcentos[nX], cLetras[nX])
      cStr := cStrNew
 
   Next

   ? cStr
 
Return( cStrNew )
 
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7266
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 17 guests