Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Auslesen aus Ini (https://www.delphipraxis.net/130263-auslesen-aus-ini.html)

Dr4ke 5. Mär 2009 16:25


Auslesen aus Ini
 
Guten Tag!
Ich bin dabei eine persönliche Adressbuch-Software zu erstellen, habe jedoch Probleme beim Auslesen.
Ich speichere die Eingaben wie Name, Nummer etc. in einer Ini-Datei, was soweit auch gut funktioniert.
Doch wenn ich sie wieder auslesen möchte, bekomme ich erstmal einen Fehler der mir sagt ich benutze den falschen Typ, was schonmal nicht stimmt und wenn ich den Typ dann umwandle bekomme ich nur eine "0" als Ausgabe.

Delphi-Quellcode:
procedure TForm1.btnSucheClick(Sender: TObject);
var
ini : TIniFile;
name, vorname : string;
begin

ini := TIniFile.Create('liste.ini');
try
  labelVorname.Caption := edtSucheVorname.Text;
  labelName.Caption := edtSucheNachname.Text;
  labelMSN.Caption := IntToStr(ini.ReadInteger(name+', '+vorname, 'MSN', 0));

finally
  ini.free;

end;
end;
Die Ini-Datei sieht folgendermaßen aus:

Delphi-Quellcode:
[Mustermann, Max]
Geburtstag=12.07.1980
Telefon=081555
Handy=081508150815
E-Mail=Mustermann@gmx.de
ICQ=0815
MSN=Mustermann@gmx.de
Das Label allerdings verwandelt sich nur in eine 0 .. Woran könnte das liegen

Whatever 5. Mär 2009 16:30

Re: Auslesen aus Ini
 
Hallo,

also der erste Fehler der mir auffällt ist die Variable "Name". Dieser Name ist schon von Delphi reserviert, Du kannst ihn also nich als Variable benutzen.

Zitat:

ini.ReadInteger(name+', '+vorname, 'MSN', 0)
Strings müssen in Apostrophe gesetzt werden Variablen nicht. Was du da genau vorhattest weiß ich nicht. Auch das + muss nich gesetzt werden.

mfg Whatever

Dr4ke 5. Mär 2009 16:33

Re: Auslesen aus Ini
 
Das mit dem 'Name' wusste ich nicht, danke, kann allerdings hier nicht die Fehlerquelle sein.

Und
Delphi-Quellcode:
ini.ReadInteger(name+', '+vorname, 'MSN', 0)
in dieser Zeile ist schon alles ok, wenn du dir ma bitte die Section der Ini anschaust.

Helmi 5. Mär 2009 16:41

Re: Auslesen aus Ini
 
Hallo,

dein MSN-Eintrag in der INI-Datei ist ein String - du versuchst aber einen Integer aus der INI-Datei zu lesen

So müsst es heissen:
Delphi-Quellcode:
labelMSN.Caption := ini.ReadString(name+', '+vorname, 'MSN', ''));

Whatever 5. Mär 2009 16:44

Re: Auslesen aus Ini
 
Oh tut mir leid hab ich übersehn :oops:

Aber lieg ich richtig das Du mit der besagten Zeile das hier auslesen willst?
Zitat:

Mustermann@gmx.de
Wenn ja muss es natürlih heißen
Delphi-Quellcode:
labelMSN.Caption := IntToStr(ini.[u]ReadString[/u](name+', '+vorname, 'MSN', 0));
ReadString da Mustermann@gmx.de ein String und kein Integer ist. Damit hätte sich der Fehler mit dem falschen Typ geklärt.

mfg Whatever

Dr4ke 5. Mär 2009 16:46

Re: Auslesen aus Ini
 
Wie schon im ersten Post erwähnt, erzeugt das seltsamerweise einen Fehler.

Mit der Zeile

Delphi-Quellcode:
labelMSN.Caption := ini.ReadString(nachname+', '+vorname, 'MSN', 0);
erhalte ich

Zitat:

[Fehler] Unit1.pas(112): E2010 Inkompatible Typen: 'string' und 'Integer'


Edith sagt: jegliche variablen 'name' bereits in 'nachname' geändert. ;)

Whatever 5. Mär 2009 16:50

Re: Auslesen aus Ini
 
Delphi-Quellcode:
labelMSN.Caption := ini.ReadString(nachname+', '+vorname, 'MSN', '');
so sollte es klappen.... denk ich

Dr4ke 5. Mär 2009 16:57

Re: Auslesen aus Ini
 
So erfolgt leider überhaupt keine Ausgabe mehr. :(

Helmi 5. Mär 2009 17:03

Re: Auslesen aus Ini
 
Zitat:

Zitat von Dr4ke
So erfolgt leider überhaupt keine Ausgabe mehr. :(


Dann prüf doch mal ob die Section, die zu mittels nachname + vorname zusammenbaust auch wirklich gibt,
denn der Code von Whatever funktioniert für dein Ini-Beispiel

[Edit]
Habs grad mal in meinem Projekt ausprobiert:

Auslesen aus der Ini-Datei:
Delphi-Quellcode:
Label1.Caption := ReadString('Mustermann, Max', 'MSN', 'geht nicht');
Ini-Datei:

[Mustermann, Max]
MSN=test

Und "test" wird im Label angezeigt

Whatever 5. Mär 2009 17:05

Re: Auslesen aus Ini
 
Mach doch zum Testen mal
Delphi-Quellcode:
labelMSN.Caption := ini.ReadString('Mustermann, Max', 'MSN', '');
Das muss funktionieren :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 Uhr.
Seite 1 von 2  1 2      

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