Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    30

    chr(0)

    Ciao a Tutti!
    Sono un po in dificoltà con VB.net...
    Sto tentando di inviare una stringa all seriale ma non mi tradute in carattere ASCII il comando Chr(0), qualcuno sa spiegarmi il perchè ?
    con VB6 non avevo questo problema, come mai?
    Ciao Maouk

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    30
    Ciao, qualcuno mi sa spiegare perche questa Function genera una stringa vuota? non dovrebbe.

    Public Function Stringa_Dati() as string
    Dim My_Str as String

    My_Str = String.Chr(0)
    My_Str = My_Str & String.Chr(255)

    Stringa_Dati = My_Str

    End Function

  3. #3
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, ma sei proprio sicuro che genera una stringa vuota? Hai provato a vedere se la lunghezza della stringa è zero caratteri? Ma che versione usi? Io ho la 2005 e non ho il metodo Chr relativo alla classe String.
    Facendo una prova con il codice sottostante, funziona..
    codice:
    Public Function Stringa_Dati() As String
        Dim My_Str As String
    
        My_Str = Convert.ToChar(0).ToString
        My_Str = My_Str & Convert.ToChar(255).ToString
    
        Return My_Str
    End Function
    Jupy

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    30
    Ciao Jupy, ho la versione 2003 e nello stesso pc ho vb6 probabilmente è per questo che io ho qualche classe in più. Ma tornando al discorso... ho provato come dici tu ma con CONVERT.TOCHAR ma non funziona. Sarà un problema del 2003? Boooo?
    Grazie.

  5. #5
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, ma hai controllato la lunghezza della stringa?
    Dopo che hai inizializzato la stringa, fai un messagebox.
    messagebox.show my_str.Length.ToString
    Se ti restituisce 2, significa che è tutto ok, e puoi fare anche la verifica inversa..
    codice:
    my_str = Convert.ToChar(0)
    my_str &= Convert.ToChar(255)
    MessageBox.Show(Convert.ToByte(my_str.Chars(0)).ToString)
    MessageBox.Show(Convert.ToByte(my_str.Chars(1)).ToString)
    Deve restituire 0 e 255

    Il fatto che, se vai a visualizzare la stringa, non vedi niente, è dovuto che quei "caratteri" non sono "visibili"

    Jupy

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    30
    E' vero hai ragione mi restituisce due e 0 e 255 ma... ho provato a fare una DLL con lo stesso codice e un'applicazione che utilizza questa per inviarla alla seriale RS232. Il risultato è che se la Function che stà nella Dll restituisce i caratteri 0 e 255, all'applicazione non arriva niente e nella seriale non passa nulla (controllato con l'oscilloscopio), mentre se faccio passare una stringa a caso "ciao" per es. dalla function, l'applicazione la vede e la invia alla seriale correttamente. Questo problema con visual basic 6 non l' avevo.
    Ciao Grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    30
    ....anche se non sono caratteri stampabili, dalla seriale dovrebbero essere visti, come lo erano daVB6, no?
    Ciao

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Una domanda: perché usare proprio una stringa? cioè, perché sfruttare proprio quel tipo di dato, tra i tanti disponibili, che attribuisce un preciso significato al carattere con codice 0 (zero), che generalmente identifica la fine della stringa?

    Hai provato ad usare, ad esempio, un array di byte per memorizzare i dati da inviare in output?

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.