TODOPIC

Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: lexer en 28 de Agosto de 2006, 18:59:39

Título: Grabar en archivo lo recibido por un puerto Serie
Publicado por: lexer en 28 de Agosto de 2006, 18:59:39
Hola

Estoy tratando de hacer un programa que almacene lo leido por un puerto serie, tengo lo siguiente:

Private Sub MSComm1_OnComm()
    Select Case MSComm1.CommEvent
        Case comEvReceive
            Dim Buffer
             Buffer = Buffer & MSComm1.Input
             Open "c:\prueba.txt" For Append As #1
             Print #1, Buffer
             Close #1
             End Select
End Sub

La información que envio son varias lineas terminadas en 0X0D y 0X0A (CR y LF), El programa me lee la informacion, pero las lineas no son almacenadas completas si una linea es dividida en varias:

S
031 00 8
759    T
000052 0
2/18 23:
32 00:02
:16 A 71
00041273
69801

Deberia almacenarse como:

S 031 00 8759    T000052 02/18 23:32 00:02:16 A 710004127369801

Traté de usar la siguiente expresión que tome de BrunoF:

             Buffer = Buffer & MSComm1.Input
             If Len(Buffer) > 1 Then If Right(Buffer, 2) = Chr(13) & Chr(10) Then
             Open "c:\prueba.txt" For Append As #1
             Print #1, Buffer
             Close #1

Pero no me funciona

Alguien tiene alguna idea?
Título: Re: Grabar en archivo lo recibido por un puerto Serie
Publicado por: BrunoF en 28 de Agosto de 2006, 21:46:19
Hola
¿A que valor tienes seteada la propiedad RThresHold?
La rutina esa que hice, sirve para un RThresHold = 1 o 2. Si tienes un RThresHold > 2, pues puede dejar pasar algunos <ENTER> :lol:
Saludos.
Título: Re: Grabar en archivo lo recibido por un puerto Serie
Publicado por: lexer en 29 de Agosto de 2006, 10:21:31
Gracias BrunoF

El valor del RThresHold lo coloqué en 1
Título: Re: Grabar en archivo lo recibido por un puerto Serie
Publicado por: BrunoF en 29 de Agosto de 2006, 17:59:58
Hola lexer. Disculpame, pero no me quedo claro. ¿Lograste solucionar el problema?
Saludos.