Primera Letra Mayúscula Después Espacio Capital *Solucionado

Primera Letra Mayúscula Después Espacio Capital *Solucionado

Postby leandro » 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: Select all  Expand view  RUN

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

De antemano gracias
Last edited by leandro on Sat Apr 10, 2021 3:08 pm, edited 1 time in total.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Función Primera Letra Mayúscula Después Espacio

Postby cnavarro » 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: Select all  Expand view  RUN

#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
User avatar
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Función Primera Letra Mayúscula Después Espacio

Postby karinha » Sat Apr 10, 2021 1:56 pm

Code: Select all  Expand view  RUN

// 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
User avatar
karinha
 
Posts: 7872
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Función Primera Letra Mayúscula Después Espacio

Postby MGA » Sat Apr 10, 2021 2: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
MGA
 
Posts: 1254
Joined: Mon Feb 25, 2008 2:54 pm
Location: Brasil/PR/Maringá

Re: Función Primera Letra Mayúscula Después Espacio

Postby leandro » Sat Apr 10, 2021 3: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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Primera Letra Mayúscula Después Espacio Capital *Solucionado

Postby Baxajaun » Sat Apr 10, 2021 4: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,
User avatar
Baxajaun
 
Posts: 968
Joined: Wed Oct 19, 2005 2:17 pm
Location: Gatika. Bizkaia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 23 guests