Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi listbox inhalt in eine ini schreiben (https://www.delphipraxis.net/74133-listbox-inhalt-eine-ini-schreiben.html)

Privateer3000 28. Jul 2006 17:08


listbox inhalt in eine ini schreiben
 
Hi folks,

mit
ReadSectionValues('XXX',liste.Items);
kann man den Inhalt eine ini in eine listbox(liste)
einlesen. liste hat 2 Spalten: schlüssel und Wert.
Wie aber schreibe ich alle items wieder in eine ini zurück?
Mit WriteString geht das ja wohl nicht,oder?!

Nils_13 28. Jul 2006 17:12

Re: listbox inhalt in eine ini schreiben
 
Delphi-Quellcode:
WriteString('Section', 'KA', 'Spalte1' + Seperator + 'Spalte2');

DeluxXx 28. Jul 2006 17:13

Re: listbox inhalt in eine ini schreiben
 
Hm denk schon das das gehen sollte mit einer For schleife dann speicherst halt auch noch Listbox1.Count in deiner Ini und dann liest dus wieder mit einer For schleife ein aber vielleicht gibts ja noch was einfacheres

Privateer3000 28. Jul 2006 18:54

Re: listbox inhalt in eine ini schreiben
 
danke, habs anders gelöst.
Die ini in ein memo holen und wieder abspeichern.

Grüßle an alle

marabu 28. Jul 2006 20:03

Re: listbox inhalt in eine ini schreiben
 
Hi.

Ich kann nachvollziehen, dass du nach einem Gegenstück (es gibt keines) zu ReadSectionValues() Ausschau hältst, aber da nach dem Bearbeiten einer Section diese in der INI-Datei komplett ersetzt werden muss, dürfte es keinen Zeitvorteil geben:

Delphi-Quellcode:
var
  ini: TMemIniFile;
  fn: TFileName;
  section: String;
  s: TStrings;
  i: Integer;
begin
  // prepare
  fn := ChangeFileExt(ParamStr(0), '.ini');
  ini := TMemIniFile.Create(fn);
  section := 'Privateer3000';
  ini.ReadSectionValues(section, ListBox.Items);

  // modify values ...

  // store Section - one fell sweep
  ini.EraseSection(section);
  s := TStringList.Create;
  ini.GetStrings(s);
  s.Add(Format('[%s]', [section]));
  s.AddStrings(ListBox.Items);
  ini.SetStrings(s);
  s.Free;

  // my favourite - one by one - my
  ini.EraseSection(section);
  with ListBox.Items do
  for i := 0 to Pred(Count) do
    ini.WriteString(section, Names[i], ValueFromIndex[i]);

  // update
  ini.UpdateFile;
  ini.Free;
end;
Grüße vom marabu

Privateer3000 28. Jul 2006 20:15

Re: listbox inhalt in eine ini schreiben
 
cool!
Danke!

Jacques 29. Sep 2006 15:16

Re: listbox inhalt in eine ini schreiben
 
Genau das hab ich auch gesucht. Besten Danke. Funktioniert klasse.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 Uhr.

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