|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
|
Lettura dal buffer di ricezione (MSCOMM,VB)
Ho creato una semplice chat in Visual Basic utilizzando l'oggetto MSCOMM e creando il cavo incrociato seriale . Riesco benissimo ad inviare e ricevere i messaggi . Il problema è il seguente : In una textbox settata in multiline e con scroll verticale vengono riportati tutti i messaggi della conversazione , proprio come avviene in una qualsiasi chat . Il punto è che quando ricevo un messaggio lo leggo con l'istruzione MSCOMM1.input e lo visualizzo nella textbox andando prima a capo . La lettura invece fa si che nel textbox vengano riportati 8 caratteri e poi gli altri 8 a capo , e ancora gli altri 8 a capo fino ad esaurire i caratteri nel buffer . Come mai avviene questo ? Il ritorno a capo l'ho inserito soltanto alla fine di ogni messaggio e non di 8 caratteri . Ho pensato che invece di stampare nella textbox direttamente MSCOMM1.INPUT potrei prima assegnare il suo contenuto ad una variabile ? Cosa ne pensate ? Il problema è che il cavo ed i due pc sono a scuola per cui non posso provarlo adesso . Spero che mi diate qualche consiglio così domani mattina posso provare . Grazie
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2001
Città: Genova
Messaggi: 192
|
Vado a memoria ma dovrebbe esistere un membro del controllo che contiene la lunghezza del buffer di input.
Se non mi ricordo male lo avevo imposto a uno o addirittura zero e poi avevo fatto un while sulla chiamata a DataWaiting (che ritorna true se esiste qualcosa nel buffer)...... dammi un po di tempo per controllare |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Mar 2001
Città: Genova
Messaggi: 192
|
allora:
Quote:
controlla che non sia impostata a 8. |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
|
Ragazzi ho risolto . Vi spiego quale era il problema : ogni messaggio del buffer lo riversavo nella casella di testo "text1" seguito da un VbCrlf per il ritorno a capo . E pensate un pò . Era proprio quest'ultimo che dava problemi . Allora ho risolto in questo modo : Nel momento in cui scrivo sul buffer , gli invio il messaggio e VbCrlf eliminandolo in fase di ricezione . Facendo questo funziona alla perfezione . Grazie di tutto
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:12.