Da ich das Schreiben nicht benötige, wäre dies dann der Code?
Delphi-Quellcode:
procedure XORMem(Data: Pointer; Len: Int64);
var
I: Cardinal;
begin
for I := 0 to Len do
begin
PByte(Cardinal(Data) + I)^ := 23 xor PByte(Cardinal(Data) + I)^;
end;
end;
var
Ini: TMemIniFile;
Lines: TStringList;
S: String;
begin
Lines := TStringList.Create;
try
// Datei laden und entschlüsseln, fals schon angelegt
if FileExists(ExtractFilePath(ParamStr(0)) + 'test.ini') then
begin
Lines.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'test.ini');
S := Lines.Text;
XORMem(@S[1], Length(S));
Lines.Text := S;
end;
// Diese Datei landet nie auf der Festplatte
Ini := TMemIniFile.Create(ExtractFilePath(ParamStr(0)) + 'test.tmp');
try
Ini.SetStrings(Lines);
// Hier kann ganz normal mit der Ini gearbeitet werden - heir etwas geändert
i:=ini.ReadString('Name', 'Eintrag1', '');
label2.caption:=i;
ReadLn;
// speichern entfernt
finally
Ini.Free;
end;
finally
Lines.Free;
end;
end.