Klaus01 hat die 2 Problemchen eigentlich schon gefunden,
Delphi-Quellcode:
Function TForm1.CalcBCC(Dat : Array of Byte ; C : Integer ; ETX : Byte):Byte;
var
I : Integer;
begin
Result := 0; // initialisieren
for I := 0 to High(dat) do
Result := Result xor Dat[i]; // mit letzem Wert verknüpfen
Result := Result xor ETX;
end;
auch wenn man etwas noch 'nen winziges bissl optimieren kann
(bei XOR ist die Reihenvolge der Verknüpfungen ja egal)
Delphi-Quellcode:
type TByteDynArray = Array of Byte;
Function TForm1.CalcBCC(const Dat : TByteDynArray ; ETX : Byte): Byte;
var
I : Integer;
begin
Result := ETX; // initialisieren
for I := 0 to High(dat) do
Result := Result xor Dat[i]; // mit letzem Wert verknüpfen
end;
PS: High(dat) hast du doch schon verwendet, wozu willst/mußt du dann die Länge noch als C übergeben? (sie steh doch schon im Array selber mit drin)
[edit]
aha, da war also doch was Neues da ... gemeckert aber nich angezeiget -.-''