elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  codigo para sacar de un conjunto de texto números
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: codigo para sacar de un conjunto de texto números  (Leído 8,469 veces)
leliCabello

Desconectado Desconectado

Mensajes: 158


Ver Perfil
codigo para sacar de un conjunto de texto números
« en: 26 Junio 2010, 01:41 am »

hayforma de que en un texto combinado con numeros, saque de ahi solo los numero....ayuden


En línea

rob1104


Desconectado Desconectado

Mensajes: 340


Usuario común


Ver Perfil WWW
Re: codigo para sacar de un conjunto de texto números
« Respuesta #1 en: 26 Junio 2010, 04:15 am »

Si, si hay forma.

Saludos


En línea

Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: codigo para sacar de un conjunto de texto números
« Respuesta #2 en: 26 Junio 2010, 05:49 am »

Si, si hay forma.

:xD :xD :xD

Si! con expresiones regulares!!!!

Código:
(\d+)

Esa es la expresion regular para obtener todos los numeros de un texto
Ahora investiga como usar las expresiones regulares y como obtener los grupos generados por las ER (expresiones regulares) desde vb ;)
En línea

Anco

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: codigo para sacar de un conjunto de texto números
« Respuesta #3 en: 26 Junio 2010, 05:53 am »

No manejo vb, aunque te dare otra idea mas no el codigo, primero calculas cuantos caracteres tiene la cadena, haces un ciclo con el dato anterior parar recorrer la cadena, comparas cada caracter, y aquellos que sean numeros los guardas en una variable. Seguro el vb debe tener alguna funcion para hacerte la vida aun mas facil, asi que BUSCA.  :)
En línea

???
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: codigo para sacar de un conjunto de texto números
« Respuesta #4 en: 26 Junio 2010, 06:20 am »

Es mejor y más fácil con expresiones regulares :P. Pero no tengo VB en mi laptop :S

Código
  1. Function dejarNumeros(cadenaTexto As String) As String
  2.  Const listaNumeros = "0123456789"
  3.  Dim cadenaTemporal As String
  4.  Dim i As Integer
  5.  
  6.  cadenaTexto = Trim$(cadenaTexto)
  7.  If Len(cadenaTexto) = 0 Then
  8.    Exit Function
  9.  End If
  10.  
  11.  cadenaTemporal = ""
  12.  
  13.  For i = 1 To Len(cadenaTexto)
  14.    If InStr(listaNumeros, Mid$(cadenaTexto, i, 1)) Then
  15.      cadenaTemporal = cadenaTemporal + Mid$(cadenaTexto, i, 1)
  16.    End If
  17.  Next
  18.  return cadenaTemporal
  19. End Function
Fuente: :http://ftp.ajpdsoft.com/modules.php?name=Content&pa=showpage&pid=228
En línea

Te vendería mi talento por poder dormir tranquilo.
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: codigo para sacar de un conjunto de texto números
« Respuesta #5 en: 26 Junio 2010, 13:40 pm »

Me aburria :-[
Código
  1. Private Sub Form_Load()
  2.    Debug.Print SoloNumeros("P1rueba922")
  3. End Sub
  4.  
  5. Public Function SoloNumeros(ByVal sCadena As String) As String
  6.    Dim vItem       As Variant
  7.    Dim bvBytes()   As Byte
  8.  
  9.    bvBytes = StrConv(sCadena, vbFromUnicode)
  10.  
  11.    For Each vItem In bvBytes
  12.        If (48 <= vItem) And (vItem <= 57) Then
  13.            SoloNumeros = SoloNumeros & Chr$(vItem)
  14.        End If
  15.    Next vItem
  16. End Function
En línea

Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: codigo para sacar de un conjunto de texto números
« Respuesta #6 en: 28 Junio 2010, 10:53 am »

Aqui dejo mi alternativa:
Código
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.    Debug.Print Only_Numbers("hola1 ¿que34 tal538?")
  5. End Sub
  6.  
  7. Public Function Only_Numbers(ByVal sText As String) As String
  8.    Dim sActualChar     As String * 1
  9.    Dim lTotalChar      As Long
  10.    Dim x               As Long
  11.    lTotalChar = Len(sText)
  12.    If lTotalChar > 0 Then
  13.        For x = 1 To lTotalChar
  14.            sActualChar = Mid$(sText, x, 1)
  15.            If IsNumeric(sActualChar) Then Only_Numbers = Only_Numbers & sActualChar
  16.        Next
  17.    End If
  18. End Function

Salu2! ;)
« Última modificación: 29 Junio 2010, 14:42 pm por *PsYkE1* » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: codigo para sacar de un conjunto de texto números
« Respuesta #7 en: 28 Junio 2010, 11:08 am »

Ando desvelándome y esto ya lo había hecho pero... no me dio la gana resolverle la vida en el momento asi qué con un lindo retardo pongo esto:

Es mas lento qué los anteriores aquí expuestos pero esta pensado para:


 * Obtener números Negativos (Con signo).
 * Obtener números con Decimales!¡ (Optativo Coma decimal o punto Decimal según se especifique!¡.).


 * No esta Optimizado el codigo!¡.
 * No esta terminado aun!¡.
 * Bug de que si se espesifica un signo valido (Ejemplo coma decimal) tomara en sucesion esta sentencia "6546.65163.565" o equivalente a la misma!¡.


Código
  1. '
  2. ' ////////////////////////////////////////////////////////////////
  3. ' // Autor: BlackZeroX ( Ortega Avila Miguel Angel )            //
  4. ' //                                                            //
  5. ' // Web: http://InfrAngeluX.Sytes.Net/                         //
  6. ' //                                                            //
  7. ' // |-> Pueden Distribuir Este Código siempre y cuando         //
  8. ' // no se eliminen los créditos originales de este código      //
  9. ' // No importando que sea modificado/editado o engrandecido    //
  10. ' // o achicado, si es en base a este código                    //
  11. ' ////////////////////////////////////////////////////////////////
  12. '
  13. Option Explicit
  14.  
  15. Public Function GetArrayNumbersFromString(ByVal StrInput$, Optional ByVal SepDecimal$ = ".") As String()
  16. Dim StrArray_TMPArrayNumers$()
  17. Dim Lng_Pos&
  18. Dim Lng_LenMid&
  19. Dim Lng_PosIInArray&
  20. Dim Lng_LenStr&
  21. Dim Str_Tmp$
  22. Dim Str_Char$
  23.    Lng_LenStr& = Strings.Len(StrInput$)
  24.    If Lng_LenStr& > 1 Then
  25.        If Not Information.IsNumeric(StrInput$) Then
  26.            Str_Char$ = Strings.Space$(1)
  27.            For Lng_Pos& = 1 To Lng_LenStr&
  28.                Str_Char$ = Strings.Mid$(StrInput$, Lng_Pos&, 1)
  29.                If IsNumeric(Str_Char$) Or (Lng_LenMid& And Str_Char$ = SepDecimal$) Or (Lng_LenMid& = 0 And Str_Char$ = "-") Then
  30.                    Lng_LenMid& = Lng_LenMid& + 1
  31.                ElseIf Lng_LenMid& > 0 And Lng_Pos& <= Lng_LenStr& - 1 Then
  32.                    If Lng_LenMid& = 1 And Strings.Mid$(StrInput$, Lng_Pos& - Lng_LenMid&, Lng_LenMid&) = "-" Then
  33.                        Lng_LenMid& = 0
  34.                    Else
  35.                        ReDim Preserve StrArray_TMPArrayNumers$(Lng_PosIInArray&)
  36.                        StrArray_TMPArrayNumers$(Lng_PosIInArray&) = Strings.Mid$(StrInput$, Lng_Pos& - Lng_LenMid&, Lng_LenMid&)
  37.                        Lng_PosIInArray& = Lng_PosIInArray& + 1
  38.                        Lng_LenMid& = 0
  39.                    End If
  40.                End If
  41.            Next
  42.            If Lng_LenMid& > 0 Then
  43.                    ReDim Preserve StrArray_TMPArrayNumers$(Lng_PosIInArray&)
  44.                    StrArray_TMPArrayNumers$(Lng_PosIInArray&) = Strings.Mid$(StrInput$, Lng_Pos& - Lng_LenMid&, Lng_LenStr&)
  45.            End If
  46.        Else
  47.            ReDim StrArray_TMPArrayNumers$(Lng_PosIInArray&)
  48.            StrArray_TMPArrayNumers$(Lng_PosIInArray&) = StrInput$
  49.        End If
  50.    End If
  51.    GetArrayNumbersFromString = StrArray_TMPArrayNumers$()
  52. End Function
  53.  
  54.  

Código
  1.  
  2.    Const Str_Cadena$ = "123.4567.89.miguel angel000ort.....ega avila-a159.753jjj"
  3.    MsgBox Strings.Join(GetArrayNumbersFromString(Str_Cadena$, ""), "-") & Constants.vbNewLine & _
  4.           Strings.Join(GetArrayNumbersFromString(Str_Cadena$, "."), "-")
  5.  
  6.  

Sangriento Infierno Lunar!¡.
« Última modificación: 28 Junio 2010, 11:14 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: codigo para sacar de un conjunto de texto números
« Respuesta #8 en: 28 Junio 2010, 22:01 pm »

Buena Black!  :)
Pero tengo una duda:
Citar
* Bug de que si se espesifica un signo valido (Ejemplo coma decimal) tomara en sucesion esta sentencia "6546.65163.565" o equivalente a la misma!¡.
No entiendo, si detecta "6546.65163.565" que quieres hacer exactamente???  :huh:
Entonces si en la cadena hay una direeccion Ip, estaria bien cojerla, ¿no?  :silbar:

PD: En 2 dias subo una alternativa al code de BlackZer0X! :P

Salu2!  ;)
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: codigo para sacar de un conjunto de texto números
« Respuesta #9 en: 28 Junio 2010, 23:26 pm »


un numero valido no puede ni deve tener dos puntos decimales validos!¡.

Sangriento Infierno Lunar!¡.
En línea

The Dark Shadow is my passion.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines