Página 1 de 1
Transformar campo
Enviado: 26 Jul 2004 14:04
por matrix
Pessoal tenho o campo assim gravado (999)999-9999, estou me perdendo na eliminação dos parenteses e do ífem, tem que ficar 9999999999.
Agradeço
Substituir/eliminar caracteres...
Enviado: 26 Jul 2004 14:15
por gransoft
ARAGUARI-MG, 26 de julho de 2004.
Prezado matrix,
Sugestão:
Código: Selecionar todos
*** FUNCTION PARA SUBSTITUIR/ELIMINAR CARACTERES ***
FUNCTION Troca(cVar)
cVar := ALLTRIM(UPPER(cVar))
cC := " -/.()" && 6
FOR nI := 1 TO LEN(cC)
nTam := LEN(ALLTRIM(cVar))
FOR nJ := 1 TO nTam
nAchou := AT(SUBSTR(cC,nI,1),cVar)
IF (nAchou > 0)
cVar := STUFF(cVar,nAchou,1,"")
END
NEXT
NEXT
RETURN(cVar)
***
Atenciosamente,
Janis Peters Grants.
http://www.gransoft.com.br
gransoft@zipmail.com.br
se interesar
Enviado: 26 Jul 2004 18:26
por tonyx
FUNCTION DEL_PONTO(ARQ1,TAMANHO)
PRIVATE TAM_ARQ,TEM_PONTO,I,POS
ARQ1:= ALLTRIM(ARQ1)
TAM_ARQ:= LEN(ARQ1)
TEM_PONTO:= .T.
DO WHILE TEM_PONTO
TEM_PONTO:= .F.
FOR I:= 1 TO TAM_ARQ
IF ! (SUBSTR(ARQ1,I,1) $ ('0123456789'))
POS:= I
TEM_PONTO:= .T.
I:= TAM_ARQ + 100
ENDIF
NEXT
IF TEM_PONTO
TAM_REST = (TAM_ARQ-(POS+1))+1
ARQ1 = SUBSTR(ARQ1,1,POS-1)+SUBSTR(ARQ1,POS+1,TAM_REST)
TAM_ARQ = LEN(ARQ1)
ENDIF
ENDDO
ARQ1 = STRZERO(VAL(ARQ1),TAMANHO)
RETURN(ARQ1)
*---------------------
FUNCTION DEL_PONTO2(ARQ1,TAMANHO)
LOCAL TAM_ARQ,TEM_PONTO,POS,TAM,I,PARTE_1,PARTE_2
ARQ1:= LTRIM(RTRIM(ARQ1))
TAM_ARQ:= LEN(ARQ1)
TEM_PONTO:= .T.
DO WHILE TEM_PONTO
TEM_PONTO:= .F.
FOR I:= 1 TO TAM_ARQ
IF ! (SUBSTR(ARQ1,I,1) $ (' 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'))
POS:= I
TEM_PONTO:= .T.
I:= TAM_ARQ + 100
ENDIF
NEXT
IF TEM_PONTO
TAM_REST = (TAM_ARQ - (POS + 1) ) + 1
ARQ1 = SUBSTR(ARQ1,1,POS - 1)+' '+ALLTRIM(SUBSTR(ARQ1,POS + 1,TAM_REST))
TAM_ARQ = LEN(ARQ1)
ENDIF
ENDDO
TAM:= LEN(RTRIM(LTRIM(ARQ1)))
IF TAM < TAMANHO
ARQ1 = RTRIM(LTRIM(ARQ1))+SPACE(TAMANHO - TAM)
ENDIF
RETURN(ARQ1)
*---------------------
FUNCTION DEL_PONTO3(ARQ1,TAMANHO)
PRIVATE TAM_ARQ,TEM_PONTO,I,POS
ARQ1:= ALLTRIM(ARQ1)
TAM_ARQ:= LEN(ARQ1)
TEM_PONTO:= .T.
DO WHILE TEM_PONTO
TEM_PONTO:= .F.
FOR I:= 1 TO TAM_ARQ
IF ! (SUBSTR(ARQ1,I,1) $ ('0123456789'))
POS:= I
TEM_PONTO:= .T.
I:= TAM_ARQ + 100
ENDIF
NEXT
IF TEM_PONTO
TAM_REST = (TAM_ARQ-(POS+1))+1
ARQ1 = SUBSTR(ARQ1,1,POS-1)+SUBSTR(ARQ1,POS+1,TAM_REST)
TAM_ARQ = LEN(ARQ1)
ENDIF
ENDDO
RETURN(ARQ1)
*-----------------------
Enviado: 26 Jul 2004 20:35
por Dudu_XBase
Somente pra conhecimento de todos...
Tem uma função na catools q faz isso... chama charrem() ...
Código: Selecionar todos
cVar := "(999)9999-9999"
// 1º parametro sequencia de strings q vc qr rancar fora...
// 2º parametro string a ser limpa...rs..
cVar := charrem("()-",cVar)
[/size]
[/color]