Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi INI aus Memorystream (https://www.delphipraxis.net/108525-ini-aus-memorystream.html)

hedie 15. Feb 2008 13:37


INI aus Memorystream
 
Hallo

Ich habe ein INI File mit AES - Rijndael verschlüsselt.
Nun möchte ich die Datei in meinem Programm wieder entschlüsseln, das klappt auch ganz gut
aber wenn ich nun die datei einfach speichere, unverschlüsselt!, dan könnte ich das ding auch gleich ohne AES
machen..

Deshalb nun die frage, wie kann ich mit TInifile auf einen Stream zugreifen?

weil dan würde ich die AES Datei in einen Stream entschlüsseln und diesen Laden....


Danke schonmal

Nuclear-Ping 15. Feb 2008 13:46

Re: INI aus Memorystream
 
Gabs da nicht TMemIniFile oder sowas?

sirius 15. Feb 2008 13:47

Re: INI aus Memorystream
 
Vielleicht mit TMemInifile und der Methode setStrings

Edit: @NP: Ja, gabs. Ich hatte vorsichtshalber nochmal nachgesehen. :lol:

Nuclear-Ping 15. Feb 2008 13:49

Re: INI aus Memorystream
 
Hab grad mal in der Hilfe geguckt. Der Constructor erwartet auch 'nen Dateinamen.
Zitat:

Zitat von Delphi-Hilfe
TMemIniFile puffert im Gegensatz zum TIniFile-Objekt, das auch die Daten der INI-Datei kapselt, alle an der INI-Datei vorgenommenen Änderungen.

Scheint also auch nicht das richtige zu sein.

hedie 15. Feb 2008 13:51

Re: INI aus Memorystream
 
Jo

Also wenn ich TMemIniFile mache, dan kommt genau auch .Create(TFileName)

Somit is das nicht das richtige....

marabu 15. Feb 2008 13:51

Re: INI aus Memorystream
 
SetStrings() war schon richtig:

Delphi-Quellcode:
procedure LoadFromStream(ini: TMemIniFile; stream: TStream);
var
  s: TStrings;
begin
  s := TStringList.Create;
  try
    s.LoadFromStream(stream);
    ini.SetStrings(s);
  finally
    s.Free;
  end;
end;


var
  ini: TMemIniFile;
begin
  ini := TMemIniFile.Create('');
  // ...
end;
Freundliche Grüße

Nuclear-Ping 15. Feb 2008 13:53

Re: INI aus Memorystream
 
Funzt das mit nem leeren Dateinamen echt?

hedie 15. Feb 2008 14:38

Re: INI aus Memorystream
 
Ich hab das nun mal so getestet

Delphi-Quellcode:
procedure LoadFromStream(ini: TMemIniFile; stream: TStream);
var
  s: TStrings;
begin
  s := TStringList.Create;
  try
    s.LoadFromStream(stream);
    ini.SetStrings(s);
  finally
    s.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ini: TMemIniFile;
  str:tfilestream;
begin
str := tfilestream.Create('test.ini',fmOpenRead);
LoadFromStream(ini,str);
ini := TMemIniFile.Create('');
edit1.Text := ini.ReadString('test','test','error');
ini.Free;
str.Free;
end;
Doch leider bekomme ich eine Zugrifsverletzung....

Über die verwendung von LoadFromStream bin ich mir nicht so ganz im klaren...
Was muss ich genau bei INI übergeben?

Danke schonmal... Und Danke für den Code

DeddyH 15. Feb 2008 14:40

Re: INI aus Memorystream
 
Zitat:

Delphi-Quellcode:
LoadFromStream(ini,str);
ini := TMemIniFile.Create('');

Fällt Dir etwas auf? Du versuchst, eine MemIniFile zu befüllen, bevor Du sie erzeugst ;)

hedie 15. Feb 2008 14:42

Re: INI aus Memorystream
 
tatsächlich... :D

Es hat geklappt...

Wer hätte das gedacht :D

Vielen Vielen Dank an alle....


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz