Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Daten aus *.ini Datei auslesen (https://www.delphipraxis.net/78044-daten-aus-%2A-ini-datei-auslesen.html)

Diddy 28. Sep 2006 09:37


Daten aus *.ini Datei auslesen
 
Hi!
Bin neu in Delphi und habe ein Problem bzw. eine Frage.
Wie kann ich Daten aus einer *.ini Datei auslesen? Die Daten sollten dann wie folgt verarbeitet werden: Jeder Schlüssel soll ein Button sein, dabei ist der Name des Schlüssels der Text, der auf dem Button steht. Die Werte der Schlüssel sind Verweise auf Dateien, welche bei Betätigung des Buttons ausgeführt werden sollen. Zu guter Letzt soll für jede Section eine neue Spalte Buttons angelegt werden.

Wie könnte ich das machen bzw. ist sowas überhaupt möglich?

Danke schonmal im Voraus.

Greetz Diddy

Daniel B 28. Sep 2006 09:46

Re: Daten aus *.ini Datei auslesen
 
Hallo,

da wäre eine kleine Einführung: http://www.delphipraxis.net/internal...&highlight=ini :)

Diddy 28. Sep 2006 10:06

Re: Daten aus *.ini Datei auslesen
 
Danke für die Antwort!
Habe mir das Ganze mal zu Gemüte geführt! :) Jetzt bleibt nur noch die Frage wie ich automatisch so viele Buttons erstelle, wie Schlüssel und Werte in einer Section stehen. Also Bsp.:

So sieht beispielsweise die .ini Datei aus:

Code:
[SECTION1]
SCHLÜSSEL1 = Wert1
SCHLÜSSEL2 = Wert2
SCHLÜSSEL3 = Wert3
Nun sollte das Programm automatisch erkennen, das es drei Schlüssel sind und drei Buttons anlegen. Wenn ich nun aber die .ini Datei verändere und nur noch zwei Schlüssel drin stehen, dann sollte das Programm nur noch 2 Buttons anzeigen.

Jens Schumann 28. Sep 2006 10:16

Re: Daten aus *.ini Datei auslesen
 
Zitat:

Zitat von Diddy
Danke für die Antwort!
Habe mir das Ganze mal zu Gemüte geführt! :) Jetzt bleibt nur noch die Frage wie ich automatisch so viele Buttons erstelle, wie Schlüssel und Werte in einer Section stehen. Also Bsp.:

So sieht beispielsweise die .ini Datei aus:

Code:
[SECTION1]
SCHLÜSSEL1 = Wert1
SCHLÜSSEL2 = Wert2
SCHLÜSSEL3 = Wert3
Nun sollte das Programm automatisch erkennen, das es drei Schlüssel sind und drei Buttons anlegen. Wenn ich nun aber die .ini Datei verändere und nur noch zwei Schlüssel drin stehen, dann sollte das Programm nur noch 2 Buttons anzeigen.

Schau in der OH unter ReadSection nach

Diddy 29. Sep 2006 10:42

Re: Daten aus *.ini Datei auslesen
 
So... habe das alles nun etwas anders gemacht als geplant... aber dabei ist ein neues Problem entstanden. Beim Klick auf einen Button sollen mehrere Setups hintereinander ausgeführt werden, aber es tut sich nichts. Kan mir evt. jemand sagen was an meinem Code falsch ist?

Delphi-Quellcode:
procedure TMainForm.cmdUpdateClick(Sender: TObject);

const
  C_STR_INI_FILE = 'start.ini';
var
   cExecPath : String;
   nExecResult : Integer;
   cIniFile, cAppPath : String;
   oIniFile : TIniFile;
   setupCount, i : Integer;
   setup : TStringList;
   execString, execApp : string;
begin
  cExecPath := ExtractFilePath(Application.ExeName);
  cIniFile := cExecPath + C_STR_INI_FILE + #0;
  oIniFile := TIniFile.Create(cIniFile);

 // update 1, update 2, update 3 etc
  updateCount := oIniFile.ReadInteger('update', 'count', 0);

  for i := 1 to updateCount do
  begin
    execApp := oIniFile.ReadString('update', 'update' + IntToStr(i), '');

    execString := cExecPath + execApp + #0;
    //ShowMessage(execString);
    nExecResult := WinExec( @execString[1], SW_SHOWDEFAULT);
    WinExec( @execString[1], SW_SHOWDEFAULT);
  end;
end;
Greetz Diddy

Nils_13 29. Sep 2006 10:53

Re: Daten aus *.ini Datei auslesen
 
Hi und herzlich Willkommen in der DP!

Da ich nicht weiß, wie dein Code genau funktioniert, kann ich nur debuggen sagen. Das machst du ganz einfach, wie hier beschrieben (Debuggen solltest du sowieso können, wenn nicht, dann lern es, denn es nimmt dir manchmal viel Arbeit ab):

Klaus01 29. Sep 2006 10:55

Re: Daten aus *.ini Datei auslesen
 
Und Du bist Dir sicher dass:

Delphi-Quellcode:
// update 1, update 2, update 3 etc
  updateCount := oIniFile.ReadInteger('update', 'count', 0);

  for i := 1 to updateCount do
updateCount auch aus der Ini gelesen wird, wenn nicht hat updateCount einen
default Wert von 0 und dann wird nichts gemacht.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:28 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