Hallo,
ich probiere jetzt schon fast einen ganzen Tag rum, komme aber auf keinen grünen Zweig und drehe mich scheinbar im Kreis.
Für eine Prüfsummenbildung führe ich zur Zeit mit den "bösen" VB Funktionen folgendes durch:
Dabei wird der übergebene String (z.B.: "123ABC") zeichenweise zunächst als hexadezimales ASCII Zeichen verstanden und dann mit dem nächsten XOR verknüpft.
"1" XOR "2" XOR "3" XOR "A" XOR "B" XOR "C"
0x31 XOR 0x32 OXR 0x33 XOR 0x41 XOR 0x42 XOR 0x43 = 0x70
Wie werde ich die "bösen" VB Funktionen los?
Lese ich den String z.B. in ein Byte-Array
wird dieses immer dezimal interpretiert.
Ich brauche aber die HEX Entprechung des jeweiligen ASCII Zeichens
ich probiere jetzt schon fast einen ganzen Tag rum, komme aber auf keinen grünen Zweig und drehe mich scheinbar im Kreis.
Für eine Prüfsummenbildung führe ich zur Zeit mit den "bösen" VB Funktionen folgendes durch:
VB.NET-Quellcode
- Function mod_General_GenerateChecksum(ByVal sData As String) As String
- Dim Checksum As String = CStr(0)
- For k = 1 To Len(sData)
- Checksum = Hex("&H" & Hex(Asc(Mid(sData, k, 1))) Xor "&H" & Checksum) 'XOR Verknüpfung der Nutzdaten
- Next k
- If Checksum.Length = 1 Then
- Checksum = "0" & Checksum 'Wenn die Prüfumme einstellig ist muss eine 0 vorgestellt werden
- End If
- Return Checksum 'Rückgabe von 1 Byte ASCII
- End Function
Dabei wird der übergebene String (z.B.: "123ABC") zeichenweise zunächst als hexadezimales ASCII Zeichen verstanden und dann mit dem nächsten XOR verknüpft.
"1" XOR "2" XOR "3" XOR "A" XOR "B" XOR "C"
0x31 XOR 0x32 OXR 0x33 XOR 0x41 XOR 0x42 XOR 0x43 = 0x70
Wie werde ich die "bösen" VB Funktionen los?
Lese ich den String z.B. in ein Byte-Array
wird dieses immer dezimal interpretiert.
Ich brauche aber die HEX Entprechung des jeweiligen ASCII Zeichens