none
calcul d'un CRC 16 norme CCITT RRS feed

  • Question

  • Bonjour

    Je recherche un script pour calculer un CRC16 norme CCITT.

    J'ai écrit un sous programme qui n'a pas l'air de fonctionner (voir ci après)

    Qui pourrait m'aider ?

    Merci d'avance

    ' Calcul du CRC 16 norme CCITT

    Public Function CRC_CCITT(ByVal Code As String) As String

    Dim Cle As Long = 4129 ' $1021

    Dim Crc As Long = 65535 ' $FFFF

    Dim Car As Integer

    For I As Integer = 1 To Len(Code)

    Car = Asc(GetChar(Code, I))

    For J As Integer = 1 To 8

    Crc = Crc * 2 ' décalage à gauche

    Car = Car * 2 ' décalage à gauche

    If Car > 255 Then ' le bit de dépassement => crc.LSB

    Crc += 1

    Car -= 256

    End If

    If Crc > 65535 Then

    Crc -= 65536

    Crc = Crc Xor Cle

    End If

    Next

    Next

    CRC_CCITT = Hex(Crc)

    While Len(CRC_CCITT) < 4

    CRC_CCITT = "0" & CRC_CCITT

    End While

    End Function

    mercredi 4 février 2009 14:32