Berechnung der Prüfsumme ascii

  • VB6

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von thijs83.

    @thijs83:: Das ist kein Protokoll, sondern die Berechnungsvorschrift der Prüfsumme anhand eines Beispiels.

    Quellcode

    1. (...)
    2. 16
    bedeutet, dass es sich um Hex-Werte handelt.

    Quellcode

    1. ... mod 256
    bedeutet

    Quellcode

    1. ... mod &H100
    also rechnerisch

    Visual Basic-Quellcode

    1. AND &HFF
    Es werden nur die beiden niederwertigen Bytes als Prüfsumme verwendet.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Visual Basic-Quellcode

    1. Sub test()
    2. Dim pattern As String, CS As String
    3. Dim message As String, HexPattern As String
    4. Dim sum As Integer, i As Long
    5. message = "01HANOVER"
    6. pattern = Chr$(2) & message & Chr$(3) ' STX - CHR$(2), ETX - CHR$(3)
    7. For i = 2 To Len(pattern) ' i=2 weil, wie im Beispiel, STX (02) nicht
    8. sum = sum + Asc(Mid$(pattern, i, 1)) ' für die sum-Berechnung verwendet wird
    9. Next
    10. CS = Right$("00" & Hex$(0 - (sum Mod 256)), 2)
    11. pattern = pattern & CS
    12. For i = 1 To Len(pattern)
    13. HexPattern = HexPattern & Right$("00" & Hex$(Asc(Mid$(pattern, i, 1))), 2)
    14. Next
    15. Debug.Print HexPattern
    16. '
    17. ' Entweder
    18. ' pattern -----> Com
    19. ' oder
    20. ' HexPattern --> Com
    21. End Sub