FoxPro/Visual FoxPro - extraer digito

 
Vista:

extraer digito

Publicado por miriam (67 intervenciones) el 30/07/2007 18:05:10
Hola a todos tengo una duda ojala q me puedan ayudar, necesito extraer digitos de una cadena por ejemplo: cadena=12547 y extraer el primer digito el segundo y asi sucesivamente para realizar operaciones con cada uno.

Espero y me puedan ayudar gracias,

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:extraer digito

Publicado por fporras (58 intervenciones) el 30/07/2007 18:18:31
Miriam:
utiliza el comando subs(caracter,num,num) , esto funciona solo con caracteres, si tu variable es numerica tendras que convertirlo a caracter

por ejemplo si tenes cadena='12547' y deseas tomar los primeros dos digitos el commando sera

subs(cadena,1,2) o sea extraer de la variable o campo cadena de la posicion 1 , 2 caracteres hacia la derecha.

si deseas tomar solo el cuarto digito la instruccion sera..
subs(cadena,4,1)

Espero y esto te sirva par lo que necesitas..

saludos

Fernando Porras
El Salvador
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:extraer digito

Publicado por lhogan (2 intervenciones) el 08/08/2007 04:07:10
cadena='12547'
x = leng(cadena)
array(1,x)

for i=1 to x
array(1,i) = Str(cadena,i,1)
endfor

y asi podras manipulas cada valor dentro de tu matrix
y hacer con lo que tu quieras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:extraer digito

Publicado por MarteTeam (1 intervención) el 28/02/2016 00:53:39
Por si les interesa esta es otro variacion de lo que ya han propuesto.

1
2
3
4
5
6
7
clear
cadena='TIP-9811'
FOR i=1 TO 6
a=VAL(SUBS(cadena,5,5))+i
b=alltrim('TIP-'+ALLTRIM(STR(a)))
?b
endfor

En esta limpio la pantalla y luego declaro la variable cadena='TIP-9811', utilizo un FOR para que haga en a la variable i=1 hasta el valor de 6.

Le asigno a la variable a=VAL(SUBS(cadena,5,5))+i, esto extraera con a funcion SUBS los ultimos 4 digitos y la funcion VAL tomara esa cadena obtenida de numeros y los convertira en un valor numerico para luego sumarle el valor numerico de i.

En la variable b usamos la funcion alltrim para obtener de la funcion STR la nueva cadena sin espacios antes del numero y asi poner sumarle la cadena TIP- y poder crear los siguientes resultados:

TIP-9812
TIP-9813
TIP-9814
TIP-9815
TIP-9816
TIP-9817
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de José Luis Plata Garrido

extraer digito

Publicado por José Luis Plata Garrido (16 intervenciones) el 29/02/2016 00:50:27
Hola Miriam:

Dado que deseas realizar operaciones con los elementos de la cadena, también puedes realizar lo siguiente:

1
2
3
4
5
6
7
Dimension Nums(6)
Cadena = "86516"
X = 0
For X = 1 to 6
   Nums(X) = Val(Substr(Cadena,X,1))
   ?Nums(X)
EndFor

De está forma, todos los elementos de la cadena son numéricos, y puedes realizar las operaciones que desees con ellos.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar