Delphi-PRAXiS
Seite 2 von 2     12   

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 17:08

Re: Auslesen aus Ini
 
Ja, den Eintrag gibt es.

Hier einmal die komplette Ini-Datei mit nur einer Section:

Zitat:

[Mustermann, Max]
Geburtstag=12.07.1980
Telefon=081555
Handy=081508150815
E-Mail=Mustermann@gmx.de
ICQ=0815
MSN=Mustermann@gmx.de
Die Procedure zum eintragen ist folgende:

Delphi-Quellcode:
procedure datenSpeichern(var nachname, vorname, geb, nummer, handy, email, icq, msn : string; ini : TIniFile);
begin
ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'liste.ini');

ini.WriteString(nachname+', '+vorname, 'Geburtstag', geb);
ini.WriteString(nachname+', '+vorname, 'Telefon', nummer);
ini.WriteString(nachname+', '+vorname, 'Handy', handy);
ini.WriteString(nachname+', '+vorname, 'E-Mail', email);
ini.WriteString(nachname+', '+vorname, 'ICQ', icq);
ini.WriteString(nachname+', '+vorname, 'MSN', msn);
ini.Free;
end;

Zum auslesen benutze ich:

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

ini := TIniFile.Create('liste.ini');
try
  labelVorname.Caption := edtSucheVorname.Text;
  labelName.Caption := edtSucheNachname.Text;
  labelMSN.Caption := ini.ReadString(nachname+', '+vorname, 'MSN', '');

finally
  ini.free;

end;
end;


P.S.: Tatsächlich, das Auslesen funktioniert generell nicht, da muss es einen massiven Fehler geben, den ich allerdings nicht ausfindig machen kann. Das arbeiten mit Ini Dateien hab ich mir von dsdt abgeschaut.

Helmi 5. Mär 2009 17:12

Re: Auslesen aus Ini
 
Hallo,

das kann auch nicht gehen:
Delphi-Quellcode:
procedure TForm1.btnSucheClick(Sender: TObject);
var
ini : TIniFile;
nachname, vorname : string;
begin

ini := TIniFile.Create('liste.ini');
try
  labelVorname.Caption := edtSucheVorname.Text;
  labelName.Caption := edtSucheNachname.Text;
  labelMSN.Caption := ini.ReadString(nachname+', '+vorname, 'MSN', '');

finally
  ini.free;

end;
end;
Denn die Variablen "nachname" und "vorname" sind nicht definiert.

Du müsstest es wie folgt schreiben:
Delphi-Quellcode:
begin

//Variablen definieren
nachname := 'Mustermann';
vorname := 'Max';

ini := TIniFile.Create('liste.ini');
try
[Edit]
oder wenn du deine Edits verwenden willst:

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

ini := TIniFile.Create('liste.ini');
try
  vorname := edtSucheVorname.Text;
  nachname := edtSucheNachname.Text;

  labelVorname.Caption := vorname;
  labelName.Caption := nachname;

  labelMSN.Caption := ini.ReadString(nachname+', '+vorname, 'MSN', '');
finally
  ini.free;

end;
end;

Dr4ke 5. Mär 2009 17:18

Re: Auslesen aus Ini
 
Natürlich ein peinlicher Fehler, dass ich die Zuweisung vergessen haben, allerdings noch immer keine bzw. die Falsche Ausgabe.

Delphi-Quellcode:
procedure TForm1.btnSucheClick(Sender: TObject);
var
ini : TIniFile;
nachname, vorname : string;
begin
nachname := edtSucheNachname.Text;
vorname := edtSucheVorname.Text;
ini := TIniFile.Create('liste.ini');
try
  labelVorname.Caption := edtSucheVorname.Text;
  labelName.Caption := edtSucheNachname.Text;
  labelMSN.Caption := ini.ReadString(nachname+', '+vorname, 'MSN', 'geht nicht');

finally
  ini.free;

end;
end;
Und oh Wunder: Das label wird zu "geht nicht" :D

Helmi 5. Mär 2009 17:21

Re: Auslesen aus Ini
 
jetzt mach mal nen test und schreib direkt

Delphi-Quellcode:
labelMSN.Caption := ini.ReadString('Mustermann, Max', 'MSN', 'geht nicht');

Dr4ke 5. Mär 2009 17:22

Re: Auslesen aus Ini
 
Exakt das gleiche Resultat ..

DeddyH 5. Mär 2009 17:24

Re: Auslesen aus Ini
 
Und wenn Du mal einen absoluten Pfad verwendest?

Helmi 5. Mär 2009 17:25

Re: Auslesen aus Ini
 
Existiert die Ini-Datei?

Gib hier mal einen absoluten Pfad an:

Delphi-Quellcode:
ini := TIniFile.Create('liste.ini');
Also so z. b.:

Delphi-Quellcode:
ini := TIniFile.Create('c:\liste.ini');
beziehungsweise den Pfad, in dem die Datei wirklich liegt...

Dr4ke 5. Mär 2009 17:27

Re: Auslesen aus Ini
 
Aber natürlich, der Pfad war einfach nur falsch!

Mit
Delphi-Quellcode:
ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'liste.ini');
funktioniert es einwandfrei, vielen Dank!


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

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