Danke erst Mal für die schnelle Antwort.
So kann ich sehr gut lernen.
Zuerst ein Lob auf deine Art Dinger zu erklären. So verstehe ich es am besten.
Vielen dank dafür.
Ich bin leider kein begabter Coder. Versuche aber mein bestes zu geben.
Liste := TStringlist.Create; // das gehört vor das TRY !!!
Das ist mir aber klar, war ein versehen.
Ich habe nur das relevante zusammen kopiert. Eben beim kopieren übersehen.
Genauso wie except. Ich fange Fehler schon auf, habe es aber für unwichtig gehalten bei der Frage.
ListeCR brauche ich nicht, habe aber gedacht dass mein Ergebnis dadurch verfälscht wird.
Ich habe einiges probiert bis ich mich erst entschlossen habe zu fragen.
So oft Sachen probiert dass ich zum Schluss ganz durcheinander war.
Das aber: Cipher.Burn; // das davor
Ehrlich gesagt habe ich gedacht es gehört nach finally. Schon wieder was gelernt.
Der eigentlicher fahren liegt aber bei der Cipher.InitStr(.......
Das kommt von Unwissenheit.
Hier mein Code was nun funktioniert. Für meine Zwecke vollkommen ausreichend.
Delphi-Quellcode:
procedure TForm1.ButtonDCPEncryptClick(Sender: TObject);
var
Cipher : TDCP_Cipher;
DateiName :
string;
Liste : TStringList;
index : Integer;
begin
if EditDatei.Text = '
'
then
begin
MessageBox(0, '
Zuerst eine Datei wählen.' ,'
Hinweis !' ,MB_ICONWARNING);
exit;
end;
Liste := TStringlist.Create;
try
DateiName := ExtractFileName(EditDatei.Text);
SaveDialog1.Filename := DateiName;
SaveDialog1.Filter := '
Alle-Dateien|*.*;';
SaveDialog1.InitialDir := ExtractFilePath(Application.ExeName);
if SaveDialog1.Execute
then
begin
Liste.BeginUpdate;
Liste.LoadFromFile(DateiName);
Liste.EndUpdate;
Cipher := TDCP_rijndael.Create(Self);
try
try
for Index := 0
to Liste.Count - 1
do
begin
Cipher.InitStr(EditPasswort.Text,TDCP_sha1);
Liste.Strings[
Index] := Cipher.EncryptString(Liste.Strings[
Index]);
Cipher.Burn;
end;
except
on E:
Exception do MessageDlg(E.
Message, mtError, [mbOk], 0);
end;
finally
Cipher.Free;
end;
Liste.SaveToFile(SaveDialog1.Filename);
end;
finally
Liste.Free;
end;
EditDatei.Text := '
';
MessageBox(0, '
DONE' ,'
Hinweis !' ,MB_ICONWARNING);
end;
Falls weitere Fehler auftauchen bitte um Korrektur.