![]() |
Ini-Fehler?!?
Hi,
wenn ich Daten aus der Ini auslese geht alles wunderbar. Doch wenn ich ein String leer ist und ich ihn trotzdem auslese, dann schreibt er mir immer die Caption des Forms in die Memos rein. Bsp:
Delphi-Quellcode:
Wie kann ich das unterdrücken...
Ini-Datei:
[Wert] Linie0=500 Linie1= Linie2=500 Linie3= Linie4= Linie5= Linie6= Linie7= Linie8= #Das Auslesen# for i:=0 to 99 do begin Memo3.Lines.Add(ini.ReadString('Wert','Linie'+IntToStr(i),text)); #Memo sieht so aus# 500 Datenbank 500 Datenbank Datenbank Datenbank Datenbank Datenbank Datenbank Datenbank Datenbank Datenbank |
Re: Ini-Fehler?!?
Hai DJ-SPM,
was steht denn in deiner Variablte text? Diese ist ja der Defaultwert der von .ReadString zurückgegeben wird wenn in dem entsprechenden Eintrag nicht steht. |
Re: Ini-Fehler?!?
Zitat:
Insofern ist es nicht verwunderlich, wenn Du selbige als Standardwert bei ReadString angibst. Lösung: schreib anstatt text '' oder EmptyString. |
Re: Ini-Fehler?!?
Text ist in dem Sinne keine Variable, die definiert worden ist. Das nehme ich immer dann, wenn in der Ini was steht und der es auslesen soll, was unter einem String abgespeichert worden ist Hoffe du verstehst es.
|
Re: Ini-Fehler?!?
Zitat:
Zitat:
Zitat:
|
Re: Ini-Fehler?!?
Haha, urkomisch ;-)
Ne, im ernst. Wie soll denn ein Abruf aus einer ini aussehen, wenn ich einen String abfragen will? |
Re: Ini-Fehler?!?
Zitat:
Zitat:
ps: normalerweise schreibt man die Anzahl auch in die INI-Sektion:
Code:
[Wert]
[color=red]Count=2[/color] Linie0=foo Linie1=bar |
Re: Ini-Fehler?!?
Wenn ich das richtig verstehe, dann willst du nen leeren String zurückbekommen, falls kein Eintrag gefunden wird!?
Falls ja, dann hilft wohl...
Code:
ini.ReadString('Wert', 'Linie' + IntToStr(i), ''));
|
Re: Ini-Fehler?!?
Wenn ich diesen Code anwende, dann ist immer alles leer. Also müsste ich theoretisch folgendes eingeben:
Delphi-Quellcode:
Hoffe, ich habe mich jetzt nicht vertan:
for i:=0 to 99 do begin
IF (ini.ReadString('Wert', 'Linie' + IntToStr(i), text)) <> (ini.ReadString('Wert', 'Linie' + IntToStr(i), '')) THEN Memo1.Lines.Add(ini.ReadString('Wert', 'Linie' + IntToStr(i), text)) ELSE Memo1.Lines.Add(ini.ReadString('Wert', 'Linie' + IntToStr(i), '')); Also, wenn der Wert aus der Ini nicht leer ist, dann fügt er den Wert aus der Ini ein. Wenn er aber leer ist, dann fügt er auch nur eine leere Zeile hinzu. Aber das klappt auch nicht. Jetzt schreibt er keine 99 Zeilen mit Datenbank voll, sonder nur die erste... |
Re: Ini-Fehler?!?
Zitat:
Probier's mal damit ... :wink:
Delphi-Quellcode:
x := ini.ReadString('Wert', 'Linie' + IntToStr(i), '');
if x <> '' then Memo1.Lines.Add (x); |
Re: Ini-Fehler?!?
Sorry, aber irgendwie versteh ich dich nicht...
Die Rückgabe ist doch eh entweder der gefundene Wert, oder ein leerer String - wieso noch diese mehr als verwirrende if-Bedingung??? :gruebel: |
Re: Ini-Fehler?!?
Ich mache es mir (und euch) gerade unnötig schwer, da mein einziger Fehler darin liegt, dass ich durch eine Combobox die Ini auswähle und dann einlade. Dadurch, dass die Auswahl nicht gefunzt hat, konnte er auch nix auslesen und hat somit unerkläriche Werte eingetragen.
Mit anderen Worten: Ich habe eine falsche prozedur zum Ini-Auswählen gehabt und somit wollte er irgendwo lesen und fand natürlich nix... :wall: ... es funzt ... danke @ all |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:33 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