Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Lesen von boolschen Werten aus INI-Dateien (https://www.delphipraxis.net/3331-lesen-von-boolschen-werten-aus-ini-dateien.html)

Hellcat 7. Mär 2003 09:39


Lesen von boolschen Werten aus INI-Dateien
 
Hi Leute!

Ich hab da ein kleines Problem - ich stell mich irgendwie zu dumm an eine INI-Datei auszulesen.
Das Problem sieht aus wie folgt: ich brauche einen boolschen Wert aus der INI, weiß aber vorher nicht welcher Zustand (true oder false) in der Datei gespeichert wurde...
Delphi-Quellcode:
procedure speichern (Thl: string; Schloss: String);
begin
  with TIniFile.Create(ExtractFilePath(paramstr(0))+'zustand.ini')do
    try
      writebool('Images', Thl, false);
      WriteBool('Images', Schloss, true);
    finally
    free;
  end;
end;

procedure laden (THL:boolean; Schloss: boolean);
begin
   with TIniFile.Create(ExtractFilePath(paramstr(0))+'zustand.ini') do
    try
      readbool('Images', THL, {was für eine Angabe muß hier hin?});
      readbool('Images', Schloss, {was für eine Angabe muß hier hin?});
    finally
   free;
   end;
end;
Bin für jede Hilfe dankbar!

sakura 7. Mär 2003 09:44

Re: Lesen von boolschen Werten aus INI-Dateien
 
Mal als Bespiel

Code:
procedure speichern (Thl: string; Schloss: String);
begin
  with TIniFile.Create(ExtractFilePath(paramstr(0))+'zustand.ini')do
    try
      writebool('Images', Thl, [color=#ff0000]FBoolThl[/color]);
      WriteBool('Images', Schloss, [color=#ff0000]FBoolSchloss[/color]);
    finally
    free;
  end;
end;

procedure laden (THL:boolean; Schloss: boolean);
begin
   with TIniFile.Create(ExtractFilePath(paramstr(0))+'zustand.ini') do
    try
      [color=#ff0000]FBoolThl := [/color]readbool('Images', THL, [color=#ff0000]True[/color]);
      [color=#ff0000]FBoolSchloss := [/color]readbool('Images', Schloss, [color=#ff0000]False[/color]);
    finally
   free;
   end;
end;
An die speziell gefragte Stelle musst Du die Standardwerte schreiben, falls der gewünschte Wert noch nicht in der Ini-Datei existiert.

...:cat:...

Hellcat 7. Mär 2003 10:04

Das heißt in deinem Beispiel müssten FboolTHL und FBoolSchloss noch als Variabeln deklariert werden und dann entsprechend übergeben werden? (Sorry, bin heute nicht ganz arbeitsfähig, daher auch die echt dummen Fragen...)

APP 7. Mär 2003 10:23

Genau,
Du mußt FboolTHL und FBoolSchloss als Variabeln deklarieren, oder Du kannst die Eigenschaften, wenn möglich, direkt zuweisen.

Allerdings sollten 'Images', Thl, usw. Konstanten sein.

Ich mache das immer so:

Delphi-Quellcode:
CONST
  SectionException           = 'Exception'; // Sektion im Ini-File
  KeyBtnEmail                = 'BtnEmail'; // Schlüssel im Ini-File
  KeyBtnEnabled              = 'BtnEnabled'; // noch ein Schlüssel
  ...
VAR
  INI_BTN_EMAIL              : Boolean;    // Var zum Speichern
  ...

...
FUNCTION ReadExceptionIni(aIniFileName: STRING): boolean;
VAR
  IniFile                    : TIniFile;
BEGIN
    IniFile := TIniFile.Create(aIniFileName);
  TRY
// ---------------------------- ButtonOptions ---------------------------------
    INI_BTN_EMAIL := IniFile.ReadBool(SectionException, KeyBtnEmail, FALSE);

    Button1.Enabled := IniFile.ReadBool(SectionException, KeyBtnEnabled, TRUE); // direktes zuweisen ohne Variable

...
Wobei FALSE, wie sakura schon erwähnte, ein Defaultwert ist.

Hellcat 7. Mär 2003 12:02

Ok, vielen dank für die schnelle Hilfe! Sollte wieder was auftauchen - ich weiß ja wo ich ein Forum finde... :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 Uhr.

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-2025 by Thomas Breitkreuz