AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ini-Fehler?!?

Ein Thema von TheMiller · begonnen am 14. Sep 2004 · letzter Beitrag vom 14. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Ini-Fehler?!?

  Alt 14. Sep 2004, 19:23
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:
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
Wie kann ich das unterdrücken...
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Ini-Fehler?!?

  Alt 14. Sep 2004, 19:28
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.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#3

Re: Ini-Fehler?!?

  Alt 14. Sep 2004, 19:30
Zitat von DJ-SPM:
ini.ReadString('Wert', 'Linie' + IntToStr(i), text));
Da der Code wahrscheinlich im Kontext einer Methode der Form ausgeführt wird, ist text eine Eigenschaft der Form.
Insofern ist es nicht verwunderlich, wenn Du selbige als Standardwert bei ReadString angibst.
Lösung: schreib anstatt text '' oder EmptyString.
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#4

Re: Ini-Fehler?!?

  Alt 14. Sep 2004, 19:32
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.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#5

Re: Ini-Fehler?!?

  Alt 14. Sep 2004, 19:37
Zitat von DJ-SPM:
Text ist in dem Sinne keine Variable, die definiert worden ist.
Wenn es die Variable nicht geben würde, könntest Du es nicht kompilieren. Text ist eine Variable/Eigenschaft von TForm.

Zitat von DJ-SPM:
Das nehme ich immer dann, wenn in der Ini was steht und der es auslesen soll, was unter einem String abgespeichert worden ist
Du meinst, den Wert der zurückgegeben werden soll, falls der Eintrag in der Ini nicht vorhanden ist. Kurz: Default-Wert.

Zitat von DJ-SPM:
Hoffe du verstehst es.
Mit viel Phantasie
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#6

Re: Ini-Fehler?!?

  Alt 14. Sep 2004, 19:40
Haha, urkomisch

Ne, im ernst. Wie soll denn ein Abruf aus einer ini aussehen, wenn ich einen String abfragen will?
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#7

Re: Ini-Fehler?!?

  Alt 14. Sep 2004, 19:44
Zitat von DJ-SPM:
Haha, urkomisch
Und ich dachte immer ich wäre zynisch

Zitat von DJ-SPM:
Wie soll denn ein Abruf aus einer ini aussehen, wenn ich einen String abfragen will?
Steht doch oben in Deinem Quelltext-Auszug. Nur solltest Du nicht TForm.Text als Standardwert für nicht existierende Einträge in der INI angeben, sondern a) vorher überprüfen ob der Eintrag existiert oder b) einen sinnvollen Standardwert angeben (EmptyString, 'foobar', 'gozilla', '<invalid!>'... je nachdem was in Deiner Anwendung einen Sinn ergibt).

ps: normalerweise schreibt man die Anzahl auch in die INI-Sektion:
Code:
[Wert]
[color=red]Count=2[/color]
Linie0=foo
Linie1=bar
  Mit Zitat antworten Zitat
Benutzerbild von mischerr
mischerr

Registriert seit: 6. Feb 2004
Ort: Konz
238 Beiträge
 
Delphi 12 Athens
 
#8

Re: Ini-Fehler?!?

  Alt 14. Sep 2004, 19:44
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), ''));
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#9

Re: Ini-Fehler?!?

  Alt 14. Sep 2004, 19:50
Wenn ich diesen Code anwende, dann ist immer alles leer. Also müsste ich theoretisch folgendes eingeben:

Delphi-Quellcode:
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), ''));
Hoffe, ich habe mich jetzt nicht vertan:

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...
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#10

Re: Ini-Fehler?!?

  Alt 14. Sep 2004, 19:59
Zitat von DJ-SPM:
Delphi-Quellcode:
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), ''));


Probier's mal damit ...

Delphi-Quellcode:
x := ini.ReadString('Wert', 'Linie' + IntToStr(i), '');
if x <> 'then Memo1.Lines.Add (x);
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:53 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