Página 1 de 1
eliminar caracteres de campos
Enviado: 28 Mai 2007 08:43
por matrix
pessoal,
preciso importar um campo de outro DBF e preciso eliminar caracteres "letras", e impoortar somente os numeros tipo.
EX: DI52F45 -> 5245
o q me sugerem a fazer??
abraços.
Enviado: 28 Mai 2007 08:49
por Dércio_Luiz_Zanatta
Ola...
Eu tentaria assim...
Vcampo:="DI5F45"
I:=1
Vstring:=""
DO WHILE I<=LEN(VCAMPO)
If IsDigit(Substr(Vcampo,i,1))
Vstring:=Vstring+Substr(Vcampo,i,1)
Endif
I+=1
Enddo
..
Um grande abraço...
Enviado: 28 Mai 2007 13:38
por Pablo César
Tem usuário que a inteiração com o programador, é coisa de extrema urgência. Já me ví na situação que no campo nome de cliente, estava também número protocolo, celular, etc... era mais fácil ele se pronunciar e colocar os dados no devido campo. Também ocorre quando pegamos sistema de outros que não foram muito bem projetados... Então eu faço o seguinte:
Para eliminar número:
Para eliminar caracteres da varável VNOM:
Código: Selecionar todos
VSTRING:=""
FOR I=33 TO 255
IF !(I>47 .AND. I<58)
VSTRING:=VSTRING+CHR(I)
ENDIF
NEXT
VXCOD:=ALLTRIM(CHARREM(VSTRING,VNOM))
O CAHRREM é muito útil da CT.LIB.
Um clip-abraço :)Pos
Enviado: 28 Mai 2007 18:12
por Eolo
(atenção: EDITADO conforme observação do Dr. Spock, a seguir)
Dá pra fazer mais simples e fácil de "ver":
Código: Selecionar todos
variavel="DI52F45"
numeros=""
outros=""
y=len(variavel)
for x=1 to y
a=substr(variavel,x,1)
if a$"1234567890"
numeros=numeros+a
else
outros=outros+a
endi
next
?numeros=>"5245"
?outros -> "DIF"
Complementando...
Enviado: 28 Mai 2007 23:33
por Dr_Spock
- So complementando o exemplo postado pelo Vo Eolo, faltou a linha com a definicao da variavel "a".
variavel="DI52F45"
numeros=""
outros=""
for x=1 to len(variavel)
a = substr(variavel,x,1) && essa variavel nao estava definida
if a $ "1234567890"
numeros = numeros + a && agora ela pode ser concatenada.
else
outros = outros + a
endif
next x
?numeros=>"5245"
?outros -> "DIF"
- Clip_abraco a todos :)Pos