Página 1 de 1

Retirar hifen e pontos do banco de dados

Enviado: 19 Ago 2008 09:29
por gilsonpaulo
Bom dia a todos.

É o sequinte, assumi um sistema onde no cadastro de clientes os campos cpf e cnpf (que são o mesmo campo) não possuem mascara, a digitação é livre, no cpf ou cnpf eram digitados os pontos e hifens, e gravados desta forma no banco de dados, estou querendo retirar esses pontos e hifens do registros ja gravados, para aplicar filtros, só não sei como proceder.

No banco existem registros cadastrados de varias formas, com ou sem hifens e pontos. ex:

032.954.599-55
03295459955
75.138.599/0001-88
75138599000188

Desde já agradeço qualquer ajuda.

Re: Retirar hifen e pontos do banco de dados

Enviado: 19 Ago 2008 09:48
por MARCELOG
...
Use dbf

dbgotop()

for i:=1 to lastrec()

cNovo := strtran(fieldget(numerodocampo),'.') // tira o .
cNovo := strtran(cNovo,'-') // tira o -
cNovo := strtran(cNovo,'/') // tira a /
fieldtput(numerodocampo,cNovo)
dbcommit()

next i

É mais ou menos isso.

MarceloG

Re: Retirar hifen e pontos do banco de dados

Enviado: 19 Ago 2008 09:58
por gvc
Sendo um pouco chato:

Use dbf alias hum

Código: Selecionar todos

dbgotop()
while !eof()
   campo := hum->cpf_cgc // Coloque aqui o campo que contém o CPF/CNPJ
   campo := strtran(campo, '.') // tira o .
   campo := strtran(campo, '-') // tira o -
   campo := strtran(campo, '/') // tira a /
   hum->cpf_cgc := campo // Coloque aqui o campo que contém o CPF/CNPJ
   dbskip()
end

dbcommit()

Re: Retirar hifen e pontos do banco de dados

Enviado: 19 Ago 2008 10:06
por Maligno
Sendo mais chato ainda... :)

Código: Selecionar todos

use dbf alias hum
while !eof()
   hum->cpf_cgc := strtran(strtran(strtran(hum->cpf_cgc, '.'),"-"),"/")
   dbskip()
end
dbcommit()
Nem precisaria postar código algum. É só varrer o DBF com uma função que remova os caracteres indesejáveis em CPF, CNPJ, IE e o que mais for. Seja da forma que for, já que este programa será usado uma vez só.

Re: Retirar hifen e pontos do banco de dados

Enviado: 19 Ago 2008 15:31
por vagucs
O chato dos chatos

Código: Selecionar todos

use dbf alias hum
dbeval({||hum->cpf_cgc := strtran(strtran(strtran(hum->cpf_cgc, '.'),"-"),"/")})
dbcommit()

Enviado: 19 Ago 2008 16:23
por Maligno
Até tinha pensado no dbEval(), mas normalmente onde há CPF, há CNPJ e IE também. Se fosse embolar tudo num bloco de código ficaria uma "salada" e aumentaria a chance de ocorrer erro. Por precaução acho melhor usar um código mais "convencional". Mas por dbEval() também dá, claro. :)

Retirar hifen e pontos do banco de dados

Enviado: 19 Ago 2008 19:36
por Pablo César
Não que eu queira levar o crédito do mais chato de todos... mas gostaria de contribuir com mais uma forma:

Código: Selecionar todos

use dbf alias hum
dbeval({||hum->cpf_cgc := CHARREM(".-/",(hum->cpf_cgc))})
dbcommit()
A função CHARREM() é da CT.LIB.
O fórum tem isso... opiniões diversas que sem dúvida alguma só enriquecemos com isso.

Re: Retirar hifen e pontos do banco de dados

Enviado: 20 Ago 2008 08:49
por gilsonpaulo
Valeu turma, usei a dica do sendo mais chato ainda e funcionou.

Obrigado.

Re: Retirar hifen e pontos do banco de dados

Enviado: 20 Ago 2008 09:57
por gvc
[Pablo]
O CHARREM eu não conhecia.
Falta de conhecimento.
Mas já verifiquei que o xHarbour tem essa função.
Valeu pela dica.

Re: Retirar hifen e pontos do banco de dados

Enviado: 22 Ago 2008 08:12
por Toledo
[Nota de Moderação] Diante de tantos exemplos, este tópico já foi mais do que respondido, como o próprio Gilson já falou em sua mensagem acima. As demais mensagens que estavam neste tópico foram excluídas e enviadas para a seção Bate Papo como desvio de assunto.

Abraços,