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
Transformar campo
Moderador: Moderadores
-
gransoft
- Usuário Nível 3

- Mensagens: 321
- Registrado em: 06 Jul 2004 17:48
- Localização: UBERLÂNDIA-MG
- Contato:
Substituir/eliminar caracteres...
ARAGUARI-MG, 26 de julho de 2004.
Prezado matrix,
Sugestão:
Atenciosamente,
Janis Peters Grants.
http://www.gransoft.com.br
gransoft@zipmail.com.br
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)
***
Janis Peters Grants.
http://www.gransoft.com.br
gransoft@zipmail.com.br
se interesar
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)
*-----------------------
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)
*-----------------------
-
Dudu_XBase
- Membro Master

- Mensagens: 1071
- Registrado em: 25 Ago 2003 16:55
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)
[/color]
________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle