Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB2008] if then che non funziona

    Salve a tutti.

    Ho un applicazione client che deve passare dati ad un'applicazione server.

    Dopo aver passato un dato provo a controllare se è stato effettivamente passatto tramite il classico script:
    codice:
    Dim messaggio As String
    Dim dato(tcpClient.ReceiveBufferSize()) As Byte
    netStream.Read(dato, 0, dato.Length)
    messaggio = System.Text.Encoding.ASCII.GetString(dato)
    msgbox(messaggio)
    Fin qui tutto ok e mi appare il dato che ho inviato tramite la msgbox.
    Se ad esempio ho inviato CIAO il server mi restituisce CIAO nel msgbox.

    Ora tramite un if then il programma dovrebbe svolgere un azione in base al dato che ho passato, ad esempio:
    codice:
    Dim messaggio As String
    Dim dato(tcpClient.ReceiveBufferSize()) As Byte
    netStream.Read(dato, 0, dato.Length)
    messaggio = System.Text.Encoding.ASCII.GetString(dato)
    if messaggio="CIAO" then
    .....
    end if
    Il problema è proprio qui perchè mi sono accorto che il programma non risconosce più il dato e quindi non svolge l'azione.
    Perchè se la msgbox mi ha restituito correttamente il dato come l'ho scritto (CIAO) l'istruzione if then non lo riconosce? Sono rimasto perplesso.

  2. #2
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Può darsi che aggiunge caratteri all'inizio o alla fine.....

    Verifica la lunghezza del dato che arriva....
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  3. #3
    Adesso ci provo. Però mi sembra strano perchè come ho detto prima il dato mi viene mostrato esattamente come è stato inviato senza nessun altro carattere in più od in meno.
    Comunque provo a fare qualche test.

  4. #4
    Originariamente inviato da sonomestesso
    Adesso ci provo. Però mi sembra strano perchè come ho detto prima il dato mi viene mostrato esattamente come è stato inviato senza nessun altro carattere in più od in meno.
    Comunque provo a fare qualche test.
    Come diceva Kalosio, SE la procedura ti restituisse "CIAO " (nota lo spazio in fondo), tu cosa vedresti nel MsgBox ?

    Risposta: CIAO
    ma non vedresti lo spazio finale, che pero' c'e' , e ti farebbe fallire il test If...

    Lo stesso varrebbe se aggiungesse un "a capo"...

    (sono solo ipotesi, ovviamente...)
    IceCube_HT (VB6 fan Club)

  5. #5
    Bene...bene insomma si fa per dire. Il problema non è ancora risolto però il cerchio comincia a stringersi grazie al vostro aiuto.

    Effettivamente controllando il numero dei caratteri con
    codice:
    messaggio.lenght
    Il numero dei caratteri è di 8193, invece di 4 come dovrebbe essere con il dato CIAO.

    Ok ho individuato il problema...ed ora per risolverlo?
    Non sono molto pratico con la manipolazione delle stringhe.

  6. #6
    Ho risolto tramite il comando Remove che elimina le stringhe superflue.

    Grazie a tutti! :-)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.