Einzelnen Beitrag anzeigen

davtix

Registriert seit: 29. Mai 2003
Ort: Berlin
87 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

stringlist zu filestream , filestream zu datei

  Alt 2. Jan 2018, 22:07
Hi, ich versuche hier mal, um es zu verstehen, eine iniDatei in ein Filestream zu packen und dann diese ggf. zu ändern und diese wieder zu speichern.

was mir fehlt ist nun, die ini Einträge in nen filestream zu bekommen und diesen filestream dann als datei abzuspeichern.

Ich denke das ich Funktion von FileStream völlig falsch verstehe und somit auch nicht weiterkomme.
Im Sppeicher wird die Datei in Zeilen abgelegt ähnlich einer Stringliste ?

Code:
var
  Form1: TForm1;
  ini : Tmeminifile;

  STL1: TStringList;

  FileStream1:tfilestream;
  FileStream2:tfilestream;


procedure TForm1.Button1Click(Sender: TObject);
begin

 FileStream1 := tfilestream.Create(  ExtractFilePath ( application.ExeName ) + '\testdatei.txt' , fmOpenReadWrite);

 ini := TMemIniFile.Create( '' );

 form1.ListBox1.Items.Insert(0,'data:=TMemIniFile.Create');
end;


procedure TForm1.Button3Click(Sender: TObject);
begin
  STL1 := TStringList.Create;
  try
    STL1.LoadFromStream( FileStream1 );
    ini.SetStrings( STL1 );

  finally
    STL1.Free;
  end;

  form1.ListBox1.Items.Insert(0,'s1.LoadFromStream(str)');
end;




procedure TForm1.Button4Click(Sender: TObject);
begin
 form1.edit1.text := ini.ReadString('section', 'eintrag1' , 'nix');

 form1.ListBox1.Items.Insert(0,'data.ReadString('+' section ' + 'eintrag1 ');
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
 ini.WriteString('section', 'eintrag2' , form1.Edit2.Text );

 form1.ListBox1.Items.Insert(0,'data.ReadString('+' section ' + 'eintrag2 ');
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
 form1.edit3.text := ini.ReadString('section', 'eintrag2' , 'nix');

 form1.ListBox1.Items.Insert(0,'data.ReadString('+' section ' + 'eintrag2 ');
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
   STL1 := TStringList.Create;

   ini.GetStrings( STL1 );

   listbox2.items.assign( STL1 );
  Mit Zitat antworten Zitat