Guten Abend,
ich bastle gerade an nem programm welches eine Datei verifizieren soll, d.H. die Datei besteht aus verschiedenen Datenblöcken und ein Prüfsummenblock soll angefügt werden. Der Prüfsummenblock ist als statischer Array vordefiniert so das nur noch das Prüfsummenbyte modifiziert werden muss.
Ein auszug:
Delphi-Quellcode:
//Add Checksum Block
//ChecksumParam[10] := NewCheckSum;
SetLength(OutFileBuffer, Length(OutFileBuffer)+Length(CheckSumParam));
Move(CheckSumParam[0], OutFileBuffer[Length(OutFileBuffer)-Length(CheckSumParam)], Length(ChecksumParam));
//OutFileBuffer[Length(OutFileBuffer)-11] := NewCheckSum;
//Move(NewCheckSum, OutFileBuffer[Length(OutFileBuffer)-11], 1);
NewChecksum ist eine Byte-Variable, OutFileBuffer ist ein dynamischer Array of Byte und CheckSumParam ist ein statischer Array of Byte.
Die auskommentierten Zeilen sind 3 Versuche das olle Prüfsummenbyte in diesem vorgefertigten Block einzufügen, sind diese Zeilen auskommentiert werden die Arrays korrekt zusammengeführt. Wird eine der Zeilen wieder aktiviert werden die Arrays zwar auch zusammengeführt, jedoch nur bis zu dem nachträglich eingefügten Byte. Danach kommt Blödsinn.
Hat jemand eine Idee was da vorsich geht?