Página 1 de 1

Atualizar prefixo de telefone em lote

Enviado: 29 Set 2004 11:12
por kristo
Olá pessoal, alguém pode informar pra mim, como posso acrescentar nessa rotina, um modo de atualizar os prefixos dos telefones em lotes..

CLEAR
*
cAnt := "286"
cNovo := "3286"
*
USE FISICO
GOTO TOP
*
WHILE (.NOT. EOF())
IF SUBSTR(FONE,1,3)==cAnt
cFone := STUFF(FONE,1,3,cNovo)
? FONE, cFone
REPLACE FONE WITH cFone
END
SKIP
END
QUIT


Ex. eu indicar vários prefixos antigos e vários prefixos novos relacionados aos antigos....fazer com que a rotina leia e deduza se for tal, mudar para tal, se não achar tal tentar o proximo e assim por diante !!

fico no aguardo

Obrigado

Enviado: 29 Set 2004 13:09
por Dudu_XBase
use uma matriz assim ficará assim...

// matriz contendo os prefixos a serem alterados
aPrefixo := {}

// primeiro lote
aadd(aPrefixo,{"286","3286"}
// segundo lote de exemplo
aadd(aPrefixo,{"256","3256"}

// veja q quando adiciono na matriz a primeira posição é o prefixo antigo e a segunda novo...

USE FISICO
GOTO TOP

WHILE (.NOT. EOF())
// localizo na matriz dos prefixos novos realizando uma pesquisa
// na matriz
npos := ascan(aPrefixo,{|x|,x[1]=SUBSTR(FONE,1,3)})

// localizado prefixo para alteração
IF nPos > 0
cFone := STUFF(FONE,1,3,aPrefixo[nPos,2])
? FONE, cFone
REPLACE FONE WITH cFone
END
SKIP
END
QUIT