Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    21

    Stringhe in esadecimale in vb6

    Salve,
    come faccio a visualizzare i caratteri letti dalla seriale su un controllo di testo in esadecimale invece di ascii?
    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    VB viene trattato nell'apposito sub-forum.

    Ti sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Usa questa funzione che ho scritto: le passi la stringa come parametro e ti restituisce una stringa contenente la tua stringa in esadecimale; ad esempio, passandole "Ciao HTML.it!" ti restituisce "4369616F2048544D4C2E697421".
    codice:
    Public Function String2Hex(ByVal inString As String) As String
        String2Hex = Space(Len(inString) * 2)
        Dim c As Long
        For c = 0 To Len(inString) - 1
            Mid(String2Hex, c * 2 + 1, 2) = Hex(Asc(Mid(inString, c + 1, 1)))
        Next c
    End Function
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma e' questo quello che vuoi? O intendevi altro ...?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    21
    Salve,
    non son molto ferrato in VB, maquello che vorrei ottenere e' ricevere dalla seriale un carattere e visualizzarlo in formato esadecimale per capirne l'esatto valore e non un simbolo ascii irriconoscibile.
    esempio

    Private Sub MSComm1_OnComm()
    Dim Rx$
    Rx$ = MSComm1.Input ' Leggo il contenuto del buffer di ricezione (e svuoto .Input)
    If Len(Rx$) Then ' Se ho ricevuto qualcosa lo scrivo nella TextBox
    Text1.Text = Text1.Text & Rx$
    End If
    End Sub

    come lo modifico?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Qualcosa del genere ... ?

    codice:
    Private Sub MSComm1_OnComm()
        Dim Rx As String
        Dim ix As Long
    
        Rx = MSComm1.Input 
        If Len(Rx) Then 
           For ix = 1 To Len(Rx)
               Text1.Text = Text1.Text & Right$("0" & Hex$(Asc(Mid$(Rx, ix, 1))), 2)
           Next i
        End If
    End Sub

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    21
    Originariamente inviato da oregon
    Qualcosa del genere ... ?

    codice:
    Private Sub MSComm1_OnComm()
        Dim Rx As String
        Dim ix As Long
    
        Rx = MSComm1.Input 
        If Len(Rx) Then 
           For ix = 1 To Len(Rx)
               Text1.Text = Text1.Text & Right$("0" & Hex$(Asc(Mid$(Rx, ix, 1))), 2)
           Next i
        End If
    End Sub
    Ottimo Oregon,
    cosi mi va bene

    If Len(Data) Then
    For ix = 1 To Len(Data)
    Term.SelText = Right$("0" & Hex$(Asc(Mid$(Data, ix, 1))), 2)
    Next ix
    End If

    Cosi pero' non mi visualizza se arriva un carattere zero in esadecimale, perche'?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cosa e' Data?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    21
    Originariamente inviato da oregon
    Cosa e' Data?
    Data e il valore letto sulla seriale, il tuo rx dell'esempio.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se la variabile Data e' una stringa (di VB6) e contiene degli zeri binari allora saranno visualizzati dalla funzione che ti ho mostrato ...

    Devi essere certo che i caratteri null vengano ricevuti effettivamente ed inseriti nella variabile e non scartati ...

    E per "certo" intendo dire che devi controllare in debug ...

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.