Página 1 de 2
Ajuda com substituição de caracteres!
Enviado: 08 Mar 2010 11:38
por trooper7
Olá pessoal, bom dia!
Sou novo, mas muito novo mesmo no mundo do Clipper. Mas aos trancos e barrancos estou tentando aprender! rs
Bom, possuo um programa de cadastro de Clientes e Fornecedores.
Preciso alterar este cadastro por inteiro, e o primeiro passo é tirar todos os caracteres que podem conter nos campos de CPF, CNPJ e outros. (ponto, vírgula, barra)
Na minha antiga empresa, usavamos Linux, e para fazer essa substituição, usavamos a seguinte função:
Código: Selecionar todos
function tirast2(xcl)
xc2=charrem("-/\.:;,()",xcl)
return(xc2)
Agora, no entanto, uso apenas o Clipper, e esse esquema do CHARREM não funciona!
Gostaria de saber certinho como posso fazer isso agora.
Agradeço demais pela ajuda!
Abraços!
Segue o código completo:
Código: Selecionar todos
read
if lastkey() # 27
xident=tirast2(fcgc)
if len(xident)=0
xident=tirast2(fcpf)
if len(xident)=0
mensa("Sem identifica‡Æo (CNPJ ou CPF)",3)
return
endif
endif
if len(alltrim(xrazao))>0
bloqueia(5)
replace ident with xident ,;
razao with xrazao ,;
emnfe with xemnfe
unlock
endif
endif
return
*-------------------------------------------------------------------------*
*function tirast2(xcl)
*xc2=charrem("-/\.:;,()",xcl)
*return(xc2)
Re: Ajuda com substituição de caracteres!
Enviado: 08 Mar 2010 12:46
por alxsts
Olá!
Use a função StrTran() do Clipper:
Código: Selecionar todos
Function Tirast2( cString )
Local cTemp
cTemp := StrTran( cString, "-", "" )
cTemp := StrTran( cTemp, ".", "" )
cTemp := StrTran( cTemp, "/", "" )
cTemp := StrTran( cTemp, "\", "" )
cTemp := StrTran( cTemp, ";", "" )
cTemp := StrTran( cTemp, ":", "" )
cTemp := StrTran( cTemp, "(", "" )
cTemp := StrTran( cTemp, ")", "" )
Return cTemp
Ajuda com substituição de caracteres!
Enviado: 08 Mar 2010 12:48
por Pablo César
A função CHARREM() funciona em Clipper se incluir a biblioteca CT.LIB na compilação da sua aplicação a sintaxe é a mesma.
Re: Ajuda com substituição de caracteres!
Enviado: 08 Mar 2010 14:07
por alxsts
Olá!
Interessante. Essa eu não conhecia. Então, se estivermos usando o modo protegido, deveremos usar a CTP.Lib.
Re: Ajuda com substituição de caracteres!
Enviado: 08 Mar 2010 14:17
por trooper7
Opa, maravilha alxsts!
Vou tentar desse jeito!
Eu preciso substituir alguma coisa na hora de passar para o programa, por exemplo onde está "cString" ali?
Ou posso colocar desse jeito mesmo?
Peço mil desculpas pela certa ignorância, mas aos poucos eu vou aprendendo.
E Pablo, boa dica de adicionar a lib, qualquer coisa eu fuço em cima disso depois!
Agradeço muito pela ajuda galera! Vocês são 10! :)Pos
[]'s
Re: Ajuda com substituição de caracteres!
Enviado: 08 Mar 2010 14:51
por alxsts
Olá!
Com a dica do Pablo, esqueça a função que escrevi e utilize diretamente a função CharRem() da CT.Lib (ou CTP.Lib se estiver gerando o teu executável em modo protegido, com BLinker)). Não esqueça de
linkeditar com a lib citada.
Código: Selecionar todos
read
if lastkey() # 27
// xident=tirast2(fcgc) ------------------------------
xident := CharRem( ".-/", hum->cpf_cgc )
//--------------------------------------------------------
if len(xident)=0
// xident=tirast2(fcpf) -----------------------------
xident := CharRem( ".-/", hum->cpf_cpf )
//--------------------------------------------------------
if len(xident)=0
mensa("Sem identifica‡Æo (CNPJ ou CPF)",3)
return
endif
endif
if len(alltrim(xrazao))>0
bloqueia(5)
replace ident with xident ,;
razao with xrazao ,;
emnfe with xemnfe
unlock
endif
endif
return
*-------------------------------------------------------------------------*
Depois você paga o chopp no Pinguim...
Re: Ajuda com substituição de caracteres!
Enviado: 08 Mar 2010 15:10
por trooper7
kkk
Maravilha Alex!
Pago o chopp e uma caneca do Pinguim de brinde! Só escolher uma a seu gosto! kkk
Tá perfeito, vou tentar desse modo.
Agora, como eu uso ou adiciono a CT.LIB ao RTLINK? Não entendo muito bem dessas libs e coisa e tal, aliás não entendo muito bem de nada! rs
Mas graças a vocês, estou aprendendo cada vez mais!
Abraços e muito obrigado!
Re: Ajuda com substituição de caracteres!
Enviado: 08 Mar 2010 15:22
por alxsts
Olá!
Como você mencionou o RTlink, mostra que está gerando o executável através dele e, portanto, no modo real e não no protegido.
Não sei se você usa scripts para o RMAKE (.RMK e .LNK) ou se usa um batch de compilação. De qualquer forma, você terá que mencionar a CT.LIB no lugar onde executa o RTLINK.
Código: Selecionar todos
Exemplo batch:
RTLink File prog1, prog2, progn Lib CT.LIB
Exemplo .LNK:
File prog1
File prog2
File progn
Lib CT.LIB
A CT.Lib deverá estar numa pasta mapeada pelo SET LIB=<dir> ativo, geralmente napasta C:\Clipper5\Lib.
Depois escolho a caneca...
Re: Ajuda com substituição de caracteres!
Enviado: 08 Mar 2010 20:02
por rochinha
Amiguinhos,
Ou este forum é eficiente ou tem muita gente sem ter o que fazer. Duvida postada as 10:00 e trocentas respostas nas 3 horas posteriores.
Bom esta da Catools nem eu sabia, mas como sempre gostamos de usar nossas criações muitas vezes criamos funções com as mesmas características, lógico que sem o Pedigree.
Fazendo um teste com Harbour percebi que a mesma existe e funciona, mas não consegui visualizá-la na CT.LIB.
Re: Ajuda com substituição de caracteres!
Enviado: 09 Mar 2010 18:07
por rubens
Virou vício Rochinha.... quantas vezes já me peguei ao abrir o navegador digitando
www.pctoledo.com.br ....
Abraços...
Re: Ajuda com substituição de caracteres!
Enviado: 10 Mar 2010 15:22
por trooper7
kkk
Realmente
rochinha, sem dúvida, este fórum é muito eficiente!
O
alxsts deu uma solução boa para o meu problema, mas tem um "porém" nisso ai.
O programa que eu estou desenvolvendo será utilizado em multi-plataforma, ou seja, rodará no Linux, Windows etc.
Então, a idéia de usar as libs não seria muito interessante para o meu caso, já que eu precisaria transportá-las para cada plataforma em que o programa fosse rodar, sem contar umas outras divergências que me falaram a respeito!
Por isso o esquema mesmo é fazer na unha, como sempre! rs
Estou tentando elaborar uma função aqui, mas para se ter uma idéia, eu não consigo nem explicá-la direito para que vocês possam me ajudar com ela! Tá feia a coisa! :(Neg kkk
Vou tentando e assim que funfar, posto o resultado!
E mais uma vez, valeu mesmo pela ajuda galera, vocês são demais!
Grande abraço a todos!
Re: Ajuda com substituição de caracteres!
Enviado: 10 Mar 2010 15:50
por alxsts
Olá!
Se não estou enganado, um executável Clipper não roda em Linux/Unix.
Penso que você terá que migrar para Harbour ou Harbour. Mas, como não é a minha praia, aguardemos as opiniões dos demais colegas.
Re: Ajuda com substituição de caracteres!
Enviado: 10 Mar 2010 16:28
por trooper7
Opa, fala Alex!
Então cara, é exatamente isso!
Migraremos para o xHarbour sim, fazendo com que todo o sistema rode em plataforma de operação Linux e em cada usuário será instalado um terminal PuTTY, rodando o sistema!
É um método muito melhor e mais prático que eu já fazia na minha antiga empresa, pois além do sistema operar em uma velocidade 10x maior, a manutenção do mesmo fica muito mais prática, rápida e eficaz!
Qual programador, principalmente em Clipper, já não teve que ligar de ramal em ramal na empresa toda, pedir para que todos usuários saia do sistema e AI ASSIM, dar a manutenção devida! kkkkkkkkkk
É triste!
Mas beleza, é isso ae Alex, valeu pela força amigão! :)Pos
Grande abraço!
Re: Ajuda com substituição de caracteres!
Enviado: 10 Mar 2010 17:32
por alxsts
Olá!
Beleza Thiago. Então pode usar a função CharRem() do xHarbour.
Grande abraço e disponha dos amigos do Fórum.
Ajuda com substituição de caracteres!
Enviado: 11 Mar 2010 00:41
por Pablo César
Quê bom que a minha informação serviu para informar sobre o CHARREM() e que o Harbour herdou das bibliotecas do Clipper. Desculpem se saio do tema um pouquinha, mas como o colega comentou...
Rochinha escreveu:Ou este forum é eficiente ou tem muita gente sem ter o que fazer.
Por natureza, este fórum é nota 10 ! E fica melhor ainda com a participação de todos. Claro que as vezes um tem mais tempo que outro, mas sempre é um prazer poder ajudar a um colega. Muitas vezes ao ajudar surgem soluções para algo que tínhamos abandonado há muito tempo. Desafios são muito normais na nossa linguagem e aliado a um site como este, só podemos dizer que aqui tem café dentro do bule.... hihihi