Ajuda com substituição de caracteres!

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

trooper7
Usuário Nível 2
Usuário Nível 2
Mensagens: 53
Registrado em: 19 Fev 2010 12:22
Localização: Ribeirão Preto/SP

Ajuda com substituição de caracteres!

Mensagem 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)
"É comum vermos os homens zombarem do que não podem compreender." (Goethe)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Ajuda com substituição de caracteres!

Mensagem 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
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Ajuda com substituição de caracteres!

Mensagem 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.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Ajuda com substituição de caracteres!

Mensagem por alxsts »

Olá!

Interessante. Essa eu não conhecia. Então, se estivermos usando o modo protegido, deveremos usar a CTP.Lib.
[]´s
Alexandre Santos (AlxSts)
trooper7
Usuário Nível 2
Usuário Nível 2
Mensagens: 53
Registrado em: 19 Fev 2010 12:22
Localização: Ribeirão Preto/SP

Re: Ajuda com substituição de caracteres!

Mensagem 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
"É comum vermos os homens zombarem do que não podem compreender." (Goethe)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Ajuda com substituição de caracteres!

Mensagem 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...
[]´s
Alexandre Santos (AlxSts)
trooper7
Usuário Nível 2
Usuário Nível 2
Mensagens: 53
Registrado em: 19 Fev 2010 12:22
Localização: Ribeirão Preto/SP

Re: Ajuda com substituição de caracteres!

Mensagem 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! :D

Abraços e muito obrigado!
"É comum vermos os homens zombarem do que não podem compreender." (Goethe)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Ajuda com substituição de caracteres!

Mensagem 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...
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Re: Ajuda com substituição de caracteres!

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Re: Ajuda com substituição de caracteres!

Mensagem por rubens »

Virou vício Rochinha.... quantas vezes já me peguei ao abrir o navegador digitando www.pctoledo.com.br ....

Abraços...
"Eu e minha casa servimos ao Senhor e você ???"
trooper7
Usuário Nível 2
Usuário Nível 2
Mensagens: 53
Registrado em: 19 Fev 2010 12:22
Localização: Ribeirão Preto/SP

Re: Ajuda com substituição de caracteres!

Mensagem 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! :D

Grande abraço a todos!
"É comum vermos os homens zombarem do que não podem compreender." (Goethe)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Ajuda com substituição de caracteres!

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
trooper7
Usuário Nível 2
Usuário Nível 2
Mensagens: 53
Registrado em: 19 Fev 2010 12:22
Localização: Ribeirão Preto/SP

Re: Ajuda com substituição de caracteres!

Mensagem 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!
"É comum vermos os homens zombarem do que não podem compreender." (Goethe)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Ajuda com substituição de caracteres!

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Ajuda com substituição de caracteres!

Mensagem 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
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Responder