Ich poste einfach mal meinen Versuch. Um die Befehle etwas auszutesten wollte ich zunächst nur eine Datei lesen und in einer anderen Abspeichern. Die Verschlüsselung füge ich später ein, wenn das klappt. Ich habe dazu den von euch vorgegebenen Code genommen und versucht, diesen zu vervollständigen
Delphi-Quellcode:
if Opendialog1.Execute then
Begin
AssignFile(F,OpenDialog1.FileName);
Reset(F,1);
W := System.Filesize(F);
Setlength(A,W+2);
Blockread(F,A[2],W);
//XOR
AssignFile(F2,Directory+'a.jpg');
ReWrite(F2,1);
Blockwrite(F2,A[0],W+2); // oder Stream?
CloseFile(F);
CloseFile(F2);
End;
Wenn ich das Programm ausführe ändert sich zwar die KB Zahl von 0 auf 64, die Datei lässt sich aber nicht öffnen. Da ich wie gesagt keine Ahnung habe und mir nur ein paar Beispiele angesehen habe kann es gut sein, dass ich irgendeinen Fehler gemacht habe. Ich verstehe zum Beispiel nicht, woher Blockwrite weiß, was eigentlich geschrieben werden soll. Müsste es nicht eigentlich vom Prinzip her eher so sein?
Delphi-Quellcode:
A:=Blockread(F);
Blockwrite(F,A);