Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Usar Split () y Expresion Regular para numeros

Estas en el tema de Usar Split () y Expresion Regular para numeros en el foro de Visual Basic clásico en Foros del Web. Gracias de antemano , por la ayuda que me puedan dar , el caso es el siguiente : Desde mi BD en SQL jalo el ...
  #1 (permalink)  
Antiguo 29/05/2008, 16:21
 
Fecha de Ingreso: mayo-2008
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Usar Split () y Expresion Regular para numeros

Gracias de antemano , por la ayuda que me puedan dar , el caso es el siguiente :

Desde mi BD en SQL jalo el registro "producto" , este registro esta formado por dos partes el nombre del producto y su media , los nombres de los productos son totalmente variados , como ejemplo coloco el siguiente : "Factura 91/2 X 4 X 11" ( los productos son formularios en papel, facturas, boletas, guias etc.)

lo que necesito haces es obtener unicamente la parte correspondiente al nombre del producto y no la medida . para el ejemplo anterior , deberia unicamente mostar : "Factura".

Me he enredado pues pense que seria sencillo hacerlo, lo mas cercano que he llegado es a usar el comando SPLIT , para en mi logica indicarle que cuando encuentre un "numero" corte la cadena ..quedando asi dividia en 2 partes la parte"letras" y la parte "numeros" . he probado colocando un digito al azar y funciona muy bien , por ejemplo asi :

Split(Text1(2).Text, 9 )

y escojo un producto cuya medida incie en 9 y en efecto lo divide. (Tex1(2) es el textbox en donde muestro este registro extraido de la BD)

Y aqui es donde no se si lo que sigue es posible.....poner una expresion regular y que el split funcione al encontrar cualquier numero , ninguna de las que puesto y que considere las comunes me ha funcionado . Por ejemplo he probado :

Split(Text1(2).Text, [0-9]) , Split(Text1(2).Text, "[0-9]") Split(Text1(2)Text, /d) , Split(Text1(2).Text, /\d/) y etc ....

y ya me entro la duda si no estoy colocando bien si me falta una comilla o algo o simplemente Split en el visual basic no trabaja con expresiones regulares. En cuyo caso no se entonces que hacer .

Agradecere quien me pueda orientar.

gracias.

PD: Estoy usando Visual basic 6.0 y SQL server 2000
  #2 (permalink)  
Antiguo 30/05/2008, 04:41
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Usar Split () y Expresion Regular para numeros

Hola,

si la parte que quieres separar siempre es una única palabra y dos datos están separados por espacios, puedes hacer algo como esto:

Dim a() As String
a = Split(Text2, " ")
MsgBox a(0)


  #3 (permalink)  
Antiguo 30/05/2008, 07:15
 
Fecha de Ingreso: mayo-2008
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Respuesta: Usar Split () y Expresion Regular para numeros

Gracias, pero el delimitador debe ser , "cualquier digito del 0 al 9 " no los espacioes en blanco, que de esos hay muchos antes de la parte en que se hace referencia a las medidas. Gracias de todos modos.
  #4 (permalink)  
Antiguo 30/05/2008, 08:48
 
Fecha de Ingreso: mayo-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 0
Respuesta: Usar Split () y Expresion Regular para numeros

y porque no has probado esto
dim cadena() as string
dim palabra as string
palabra="factura91/6416565"
cadena=palabra.split("0","1","2","3","4","5","6"," 7","8","9")

asi te deberia reconocer siendo cadena(0) valor que te interesa
  #5 (permalink)  
Antiguo 30/05/2008, 13:42
 
Fecha de Ingreso: mayo-2008
Mensajes: 3
Antigüedad: 16 años
Puntos: 0
Sonrisa Respuesta: Usar Split () y Expresion Regular para numeros

ok gracias....bueno sucede que es un tema de sintaxis ..... he hecho pruebas con sintaxis similares a la que me indicas ...y nada , en particular la que me propusiste

arroja un error : "Calificador no valido " , y nuevamente se que es por la sintaxis .

Pero ya lo resolvi gracias a una idea del experto Blooddragon .. ahorita estoy por activar sus comentarios pero esa con problemas la pagina ....asi que demora..ire poniendo la solucion a la cual llegue modificando lo que me indico el experto

Dim strtexto() As String
Dim numero As String

For i = 0 To 9 Step 1

// recojera numero por numero con Str mientras avanza el for
numero = Str(i)

// realizara numero por numero comenzando por "i" la división de la cadena
strtexto = Split(Text1(2).Text, numero)

//comprobara si la parte izquierda de esta división esta compuesta unicamente
// por valores no numericos con IsNumeric , si es asi sale del For

If (IsNumeric(strtexto(0))) Then Exit For

// con lo que se aplica el split en donde el "i" cumplio la condicion
// y el valor que necesito es srtexto(0)

Next
  #6 (permalink)  
Antiguo 31/05/2008, 03:48
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Usar Split () y Expresion Regular para numeros

Hola,

otra forma de hacer lo mismo sin utilizar la función Split:

Dim i As Integer
Dim sLetra As String, sResult As String
For i = 1 To Len(Text1(2))
sLetra = Mid(Text1(2), i, 1)
If InStr("0123456789", sLetra) > 0 Then Exit For
Next i
sResult = Left(Text1(2), i - 1)



Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:45.