Página 1 de 1

Manipular dados DBF

Enviado: 28 Abr 2010 14:30
por betovox
boa tarde a todos,
nao possuo conhecimento de programação em clipper somente me informatica, mas no meu trabalho exige que tenha conhecimento no banco de dados DBF; por causa de progrmas antigos ainda em DOS.
Entao hoje aconteceu o seguinte; no programa os dados de telefone estao assim:
011-1111-1111 outros assim (11)00000000
eu nescessito que fique padronizado no formato:
(00)0000-0000
Tempo atras eu consegui fazer isso com o CPf de clientes que estavam com o mesmo problema usando o DBU mas por infelicidade perdi o .doc onde tinha salvo os passos.
Se alguem puder me ajudar ficaria muito grato.
Utilizo tambem CBDF caso seja possivel nele tambem.
Abraço e muito obrigado pela atenção de todos.
Humberto oliveira.

Re: Manipular dados DBF

Enviado: 28 Abr 2010 14:57
por gvc
Faça uma cópia do arquivo atual, por segurança.
Entre no DBU.
Selecione o arquivo em questão.
Aperte o ESC para fechar o browse.
Aperte a tecla F6.
Selecione a opção REPLACE.
Selecione o campo que vc quer trabalhar.
Ele vai aparecer em FIELD.
Em WITH escreve: strtran(<nome do campo>, '-')
Vá até a opção OK e aperte o ENTER.
(Isso irá tirar o sinal de menos do campo)

Use o mesmo para tirar ( e ) do campo.

Para colocar todos formatados, use:

Aperte a tecla F6.
Selecione a opção REPLACE.
Selecione o campo que vc quer trabalhar.
Ele vai aparecer em FIELD.
Em WITH escreve: transforme(<nome do campo>, '@R (99) 9999-9999')
Vá até a opção OK e aperte o ENTER.

Verifique se atendeu a sua necessidade.
Lembrando que vc poderá ter problema com o DDD de alguns lançamentos.

Boa sorte. Espero ter ajudado.

Re: Manipular dados DBF

Enviado: 28 Abr 2010 16:41
por betovox
boa tarde GVC,
funcionou sim ate a parte:
"Em WITH escreve: transforme(<nome do campo>, '@R (99) 9999-9999')
Vá até a opção OK e aperte o ENTER."
deu erro de expressao.
os outros comandos foram 100%, so esse transforme que nao deu certo.
mas eu me lembro de ter que copiar campos de 3 a 3 no formato cpf.
mas era mais simples tinha colocado o cpf no campo isento dai ficou mais facil, esse caso agora esta mais complicado mesmo.
Abraço e muito obrigado pela informação dada e se puder me auxiliar na parte restante agradeço.
Humberto

Re: Manipular dados DBF

Enviado: 28 Abr 2010 18:08
por alxsts
Olá!

Não funcionou pois o colega GVC, sem querer, digitou Transforme ao invés de Transform.

Segundo o exemplo dado pelo Humberto, os dados não estão num padrão. Ora temos "011-1234-5678", ora temos "11-1234-5678".
Assim, após o

Código: Selecionar todos

StrTran( cVar, "-", "" )
teremos dados de comprimentos diferentes. Então, sugiro que o Transform seja assim:

Código: Selecionar todos

Transform( VAL( cVar ), "@R (99) 9999-9999" )
,

Re: Manipular dados DBF

Enviado: 28 Abr 2010 18:12
por alxsts
Olá!

Em tempo: seja bem-vindo ao fórum Humberto!

Você pediu a máscara (31)1234-5678. Então, retifico o comando:

Código: Selecionar todos

Transform( VAL( cVar ), "@R (99)9999-9999" )

Re: Manipular dados DBF

Enviado: 29 Abr 2010 10:02
por betovox
bom dia a todos,
primeiramente muito obrigado a todos.
esta indo tudo bem com o:
strtran(<nome do campo>, '-') e tambem da mesma forma com o StrTran( cVar, "-", "" ), retirei todos os "-", ".", "(", ")", e espaços no campo fone.
Mas o comando: Transform( VAL( cVar ), "@R (99) 9999-9999" ) nao esta funcionando dando o seguinte erro:
Imagem
desde ja muito obrigado novamente.
Humberto oliveira

Re: Manipular dados DBF

Enviado: 29 Abr 2010 10:32
por alxsts
Olá!

Humberto:
aparentemente você apenas colou o exemplo de código que postei. Troque a variável exemplo que coloquei (cVar) pelo nome do campo que você precisa alterar (creio que seja o campo FONE).

Código: Selecionar todos

Transform( VAL( FONE ), "@R (99)9999-9999" )

Re: Manipular dados DBF

Enviado: 29 Abr 2010 10:48
por gvc
alxsts escreveu:Não funcionou pois o colega GVC, sem querer, digitou Transforme ao invés de Transform.
Ops! Faglia Nostra!

[alxsts]
StrTran( cVar, "-", "" ) = StrTran( cVar, "-")
Se vc não colocar o 3º parâmetro, será removido o ceracter selecionado no 2º parâmetro.

Re: Manipular dados DBF

Enviado: 29 Abr 2010 11:30
por alxsts
Olá!

Funciona sim, tenho certeza.

Re: Manipular dados DBF

Enviado: 29 Abr 2010 12:49
por betovox
Boa tarde a todos,
o meu muito obrigado a todos pela atenção, funcionou 100% aqui.
Me desculpe pelo erro de interpretação nos codigos enviados com relação ao (cVar), é que realmente nao sabia do que se tratava.
Novamente muito obrigado pela ajuda.
Humberto oliveira.
Ps.: caso o moderador quiser retirar esse topico fique a vontade porque solucionou totalmente minha duvida.

Re: Manipular dados DBF

Enviado: 29 Abr 2010 14:46
por gvc
[betovox]
O moderador não vai retirar seu tópico do forum.
É uma informação que ficará disponível para outros membros do forum, para consulta futura.
alxsts escreveu:Funciona sim, tenho certeza.
Se vc esta falando de colocar ou não o 3º parâmetro, eu falei que não é necessário colocar. A função vai remover o caracter da mesma forma que usando o que vc apresentou.

Re: Manipular dados DBF

Enviado: 29 Abr 2010 16:21
por alxsts
Olá!

GVC:
eu quis dizer que você está certo, que concordo com o que você escreveu. O terceiro parâmetro realmente é opcional e, se omitido, não há substituição e sim remoção do caracter informado no segundo parâmetro.

Humberto:
reforçando o que o GVC escreveu, o fórum é um grande repositório de informações, sobre diversos assuntos, que pode ser acessado internamente, através de seu recurso de busca ou por um buscador como o Google.