FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Primera Letra Mayúscula Después Espacio Capital *Solucionado
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Primera Letra Mayúscula Después Espacio Capital *Solucionado
Posted: Sat Apr 10, 2021 10:09 AM
Buenos días para todos

¿Existe una función en FW o xHarbour que coloque la primera letra en mayúscula después de un espacio?, me explico.
Code (fw): Select all Collapse
Local cNombre := "leandro alfonso arevalo suarez"
cNomFormato := lafuncion(cNombre)
?cNomFormato //Leandro Alfonso Arevalo Suarez

De antemano gracias
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Función Primera Letra Mayúscula Después Espacio
Posted: Sat Apr 10, 2021 10:38 AM
Creo recordar que eso se llama Capital Letter o algo así, e incluso es posible que exista la function harbour que lo hace, pero en cualquier caso prueba esto ( está sin probar )
Code (fw): Select all Collapse
#include "Fivewin.ch"

Function Main()
   Local cNomFormato
   Local cNombre := "leandro alfonso arevalo suarez"
   cNomFormato := LetterCapital( cNombre )
   ? cNomFormato //Leandro Alfonso Arevalo Suarez

Return nil

//

Function LetterCapital( cCad )

   local x
   local aWords  := hb_ATokens( cCad, " " )
   For x = 1 to Len( aWords )
      if Len( aWords[ x ] ) > 2    // palabras cortas ?
         aWords[ x ]  := Lower( aWords[ x ] )
         aWords[ x ]  := Upper( Left( aWords[ x ], 1 ) ) + Substr( aWords[ x ], 2 )
      endif
   Next x
   cCad    := ""
   AEVal( aWords, { | c | cCad += c + " " } )
   
Return AllTrim( cCad )
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Función Primera Letra Mayúscula Después Espacio
Posted: Sat Apr 10, 2021 01:56 PM
Code (fw): Select all Collapse
// CAPITAL LETTER - \SAMPLES\MAISCMIN.PRG

#Include "FiveWin.ch"

FUNCTION Main()

   LOCAL cTxtFormato
   LOCAL f_cTexto := "leandro alfonso arevalo suarez"

   cTxtFormato := TXT_CAPITALIZE( f_cTexto )

   ? cTxtFormato // Leandro Alfonso Arevalo Suarez

RETURN NIL

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 .NOT. ( 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 )

// FIN


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: Función Primera Letra Mayúscula Después Espacio
Posted: Sat Apr 10, 2021 02:11 PM

/*****************/
function FormataTextoComPrimeiraLetraMaiusculo( 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)

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Función Primera Letra Mayúscula Después Espacio
Posted: Sat Apr 10, 2021 03:07 PM

Excelente muchas gracias a todos por la ayuda :D

Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 990
Joined: Wed Oct 19, 2005 02:17 PM
Re: Primera Letra Mayúscula Después Espacio Capital *Solucionado
Posted: Sat Apr 10, 2021 04:56 PM
Buenas !

Como dice Cristobal quizás con la función TokenUpper() de Harbour sea suficiente.
https://harbour.github.io/doc/hbct.html#tokenupper

Saludos,

Continue the discussion