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.
Mfg