Visual Basic - extraer numeros de una cadena

Life is soft - evento anual de software empresarial
 
Vista:

extraer numeros de una cadena

Publicado por mariela (3 intervenciones) el 13/10/2005 19:11:56
hola, tengo el siguiente problema en un campo de texto de una tabla tengo lo siguiente
dni 22.222.222 (puede ser otros valores es solo un ejemplo), ahora lo quet engo que hacer es extraer los números del documento y pasarlos a otro campo (que es numérico), a veces tengo dni o d.n.i o 22,222,222 no hay un formato determinado. Son miles de campos.
Desde ya muchas gracias por su colaboración.
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 numeros de una cadena

Publicado por weirdmix (36 intervenciones) el 13/10/2005 19:55:22
si ese formato q dices no cambia tanto, es decir, primero tiene letras y despues numeros, entonces solo tienes q encontrar la posicion del primer numero.

como me imagino yo:
1) pones en una variable string el valor del campo.
2) haces un for para barrer desde el principio de la cadena hasta donde encuentres el primer numero.
3) A partir de ese lugar donde esta el primer numero cortas la cadena en otra variable.
4) Validas q esa nueva variable contiene solo numeros.
5) Si es asi la guardas en la BD.

Todo esto seria algo asi:
'eso lo modificas a como tu lo usas
cadena=rs(0)

'barres la cadena caracter por caracter
for i=0 to len(cadena)
'pones en una variable cada caracter
letra = mid(cadena,i,1)
'checas si el caracter es numerico
if isnumeric(letra) then
pos = i
exit for
end if
next i

'cortas la cadena desde el caracter encontrado
otraCadena= mid (cadena,i)

'checas si esa nueva cadena es numerica
if isnumeric(otraCadena) then
'insertas en la base en donde necesites ese nuevo valor
else
'si no puedes volver a cortar la cadena en otra posicion donde
'encuentre otro valor numerico
end if

espero te sirva esta idea..
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

RE:extraer numeros de una cadena

Publicado por mariela (3 intervenciones) el 20/10/2005 17:29:21
Gracias por tu ayuda pude hacerlo sin problema, primero limpié el campo de "." y "," con la función replace y después apliqué lo que me dijiste, quedó algo así (por si le sirve a otro)

Do While Not rs.EOF
cadena = rs(0) & ""
If cadena <> "" Then
For i = 1 To Len(cadena)
letra = Mid(cadena, i, 1)
If IsNumeric(letra) Then
pos = i
Exit For
End If
Next i
If pos <> "" Then
otracadena = Mid(cadena, pos)
rs(2) = otracadena
End If
End If
rs.MoveNext
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 numeros de una cadena

Publicado por astrid (1 intervención) el 06/07/2011 03:06:41
hola chavos esta muy buena el prg. pero para contar una cadena de numeros despues de un punto decimal
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