View Full Version : 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
whitenoise
04-02-2003, 20:41
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
whitenoise
04-02-2003, 20:50
allora:
Proprietà InputLen
Imposta e restituisce il numero di caratteri che la proprietà Input legge dal buffer di ricezione.
Sintassi
oggetto.InputLen [ = valore ]
La sintassi della proprietà InputLen è composta dalle seguenti parti:
Parte Descrizione
oggetto Espressione oggetto che definisce un oggetto dell'elenco "Si applica a".
valore Intero che indica il numero di caratteri che la proprietà Input legge dal buffer di ricezione.
Osservazioni
Il valore predefinito della proprietà InputLen è 0. Se InputLen è impostata su 0, quando si utilizza tale proprietà il controllo MSComm legge l'intero contenuto del buffer di ricezione.
Quando i caratteri indicati in InputLen non sono disponibili nel buffer di ricezione, la proprietà Input restituisce una stringa di lunghezza zero (""). Prima di utilizzare Input, è possibile verificare l'impostazione della proprietà InBufferCount per determinare se è presente il numero di caratteri richiesto.
Questa proprietà è utile quando si leggono dati da un computer il cui output è formattato in blocchi di dati a lunghezza fissa.
controlla che non sia impostata a 8.
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
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.