PRECISO DE AJUDA COM PRG

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

kristo
Usuário Nível 2
Usuário Nível 2
Mensagens: 78
Registrado em: 21 Set 2004 16:19

PRECISO DE AJUDA COM PRG

Mensagem por kristo »

Bom dia caros amigo, novamente venho recorrer a vocês, pois a cuca já está fundindo.
Amigo tenho uma DBF onde existe 6 campos que são eles:
DDD1 | FONE1 | DDD2 | FONE2 | DDD3 | FONE3

so que o campo ddd1,ddd2,ddd3 nunca foram usados pelos digitadores, ou seja, sempre digitaram os ddd's no mesmo campo do fone, mais agora preciso serapar para mandar esses nomes para o call center da empresa, o que eu gostaria era de uma ajudar que lêsse os campos fone1, fone2 e fone3 e onde a rotina achace dados com 10 digitos que os 2 digitos primeiros fossem tranferidos para o campo ddd1,ddd2 e ddd3, e consequentemente apagados do campo fone1,fone2 e fone3,se caso não for encontrado 10 digitos então a rotina não faça nada.
Exemplo:

os campos estão assim:

ddd1.......fone1...........ddd2............fone2.............ddd3.......fone3
..............1436528978....................1498758925..................1478956236


eu gostaria que ficasse assim:

ddd1.........fone1........ddd2.........fone2........ddd3.........fone3
14.............36528978..14............98758925..14.............78956236



Ps. os pontinhos foram apenas para tabular embaixo de cada campo.
não sei se é possível, mais se alguém souber e puder me ajudar, ficarei grato mais uma vez.

O nome da dbf é CADASSO.

Paz a todos.

Ps. estou aprendendo bastante com as dicas que consegui no forum, mais ainda não cheguei ao ponto de fazer uma PRG igual a essa. (grato a todos)
Dércio_Luiz_Zanatta
Usuário Nível 3
Usuário Nível 3
Mensagens: 153
Registrado em: 11 Jan 2006 15:37
Localização: Ibirubá - RS

Mensagem por Dércio_Luiz_Zanatta »

Bom dia..
Eu faria assim

Código: Selecionar todos

select seudbf
goto top
do while !eof()
     If len(alltrim(fone1))=10
        Vfone1:=seudbf->fone1
        replace ddd1  with substr(alltrim(vfone1),1,2)
        replace fone1 with substr(alltrim(vfone1),3,8)
    Endif
     If len(alltrim(fone2))=10
        Vfone2:=seudbf->fone2
        replace ddd2  with substr(alltrim(vfone2),1,2)
        replace fone2 with substr(alltrim(vfone2),3,8)
    Endif
    If len(alltrim(fone3))=10
        Vfone3:=seudbf->fone3
        replace ddd3  with substr(alltrim(vfone3),1,2)
        replace fone3 with substr(alltrim(vfone3),3,8)
    Endif
    skip
enddo
Acho que isso dará certo...
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

Código: Selecionar todos

use cadastro
go top
do while !eof()
   mfone1=alltrim(fone1)
   mfone2=alltrim(fone2)
   mfone3=alltrim(fone3)
   if len(mfone1)=10 .and. empty(ddd1)
      mddd1=subsr(mfone1,1,2)
      mfone1=substr(mfone1,3)
      replace ddd1 with mddd1
      replace fone1 with mfone1
   endif
   if len(mfone2)=10 .and. empty(ddd2)
      mddd2=subsr(mfone2,1,2)
      mfone2=substr(mfone2,3)
      replace ddd2 with mddd2
      replace fone2 with mfone2
   endif
   if len(mfone3)=10 .and. empty(ddd3)
      mddd3=subsr(mfone3,1,2)
      mfone3=substr(mfone3,3)
      replace ddd3 with mddd3
      replace fone3 with mfone3
   endif
   skip
enddo
bem didático

Näo testei, mas se näo funcionar só Cristo salva!!! rsrsrsrs
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
kristo
Usuário Nível 2
Usuário Nível 2
Mensagens: 78
Registrado em: 21 Set 2004 16:19

Mensagem por kristo »

Obrigado amigos, mais uma vez vocês não deixaram o Cristo ser crucificado.


Obrigado a todos
Responder