Página 1 de 1

PRECISO DE AJUDA COM PRG

Enviado: 22 Fev 2008 08:50
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)

Enviado: 22 Fev 2008 09:55
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...

Enviado: 22 Fev 2008 09:58
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

Enviado: 22 Fev 2008 14:44
por kristo
Obrigado amigos, mais uma vez vocês não deixaram o Cristo ser crucificado.


Obrigado a todos