Hi Leute,
ich hoffe ich bin jetzt in der richtigen Kategorie gelandet ... *hoff*
Folgendes Problem:
Ich hab ein Beispiel zur Berechnung einer CRC Checksumme in Basic, diese muss ich jetzt auf Delphi umsetzten.
Leider will mir das nicht so ganz gelingen.
Hier der Basic Code:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| crc16& = 65535 FOR c% = 1 to LEN(message$) crc16& = crc16& XOR ASC(MID$(message$, c%, 1)) FOR bit% = 1 to 8 IF crc16& MOD 2 THEN crc16& = (crc16& \ 2) XOR 40961 ELSE crc16& = crc16& \ 2 END IF NEXT BIT% NEXT c% crch% = CRC16& \ 256: crcl% = CRC16& MOD 256 message$ = message$ + CHR$(crcl%) + CHR$(crch%) CRC = CRC16& END FUNCTION CRC |
Und hier der Delphi Code den ich bis jetzt hab:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| function crc (command: string): string; var Crc16, i, Bit: Integer; Crch, Crcl: Byte; begin Crc16 := 65535; for i := 1 to Length(Command) do begin Crc16 := Crc16 XOR StrToInt(Command[i]); for Bit := 1 to 8 do begin if (Crc16 mod 2) = 1 then begin Crc16 := (Crc16 \ 2) XOR 40961; end else Crc16 := Crc16 / 2; end; end; Crch := Crc16 / 256; Crcl := Crc16 MOD 256; Command = Command + Chr(Crcl) + Chr(Crch);
Result := Command; end; |
Könnt ihr mir sagen für was das \ bei Basic steht? Und ob der rest so richtig umgesetzt ist.
Danke für jede Hilfe schon im Voraus,
Cass