Converter a primeira letra para maiuscula de um nome
Moderador: Moderadores
Converter a primeira letra para maiuscula de um nome
Pessoal,
Existe alguma função postada aqui no fórum que transforme um nome onde a primeira silaba seja caixa alta?
Exemplo:
jose maria dos santos
Jose Maria dos Santos
Existe alguma função postada aqui no fórum que transforme um nome onde a primeira silaba seja caixa alta?
Exemplo:
jose maria dos santos
Jose Maria dos Santos
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Converter a primeira letra para maiuscula de um nome
Olá!
Saudações,
Itamar M. Lins Jr.
Código: Selecionar todos
itamar@itamar-desktop:~/fontes/exemplos$ hbmk2 captular.prg hbct.hbcCódigo: Selecionar todos
REQUEST HB_CODEPAGE_UTF8EX
function main
hb_cdpSelect("UTF8EX")
cString:= Lower("josÉ marIA dos saNtos")
alert(TokenUpper(cString))
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
Converter a primeira letra para maiuscula de um nome
IniCap fez certinho Jose Maria dos Santos
Usando TokenUpper tive que fazer lower na string e o resultado foi próximo Jose Maria Dos Santos, o Dos foi o problema
Usando TokenUpper tive que fazer lower na string e o resultado foi próximo Jose Maria Dos Santos, o Dos foi o problema
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Converter a primeira letra para maiuscula de um nome
Olá!
Tem gente que usa "Dos" outros preferem "dos"
A que passei usa "Dos", prefiro assim.
initcap() tem:
07 If Valtype( cString ) == "C"
08 cString := Lower( AllTrim( cString ) )
Saudações,
Itamar M. Lins Jr.
Tem gente que usa "Dos" outros preferem "dos"
A que passei usa "Dos", prefiro assim.
initcap() tem:
07 If Valtype( cString ) == "C"
08 cString := Lower( AllTrim( cString ) )
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
Converter a primeira letra para maiuscula de um nome
Uso essa rotina que foi desenvolvida pelo Mestre Quintas.
Código: Selecionar todos
Function fPrimeiramaiuscula(cString)
Local cChar, cRet:= [], lStatus:= .T., aString:= {[ Do ], [ Dos ], [ Da ], [ Das ], [ De ], [ E ], [ Del ], [ Ii ], [ É ]}
HB_SETCODEPAGE([PTISO])
For EACH cChar In cString
cRet+= Iif(lStatus, Upper(cChar), Lower(cChar))
lStatus:= (cChar == [ ])
Next
For EACH cChar In aString
If cChar $ cRet
cRet:= Stuff(cRet, At(cChar, cRet), Len(cChar), Lower(cChar))
Endif
Next
HB_SETCODEPAGE([PT850])
Return (Alltrim(cRet))
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Converter a primeira letra para maiuscula de um nome
Nem lembro disso....
Eu mudaria o nome de aString pra aList, pra não confundir com cString.
E o FOR/EACH
Assim altera a própria string, alterando só as letras que precisar.
Precisa testar, já que é um uso diferente, e não faz parte do meu dia a dia.
Mas só trocar essa parte pelo TokenUpper do Itamar.
Eu mudaria o nome de aString pra aList, pra não confundir com cString.
E o FOR/EACH
Código: Selecionar todos
FOR EACH cChar IN @cString
IF lToUpper
cChar := Upper( cChar )
ENDIF
lToUpper := ( cChar == " " )
NEXT
Precisa testar, já que é um uso diferente, e não faz parte do meu dia a dia.
Mas só trocar essa parte pelo TokenUpper do Itamar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
