FoxPro/Visual FoxPro - extraer numeros de un textbox

 
Vista:
sin imagen de perfil

extraer numeros de un textbox

Publicado por lorena (14 intervenciones) el 04/06/2015 03:07:53
Quisera saber como puedo hacer para sacar los numeros que contenga un editbox y pasarlos a variables
para extraer datos de un archivo . Ej : me envian un mail que contiene informacion variada y algunos numeros de cedula
Copio ese mail a un textbox y quisiera solo extraer los numeros de cedulas que los cargaria en una variable
para luego cargalos a un seek y entrar en una tabla y extraer otros datos .
Les agradezco toda su colaboracion y aclaro que recien comenze a usar VFP 6 .
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
Imágen de perfil de Mauricio Antonio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

extraer numeros de un textbox

Publicado por Mauricio Antonio (1541 intervenciones) el 04/06/2015 15:43:42
Te dare una idea de como hacerlo, aunque no se cuantos numeros de cedula vendran en un editbox, pero puedes empezar por esto, en el evento VALID:
1
2
3
4
5
6
7
8
vlen = LEN(THISFORM.editbox.Value)
*
FOR I = 1 TO vlen
	IF ISDIGT(SUBSTR(THISFORM.editbox.Value,I,1))
		vnum = vnum + SUBSTR(THISFORM.editbox.Value,I,1)
	ENDIF
ENDFOR
*
Esto es una idea de como lo puedes hacer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

extraer numeros de un textbox

Publicado por Fidel José (558 intervenciones) el 04/06/2015 17:24:44
Si solamente tienes un número de cédula, puedes utilizar esta función:

1
2
3
4
5
6
PROCEDURE Just_Digits(tcString)
** ---------------------------------------------
** Luis María Guayan
** Devuelve únicamente los números que contiene una cadena
return CHRTRAN(tcString,CHRTRAN(tcString,"1234567890",""),"")
ENDPROC

Si el texto tiene varios números o varios números de célula, tienes que ver cómo se pueden aislar (apuntando a Strextrac() ). Si pones ejemplo de algún texto, tal vez podamos resolverlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

extraer numeros de un textbox

Publicado por lorena (14 intervenciones) el 05/06/2015 02:33:29
despues de esto "tienes que ver cómo se pueden aislar " no se que pusistes
El asunto es que efectivamente son varios numeros en el texto y no veo claro como entrar a buscar
numeros al texbox , salir con el numero y volver a entrar de donde sali .
De todas formas muchas gracias por tu respuesta
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

extraer numeros de un textbox

Publicado por Fidel José (558 intervenciones) el 05/06/2015 16:16:16
Además de la alternativa de Copy & Paste, podés intentar un proceso de rastreo de números.
Fijate en el siguiente ejemplo (pegá esto en click de un botón de algún formulario de pruebas)
Para el caso de analizar un EditBox, lo que te conviene es:
lcText =trim( Thisform.edtMensaje.Text) && Esto en lugar de .edtMensaje.Value

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
TEXT TO lcText NOSHOW PRETEXT 1+2
Este es un texto que puede contener algunos números.
Por ejemplo tenemos 23.436.121 que se supone que es un número de cédula o documento de identidad.
También podemos tener algún número fiscal, como 20-12638426-4,626014 o
un un número de cuenta 00326/4012/1345 o varios otros numeros, como:
664326,215212,45,7960-a, etc.
ENDTEXT
 
lnLines = ALINES(lalines,CHRTRAN(lcText,CHR(13)+CHR(10),CHR(44)),1+4,CHR(32),CHR(44),CHR(58),CHR(59))
 
lcString = "<Texto>"+CHR(13);
	+m.lcText + CHR(13);
	+"</Texto>"+CHR(13)+CHR(13)
 
lcSTring = m.lcString ;
	+"<Desarrollo>"+CHR(13)
 
FOR i=1 TO lnLines
	lcString = m.lcString ;
		+CHR(9);
		+PADR(CHR(40)+TRANSFORM(i)+CHR(41),10," ");
		+lalines[i];
		+CHR(13)
NEXT
lcString = m.lcString + "</Desarrollo>"+CHR(13)+CHR(13)
 
lcString = m.lcString + "<numbers>"+CHR(13)
FOR i=1 TO lnLines
	IF ISDIGIT(lalines[i])
		lcString = m.lcString ;
			+CHR(9);
			+PADR(CHR(40)+TRANSFORM(i)+CHR(41),10," ");
			+lalines[i];
			+CHR(13)
	ENDIF
 
NEXT
lcString = m.lcString + "</numbers>"+CHR(13)
lcFileName="Parser_text.txt"
STRTOFILE(m.lcString, lcFileName )
MODIFY FILE &lcFileName NOEDIT
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
sin imagen de perfil

extraer numeros de un textbox

Publicado por Juanma (512 intervenciones) el 08/06/2015 18:52:18
Lo mejor que podrías hacer es

Obtener el número de palabras del texto, función GETWORDCOUNT()

Desde 1 hasta el número total de palabras, obtener cada palabra, función GETWORDNUM() y analizar si cumple con el formato de número de cédula
¿cumple? pues agrégala a un array

al terminar tienes un array con tantos elementos como números de cédula hayas encontrado.

Y ya con esa, vas tirando.
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