![]() |
IniFiles - ReadString
hi,
wie lade ich strings aus inis???? Ich dachte, dass das so gehen würde:
Delphi-Quellcode:
aber dann ist mein user_name immer leer. Was habe ich da für ein fehler gemacht??
begin
user_name := ini.readstring('userinformationen', 'username', '') end; -homer- |
Re: IniFiles - ReadString
Hallo -homer-,
so müsste es eigentlich gehen. Hast du die ini-Datei auch geladen bzw erstellt? Tschüß Markus |
Re: IniFiles - ReadString
Hi,
an sich ist da alles richtig an deinem Code, daher vermute ich, der Wert steht einfach nicht in der Ini drin, und in diesem Falle gibt ReadString den dritten Parameter, in deinem Falle also einen leeren String, zurück. |
Re: IniFiles - ReadString
Existieren in der INI-Datei die Sektion "userinformationen" und der wert "username"? Falls einer dieser beiden nicht existiert, so wird der Default-Wert zurückgegeben, welcher der dritte Parameter ist.
|
Re: IniFiles - ReadString
exakt an der gleichen Stelle ärgere ich mich soeben grün, blau und schwarz. Das darf doch alles nicht mehr wahr sein, ich zitiere mal OH von Delphi 7 Enterprise.
Zitat:
ich wundere mich und suche wie blöd an meinem QuellText weil das Program abschmiert und stelle dann fest, dass die Default Sektion sauber einen Leerstring zurückgibt, wenn die Definition in der Ini-file nicht zugewiesen wurde. (Für alle Besserwisser und solche die es werden wollen, mit einem vorhandenen String klappts) Wozu hab ich dann diese Default Sektion ?!?!?!?! :wall: einer von vielen Katastrohen-Bugs in Delphi :wall: jetzt muss ich doch tatsächlich so schreiben
Code:
Dieser Tag ist für mich gelaufen. :wall: :wall:
if myIni.Hostname=''then ....
Ron |
Re: IniFiles - ReadString
nun mal langsam....
ich nehme mal an, deine INI-Datei sieht so aus: [userinformationen] username= und dann bekommst du einen Leerstring zurück mit
Delphi-Quellcode:
2 Fragen:
user_name := ini.readstring('userinformationen', 'username', '');
a) Was erwartest du anderes ? b) was soll daran ein Bug sein ? wenn du einen Default-string "LocalHost" willst, dann schreib doch einfach
Delphi-Quellcode:
user_name := ini.readstring('userinformationen', 'username', 'LocalHost');
Roderich |
Re: IniFiles - ReadString
Delphi-Quellcode:
bei aller Liebe, aber genau DAS tue ich doch, hier Auszug meiner Ini Datei.
user_name := ini.readstring('userinformationen', 'username', 'LocalHost');
Code:
dazu passender Code zum Einlesen des Eintrags "mySQLHost"
[settings]
Port1=4711 ServerHost=192.168.1.2 Port2=4712 mySQLHost= mySQLPort=
Code:
Erwartungsgemäss müsste/sollte nun in der String-Variable meinHost der Eintrag 'localHost' zu finden sein, soweit korrekt? Dies ist aber nicht der Fall. Stattdessen enthält die Variable meinHost nämlich nix ---> '' <---- und DAS ist ja wohl der tollste Bug seitdem ich Delphi kenne. Wenn ich beispielsweise mySQLPort als
meinHost:=myIni.ReadString('settings','mySQLHost','localHost');
Code:
einlesen will und definiere als default 6969 klappts doch auch!
myini.readInteger
P.S. selbstverständlich wird anschliessend auch korrekt
Code:
aufgerufen.
myIni.free;
|
Re: IniFiles - ReadString
jo scheint wirklich n bug zu sein, wirst du wohl nicht um eine if anweisung drumrumkommen
|
Re: IniFiles - ReadString
Das es ein Bug ist würd ich nicht sagen,
es kann doch sein, dass jemand auch mal für einen Schlüssel nichts speichern will und dann beim wieder-einlesen nicht den Default-Wert haben will ? solange der Wert in der Ini existiert, hat er auch den Wert, der hinter dem = steht |
Re: IniFiles - ReadString
moin,
Delphi macht exakt das was es soll! Die Variable "mySQLHost" existiert schließlich in der ini-Datei ... nur ist ihr Wert halt ''. und genau das gibt Delphi ja auch zurück! Der Default-Parameter kommt nur zum Einsatz, wenn die Variable, auf die zugegriffen werden soll nicht existiert!. EDIT: Zugegeben, die OH ist da nicht ganz korrekt ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 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