marcioe Posted November 6, 2015 Report Share Posted November 6, 2015 Amigos, será que algum colega tem alguma função que pegue o texto e transforme e Maiusculo e Minusculo Exemplo a pessoa digitou assim MARCIO EDUARDO queria que Ficasse assim Marcio Eduardo Sem acentos nem nada no banco eu gravo em MAIUSCULO MESMO, mas para fazer contratos a pessoa esta querendo seja assim. Seria algo assim eu passaria a variavel com o Texto Todo e a função faria a troca das lertras. Maiusculo e Minusculo. Se puderem postar. Ronaldbuch 1 Quote Link to comment Share on other sites More sharing options...
jfaguiar Posted November 6, 2015 Report Share Posted November 6, 2015 Use essa minha que dar certo cNAME := SETLOWER( "MARCIO EDUARDO" ) FUNCTION SETLOWER( cNOMEUPPER) LOCAL cCHRANT := cCHAR := " " VARAUX1 := " " FOR _n = 1 TO LEN(cNOMEUPPER) cCHAR := SUBSTR(cNOMEUPPER,_n,1) IF !EMPTY(cCHRANT) VARAUX1 += LOWER(cCHAR) ELSE VARAUX1 += UPPER(cCHAR) ENDIF cCHRANT := cCHAR NEXT RETURN( LTRIM(VARAUX1) ) ************************************************************************************** Quote Link to comment Share on other sites More sharing options...
joaosolution Posted November 6, 2015 Report Share Posted November 6, 2015 Márcio Bom dia cMaiusculo:="" cParte:="" For x:=1 To Len(cTexto) If SubStr(cTexto,x,1)== " " cMaiusculo += Upper(Left(cParte,1))+Lower(SubStr(cParte,2))+" " cParte:="" Else cParte:= SubStr(cTexto,x,1) Endif Next Acho que é isso... Não testei mas é uma coisa bem simples de fazer... Upper() - Letras maiúsculas Lower() - Letras minúsculas Att João Bosco Quote Link to comment Share on other sites More sharing options...
Jmsilva Posted November 10, 2015 Report Share Posted November 10, 2015 Olá Jovem, minha dica é converter para minúscula com a função LOWER() e depois usar TokenUpper() para obter o resultado desejado. cString:= Lower("MARCIO EDUARDO") MsgStop(TokenUpper(cString)) // Marcio Eduardo Jmsilva xHarbour/Harbour/Fivewin jfaguiar 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted November 10, 2015 Report Share Posted November 10, 2015 Excelente idéia <jmsilva>, thanks. #include "FiveWin.ch" #ifdef __HARBOUR__ //#require "hbct" #endif PROCEDURE Main() LOCAL cStr := ".,.This.,.is.,.a.,.test!" ? "Begin test of TokenUpper()" ? " Simple tests:" ? ' TokenUpper( "Hello, world, here I am!" ) == "Hello, World, Here I Am!" ?' ? ' -->', '"' + TokenUpper( "Hello, world, here I am!" ) + '"' ? ' TokenUpper( "Hello, world, here I am!",, 3 ) == "Hello, World, Here I am!" ?' ? ' -->', '"' + TokenUpper( "Hello, world, here I am!",, 3 ) + '"' ? ' TokenUpper( "Hello, world, here I am!", ",", 3 ) == "Hello, world, here I am!" ?' ? ' -->', '"' + TokenUpper( "Hello, world, here I am!", ",", 3 ) + '"' ? ' TokenUpper( "Hello, world, here I am!", " w" ) == "Hello, wOrld, Here I Am!" ?' ? ' -->', '"' + TokenUpper( "Hello, world, here I am!", " w" ) + '"' ? ' Uppercase the tokens in the string', '"' + cStr + '"' ? ' with CSetRef( .T. ) and "@"' CSetRef( .T. ) ? ' --> return value of TokenUpper( @cStr ):', TokenUpper( @cStr ) ? ' --> cStr is now:', '"' + cStr + '"' cStr := Lower("MARCIO EDUARDO") MsgStop(TokenUpper(cStr)) ? "End test of TokenUpper()" RETURN NIL http://pass-sys.be/clp_hb_hmg_cont.php?cont=TOKENUPPER() Quote Link to comment Share on other sites More sharing options...
sambomb Posted November 11, 2015 Report Share Posted November 11, 2015 Só cuidado com os conectivos, exemplo:TokenUpper("samir sardinha soares de abreu") => Samir Sardinha Soares De AbreuTem que passar o 3º parâmetro pelo que o Kapiaba mostrou Quote Link to comment Share on other sites More sharing options...
marcioe Posted October 4, 2019 Author Report Share Posted October 4, 2019 Só cuidado com os conectivos, exemplo: TokenUpper("samir sardinha soares de abreu") => Samir Sardinha Soares De Abreu Tem que passar o 3º parâmetro pelo que o Kapiaba mostrou Está justamente acontecendo o que o Samir disse e não que dar certo, quando os textos tem por exemplo Exemplos Samir Sardinha Soares De Abreu. Juiz De Fora-MG Inter Construtora E Incorporadora Ltda Estou usando assim TokenUpper( Lower( ALLTRIM(locatarios_contrato->LOCNOM)), " w" ) Será que está correto, Acontece justamente isso que ele disse Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 4, 2019 Report Share Posted October 4, 2019 Não pode passar tudo para UPPER? http://forums.fivetechsupport.com/viewtopic.php?f=6&t=32224&p=188957&hilit=lKeyUpper#p188957 Quote Link to comment Share on other sites More sharing options...
marcioe Posted October 4, 2019 Author Report Share Posted October 4, 2019 No meu caso as informaçoes já são gravads com MAIUSCULO, ou seja as informaçoes do banco de dados são tudo maiusculo Quote Link to comment Share on other sites More sharing options...
giovanyvecchi Posted October 4, 2019 Report Share Posted October 4, 2019 Eu fiz uma função ja faz tempo. nem estou usando. mais deve servir 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 !(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 Quote Link to comment Share on other sites More sharing options...
rochinha Posted October 4, 2019 Report Share Posted October 4, 2019 Amiguinhos, PRÁTICA Guardem as informações de forma harmonizada e homogeneizada, ou tudo em maiúsculas ou tudo em minúsculas. Dependendo do motor de busca seja RDD ou SQL, Jose não é JOSE nem José. Ah Rochinha, mas com .DBF eu posso buscar de qualquer jeito que ele encontra. Sim, mas pense quando for passar seus dados para SQL, tais diferenças poderão não retornar o desejado. Apresentem a informação perfumada somente nos impressos ou visões FUNCTION NewCapFirst( string ) declare excesao[7] excesao[1] = " Do " excesao[2] = " Dos " excesao[3] = " Da " excesao[4] = " Das " excesao[5] = " De " excesao[6] = " E " excesao[7] = " Del " novotexto = space(1)+lower(string) fim = len(string) for i = 1 to fim if substr(novotexto,i,1) = " " novotexto = stuff(novotexto,i+1,1,upper(substr(novotexto,i+1,1))) endif next tamanho = len(excesao) for i = 1 to tamanho if excesao[i]$novotexto && tamanho novotexto = stuff(novotexto,AT(excesao[i],novotexto),; len(excesao[i]),lower(excesao[i])) endif next return (ltrim(novotexto)) Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 4, 2019 Report Share Posted October 4, 2019 Veja se acha algo aqui: https://harbour.github.io/doc/hbct.html#tokenupper Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.