Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ini-File Management (https://www.delphipraxis.net/147837-ini-file-management.html)

Ajin 17. Feb 2010 10:51


Ini-File Management
 
Hallo DP !

Ich möchte in einem ini File Datensätze abspeichern. Ich bin mir nicht sicher mit welchem Kniff die Daten sortiert wieder in eine Combobox lesen kann.
Ein simples Beispiel: es geht um Äpfel und Birnen Datensätze

Apfel Pinklady
==============
farbe=grün
hübsch=ja

Apfel GoldenD
============
farbe=gelb
hübsch=nein

Birne Nashi
===========
name=sorina
farbe=gelb

Wenn ich nun 10 Äpfel und 10 Birnen in ein ini File speichere, wie kann ich dann beim Einlesen der Daten (Combobox) zwischen den ganzen Äpfeln und Birnen unterscheiden?

Delphi-Quellcode:
{*******************************************************************************
*  sections einlesen                                                         *
********************************************************************************}
procedure TForm1.fill_combo;
var
 sl: TStringList;
 i: Integer;
begin
  dataini := TIniFile.Create(PathtoExe+INI_PFAD+DATA_INI);
    try
    sl := TStringList.Create;
    try
      try
        dataini.ReadSections(sl);
        for i := 0 to sl.Count - 1 do
        Form1.combo_obst.Items.Add(sl.Strings[i]);
      except
        errormessage(datei_fehler, em_datei_fehler+#10#13+#10#13+
        PathtoExe+INI_PFAD+DATA_INI);
      end;
    finally
      sl.Free;
    end;
  finally
    dataini.Free;
  end;
end;
somit hab ich jede Obstsorte in der Combo Box. Kann ich das z.B. auf die Apfel-Einträge limitieren?

Andreas L. 17. Feb 2010 10:58

Re: Ini-File Management
 
Zitat:

Zitat von Ajin
Delphi-Quellcode:
{*******************************************************************************
*  sections einlesen                                                         *
********************************************************************************}
procedure TForm1.fill_combo;
var
 sl: TStringList;
 i: Integer;
begin
  dataini := TIniFile.Create(PathtoExe+INI_PFAD+DATA_INI);
    try
    sl := TStringList.Create;
    try
      try
        dataini.ReadSections(sl);
        for i := 0 to sl.Count - 1 do
        //neu:
        begin
          if pos('Apfel', sl[i]) > 0 then
            Form1.combo_obst.Items.Add(sl.Strings[i])
          else
            //in andere combo die birnen
        end;
        //
      except
        errormessage(datei_fehler, em_datei_fehler+#10#13+#10#13+
        PathtoExe+INI_PFAD+DATA_INI);
      end;
    finally
      sl.Free;
    end;
  finally
    dataini.Free;
  end;
end;

Wobei ich es sinnvoller finde wenn du in deiner Ini zu jeden Eintrag noch ein Feld Typ als Integer hinzufügst um zwischen Früchten zu unterscheiden...

Luckie 17. Feb 2010 11:01

Re: Ini-File Management
 
Oder man benutzt XML-Dateien.

DeddyH 17. Feb 2010 11:02

Re: Ini-File Management
 
Oder eine Datenbank.

Ajin 17. Feb 2010 11:39

Re: Ini-File Management
 
Ja Andreas so könnte ich es wirklich handhaben, vielen Dank!

@Luckie: ja du hast natürlich recht, ich hab mir auch schon das himXML angeschaut aber ich bin leider ein völliger xml Neuling und trau mich nicht an die Sache ran...
@DeddyH: ohne Zusatzinstallation auf dem client?

Andreas L. 17. Feb 2010 12:03

Re: Ini-File Management
 
Zitat:

Zitat von Ajin
@DeddyH: ohne Zusatzinstallation auf dem client?

Z. B. SQLite oder Firebird-embedded


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 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