Entwickler-Ecke

Sonstiges (Delphi) - True oder False aus Textdatei verwenden.


lasserda - So 13.05.07 13:10
Titel: True oder False aus Textdatei verwenden.
Hallo!

Ich habe in einer Textdatei boolsche Werte gespeichert und möchte diese nun in meinem Programm direkt einsetzen.

In etwa so:

Delphi-Quelltext
1:
2:
ListBoxEinstellungen.Items.LoadFromFile('options.dat');
CheckBox1.Checked:=ListBoxEinstellungen.Items[4]; // Zeile 4 entspricht TRUE


Gelöst habe ich es momentan so, aber das ist nich sonderlich elegant :)

Delphi-Quelltext
1:
2:
3:
4:
if ListBoxEinstellungen.Items[13] = 'True' then
begin
  Halle1CheckBox.Checked:=True;
end;


Gibt es irgendwie einen Befehl im Stil von StrToBoolean oder was ähnliches?

Vielen Dank schonmal für eure Hilfe.


Moderiert von user profile iconChristian S.: Topic aus VCL (Visual Component Library) verschoben am So 13.05.2007 um 18:29


Dunkel - So 13.05.07 13:26
Titel: Re: True oder False aus Textdatei verwenden.
Hallo!
user profile iconlasserda hat folgendes geschrieben:

Gibt es irgendwie einen Befehl im Stil von StrToBoolean oder was ähnliches?

Fast, versuch es mal mit StrToBool.


lasserda - So 13.05.07 13:37

Wenn ich diesen Code verwende:

Delphi-Quelltext
1:
Halle1CheckBox.Checked:=StrToBool(ListBoxEinstellungen.Items[35]);                    


Kommt folgende Fehlermeldung:

[Fehler] Unit_Einstellungen.pas(305): Undefinierter Bezeichner: 'StrToBool'

In meiner Delphi Hilfe finde ich auch nichts zu SrToBool.

Verwende Delphi 5 Enterprise, vielleicht da nicht mit bei?


Coder - So 13.05.07 14:11

Ist eigentlich in der Unit SysUtils.
Musst mal gucken ob du die hast.

MfG


lasserda - So 13.05.07 14:18

Es wird aber nicht in der SysUtils angezeigt... Eingebunen habe ich sie:

Delphi-Quelltext
1:
2:
3:
4:
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls, Spin, shlObj, ActiveX, Buttons, ExtCtrls, ColorGrd,
  Menus, Haupt_unit;


JayEff - So 13.05.07 14:52

Programmier sie dir doch selbst:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
function StrToBool(s: String): Boolean;
begin
   if s='true' then
      Result := true;
   else
      Result := false;
end;

Kannst sie ja deinen Maßstäben anpassen.
Störende Zeichen entfernen, wie z.B. #13#10 oder sowas.


jakobwenzel - So 13.05.07 14:53

Da würd ich aber um des s ein AnsiLowerCase machen, damit das auch mit True oder tRuE geht.


fuba - So 13.05.07 16:45

@ lasserda
warum verwendest du nicht nen "ini" file?


lasserda - So 13.05.07 22:10

Weil ich mich damit noch nicht weiter beschäftigt habe. Werde das aber umgehend nachholen :)

Vielen Dank für eure Hilfe.


Chatfix - So 13.05.07 22:21

Hier erfährst du mehr zu INIs: http://www.kuknet.de/tutorial1.pdf

In INI-Dateien wird aber auch nicht "true" und "false als string gespeichert, sondern "1" und "0".


Drahcir - Mo 21.05.07 14:14

Ich würde auch Boolean-Werte als 1 und 0 abspeichern. Damit spart man 3 bzw. 4 Bytes (!) sowie Probleme wie 'true' oder 'TRUE'. Ganz Sparsame können außerdem 8 Boolean-Werte auf 1 Byte quetschen.