Hier bitteschön:
Code
procedure TForm1.load_buttonClick(Sender: TObject);
begin
if OpenDialog1.Execute then //wenn OpenDialog offen ist dann...
begin
filename_edit.Text := ExtractFileName(OpenDialog1.FileName); //...mache den namen der ausgewählten Datei in das Feld filemane_edit
encrypt_button.Enabled := true; //...aktiviere den encrypt Button
end;
end;
procedure TForm1.encrypt_buttonClick(Sender: TObject);
var
//Variablen deklaration
mem : TMemoryStream; // Anlegen der variablen für einen Speicherplatz
i : integer; // zähler anlegen
a : byte; // variable a anlgen um die einzellenen bytes aus der datei darin zu speichern
key : integer; // Variable um a mit einem Exlusiv oder zu Verknüpfen (Integerwerte)
begin
mem := TMemoryStream.Create; // Erstellt den Speicherplatz
mem.LoadFromfile(OpenDialog1.FileName); //Lade ausgewählte datei in den Speicher
key := 5; // Setzt die Variable key auf 5
for i := 0 to mem.Size -1 do // geht so lange durch die zählerschleife bis das ende der datei erreicht ist
begin
mem.Position := i; //i (am anfang 0) wird der position des zu lesenden bytes zugeordnet
mem.Read(a, 1); //liest 1 byte in a ein
a := a xor key; // nimmt das eingelsene byte und verknüpft es mit exclusive oder mit key
inc(key); // increment zählt zu key eins dazu
mem.Position := i; // geht auf die aktuelle Position im Speicher
mem.write(a, 1); // Schreibt das byte wieder in den Speicher
end;
mem.SaveToFile( ExtractFilePath(OpenDialog1.FileName) + '_' + ExtractFileName(OpenDialog1.FileName)); // Speichert, was aktuell im von uns angelegten Speicher liegt mit dem dateinamen den es vorher gehabt hat nur mit einem _ davor
mem.Free; // gibt den Speicherplatz wieder frei
ShowMessage( 'Geänderte Datei wurde gesichert'); // Zeigt einen Dialog mit dem eingegebenen Text
end;
end.
Alles anzeigen
Mfg