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,