FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour UPPER-LOWER
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
UPPER-LOWER
Posted: Thu Feb 28, 2019 04: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.
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: UPPER-LOWER
Posted: Thu Feb 28, 2019 05: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 (fw): Select all Collapse
//-----------------------
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 (fw): Select all Collapse
StrCapFirst(cString)

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: UPPER-LOWER
Posted: Thu Feb 28, 2019 06:10 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: UPPER-LOWER
Posted: Thu Feb 28, 2019 07: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 (fw): Select all Collapse
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.
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: UPPER-LOWER
Posted: Thu Feb 28, 2019 08:04 PM
Code (fw): Select all Collapse
#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

Continue the discussion