Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Para Ex3

Iniciado por sebastianarroyo, 17 de Marzo de 2006, 05:21:22 PM

« anterior - próximo »

sebastianarroyo

 hola, te agradezco por el ejemplo que me diste con el tema de la cadena.-
El problema es que me toma todo lo que este despues de un "="
la idea es que si en toda la cadena existen los siguientes caracteres ( NMBR= ), en esa condicion si me extraiga los numeros que estan despues de esta.

La idea es hacer un identificador de llamadas.
y el MSComm1.Input me devuelve una cadena mas o menos asi:

\\\RING\\\DATE= 0317\\\\TIME= 1256\\\NMBR= 011548562412\\\RING\\\
todo esto si lo quiero presentar en un text cuando suena el text muestra primero el RING y despues todo los datos(DATE,TIME,NMBR).
creo que lo mejor es hacer lo que te explique al principio.
Detectar si exite NMBR y si es asi chupar la dane de numero que sigue.-
Creo que me explique bien, Espero me entiendas ...
Gracias...

[EX3]

 Si solo se trata de extraer el numero que se asocia a NMBR este codigo seria una solucion:
Option Explicit

Const strInput As String = "\\RING\\DATE= 0317\\TIME= 1256\\NMBR= 011548562412\\RING\\"
Const strID As String = "NMBR= "

Private Sub Form_Load()
Dim i As Long, Start As Long
Dim Char As String, Temp As String

Start = InStr(1, strInput, strID)

For i = Start + Len(strID) To Len(strInput)
   Char = Mid(strInput, i, 1)
   
   If Char = "\" Then Exit For
   
   Temp = Temp & Char

   DoEvents

Next i

MsgBox Temp

End Sub

Si por la contra necesitas sacar cualquier valor que contenga la cadena de texto puedes usar este metodo mas generico:
Option Explicit

Const strInput As String = "\\\RING\\\DATE= 0317\\\\TIME= 1256\\\NMBR= 011548562412\\\RING\\\"

Private Sub Form_Load()
Dim Buffer(2) As String

Buffer(0) = GetDataFromStream(strInput, "DATE= ", "\")
Buffer(1) = GetDataFromStream(strInput, "TIME= ", "\")
Buffer(2) = GetDataFromStream(strInput, "NMBR= ", "\")

MsgBox "DATE = " & Buffer(0) & vbNewLine & "TIME = " & Buffer(1) & vbNewLine & "NMBR = " & Buffer(2)

End Sub

Private Function GetDataFromStream(Source As String, FromString As String, UntilChar As String) As String
Dim i As Long, Start As Long
Dim Char As String

Start = InStr(1, Source, FromString)

For i = Start + Len(FromString) To Len(Source)
   Char = Mid(Source, i, 1)
   
   If Char = UntilChar Then Exit For
   
   GetDataFromStream = GetDataFromStream & Char

   DoEvents

Next i

End Function

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.