Autor
|
Tema: codigo para sacar de un conjunto de texto números (Leído 8,510 veces)
|
leliCabello
Desconectado
Mensajes: 158
|
hayforma de que en un texto combinado con numeros, saque de ahi solo los numero....ayuden
|
|
|
En línea
|
|
|
|
rob1104
Desconectado
Mensajes: 340
Usuario común
|
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
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Si, si hay forma.
Si! con expresiones regulares!!!! 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
Mensajes: 28
|
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
|
Es mejor y más fácil con expresiones regulares . Pero no tengo VB en mi laptop :S Function dejarNumeros(cadenaTexto As String) As String Const listaNumeros = "0123456789" Dim cadenaTemporal As String Dim i As Integer cadenaTexto = Trim$(cadenaTexto) If Len(cadenaTexto) = 0 Then Exit Function End If cadenaTemporal = "" For i = 1 To Len(cadenaTexto) If InStr(listaNumeros, Mid$(cadenaTexto, i, 1)) Then cadenaTemporal = cadenaTemporal + Mid$(cadenaTexto, i, 1) End If Next return cadenaTemporal 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
Mensajes: 2.416
Se siente observado ¬¬'
|
Me aburria Private Sub Form_Load() Debug.Print SoloNumeros("P1rueba922") End Sub Public Function SoloNumeros(ByVal sCadena As String) As String Dim vItem As Variant Dim bvBytes() As Byte bvBytes = StrConv(sCadena, vbFromUnicode) For Each vItem In bvBytes If (48 <= vItem) And (vItem <= 57) Then SoloNumeros = SoloNumeros & Chr$(vItem) End If Next vItem End Function
|
|
|
En línea
|
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Aqui dejo mi alternativa: Option Explicit Private Sub Form_Load() Debug.Print Only_Numbers("hola1 ¿que34 tal538?") End Sub Public Function Only_Numbers(ByVal sText As String) As String Dim sActualChar As String * 1 Dim lTotalChar As Long Dim x As Long lTotalChar = Len(sText) If lTotalChar > 0 Then For x = 1 To lTotalChar sActualChar = Mid$(sText, x, 1) If IsNumeric(sActualChar) Then Only_Numbers = Only_Numbers & sActualChar Next End If End Function
Salu2!
|
|
« Última modificación: 29 Junio 2010, 14:42 pm por *PsYkE1* »
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
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!¡.
' ' //////////////////////////////////////////////////////////////// ' // Autor: BlackZeroX ( Ortega Avila Miguel Angel ) // ' // // ' // Web: http://InfrAngeluX.Sytes.Net/ // ' // // ' // |-> Pueden Distribuir Este Código siempre y cuando // ' // no se eliminen los créditos originales de este código // ' // No importando que sea modificado/editado o engrandecido // ' // o achicado, si es en base a este código // ' //////////////////////////////////////////////////////////////// ' Option Explicit Public Function GetArrayNumbersFromString(ByVal StrInput$, Optional ByVal SepDecimal$ = ".") As String() Dim StrArray_TMPArrayNumers$() Dim Lng_Pos& Dim Lng_LenMid& Dim Lng_PosIInArray& Dim Lng_LenStr& Dim Str_Tmp$ Dim Str_Char$ Lng_LenStr& = Strings.Len(StrInput$) If Lng_LenStr& > 1 Then If Not Information.IsNumeric(StrInput$) Then Str_Char$ = Strings.Space$(1) For Lng_Pos& = 1 To Lng_LenStr& Str_Char$ = Strings.Mid$(StrInput$, Lng_Pos&, 1) If IsNumeric(Str_Char$) Or (Lng_LenMid& And Str_Char$ = SepDecimal$) Or (Lng_LenMid& = 0 And Str_Char$ = "-") Then Lng_LenMid& = Lng_LenMid& + 1 ElseIf Lng_LenMid& > 0 And Lng_Pos& <= Lng_LenStr& - 1 Then If Lng_LenMid& = 1 And Strings.Mid$(StrInput$, Lng_Pos& - Lng_LenMid&, Lng_LenMid&) = "-" Then Lng_LenMid& = 0 Else ReDim Preserve StrArray_TMPArrayNumers$(Lng_PosIInArray&) StrArray_TMPArrayNumers$(Lng_PosIInArray&) = Strings.Mid$(StrInput$, Lng_Pos& - Lng_LenMid&, Lng_LenMid&) Lng_PosIInArray& = Lng_PosIInArray& + 1 Lng_LenMid& = 0 End If End If Next If Lng_LenMid& > 0 Then ReDim Preserve StrArray_TMPArrayNumers$(Lng_PosIInArray&) StrArray_TMPArrayNumers$(Lng_PosIInArray&) = Strings.Mid$(StrInput$, Lng_Pos& - Lng_LenMid&, Lng_LenStr&) End If Else ReDim StrArray_TMPArrayNumers$(Lng_PosIInArray&) StrArray_TMPArrayNumers$(Lng_PosIInArray&) = StrInput$ End If End If GetArrayNumbersFromString = StrArray_TMPArrayNumers$() End Function
Const Str_Cadena$ = "123.4567.89.miguel angel000ort.....ega avila-a159.753jjj" MsgBox Strings.Join(GetArrayNumbersFromString(Str_Cadena$, ""), "-") & Constants.vbNewLine & _ Strings.Join(GetArrayNumbersFromString(Str_Cadena$, "."), "-")
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
Mensajes: 1.089
|
Buena Black! Pero tengo una duda: * 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??? Entonces si en la cadena hay una direeccion Ip, estaria bien cojerla, ¿no? PD: En 2 dias subo una alternativa al code de BlackZer0X! Salu2!
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
un numero valido no puede ni deve tener dos puntos decimales validos!¡.
Sangriento Infierno Lunar!¡.
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Sacar numeros de una ecuacion? como?
.NET (C#, VB.NET, ASP)
|
Edu
|
8
|
6,212
|
14 Marzo 2011, 04:07 am
por .mokk.
|
|
|
Numeros de línea en etiquetas de código GeSHi.
Sugerencias y dudas sobre el Foro
|
avesudra
|
2
|
4,544
|
4 Septiembre 2012, 23:28 pm
por avesudra
|
|
|
Script cmd para extraer solo números en un texto.
Scripting
|
lizana16288
|
3
|
5,595
|
30 Abril 2016, 13:55 pm
por Eleкtro
|
|
|
Concatenar un conjunto de palabras para la misma búsqueda con find o findstr
Scripting
|
gregory90
|
9
|
6,973
|
26 Noviembre 2019, 19:50 pm
por andres3626
|
|
|
Programa que pide un conjunto de números y los cambia de posición
Scripting
|
ThePaquet1
|
2
|
3,945
|
9 Marzo 2021, 19:35 pm
por Serapis
|
|