Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Setup.INI einlesen (https://www.delphipraxis.net/195677-setup-ini-einlesen.html)

GVolberg 16. Mär 2018 22:28

Setup.INI einlesen
 
Hallo Community,

ich möchte mein Delphiprogramm in einem beliebigen Verzeichnis starten und es soll dann genau dort nach einer Datei setup.ini suchen und einlesen.

Zur Zeit habe ich den Pfadnamen hartkodiert im Sourcecode stehen. Das klappt prima.

Auf Dauer finde ich das aber nicht ideal, da der Benutzer meines Programms selber bestimmen können soll, wo das EXE läuft.

Viele Grüße
Gerd

günni0 16. Mär 2018 22:45

AW: Setup.INI einlesen
 
Delphi-Quellcode:
ExtractFilePath(ParamStr(0)) + 'Setup.ini'

oder
Delphi-Quellcode:
ExtractFilePath(Application.ExeName) + 'Setup.ini'


Beides gleich.

Uwe Raabe 16. Mär 2018 23:26

AW: Setup.INI einlesen
 
Zitat:

Zitat von günni0 (Beitrag 1396380)
Delphi-Quellcode:
ExtractFilePath(ParamStr(0)) + 'Setup.ini'
oder
Delphi-Quellcode:
ExtractFilePath(Application.ExeName) + 'Setup.ini'

Das gibt das Verzeichnis an wo die EXE liegt, aber nicht das Verzeichnis aus dem sie gestartet wurde. Die Frage ist in der Form nicht eindeutig gestellt.

Also, was soll's sein: c:\WINDOWS\system32 oder c:\temp?
Code:
c:\WINDOWS\system32>c:\Temp\MeinProg.exe

GVolberg 17. Mär 2018 00:17

AW: Setup.INI einlesen
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1396381)
Zitat:

Zitat von günni0 (Beitrag 1396380)
Delphi-Quellcode:
ExtractFilePath(ParamStr(0)) + 'Setup.ini'
oder
Delphi-Quellcode:
ExtractFilePath(Application.ExeName) + 'Setup.ini'

Das gibt das Verzeichnis an wo die EXE liegt, aber nicht das Verzeichnis aus dem sie gestartet wurde. Die Frage ist in der Form nicht eindeutig gestellt.

Also, was soll's sein: c:\WINDOWS\system32 oder c:\temp?
Code:
c:\WINDOWS\system32>c:\Temp\MeinProg.exe

Many thanks schonmal.

Aktuell liegt das exe in c:\games . Dort liegt auch die ini

KodeZwerg 17. Mär 2018 00:26

AW: Setup.INI einlesen
 
Hi, Du kannst auch in der Zeile wo Du auf eine Datei im Verzeichniss des Hauptprogramms zugreifen möchtest lediglich ein '.\Setup.ini' anstelle 'X:\Verzeichniss\Setup.ini', klappt auch mit Unter- und Oberverzeichnissen.
Der >.< ist ein Platzhalter für's Programmverzeichniss.

Dalai 17. Mär 2018 01:35

AW: Setup.INI einlesen
 
Zitat:

Zitat von KodeZwerg (Beitrag 1396386)
Der >.< ist ein Platzhalter für's Programmverzeichniss.

Nein, der Punkt ist ein Platzhalter für das aktuelle Arbeitsverzeichnis des Programms. C:\Windows\system32 in Uwes Beispiel. Übrigens, wie auch schon von anderen Leuten hier im Forum erwähnt, kann sich das Arbeitsverzeichnis eines Programms durch das Benutzen von TOpenDialog und Konsorten ändern. Daher IMMER absolute Pfade zusammenbauen.

Grüße
Dalai

KodeZwerg 17. Mär 2018 08:42

AW: Setup.INI einlesen
 
Habe es gerade nochmal getestet, also bei mir wird immer das Verzeichniss genommen wo sich auch die .exe befindet, auch wenn sich die .exe nicht im aktuellen Pfad befindet. Getestet per Console (cmd.exe).
Vielleicht liegt es auch daran das in einer meiner Standard-Units ein
Code:
ChDir(ExtractFilePath(ParamStr(0)));
im INITIALIZATION part steht.
In einem Neuen Projekt ohne auf meine Units zuzugreifen kommt genau das raus was ihr beschrieben habt also denke ich mal das ChDir() macht den Unterschied.

DeddyH 17. Mär 2018 09:08

AW: Setup.INI einlesen
 
Das ChDir wechselt das aktuelle Arbeitsverzeichnis. Nur kann es sein, dass das nach dem Aufruf noch einmal irgendwo anders geschieht, z.B. durch einen Dialog. Aber das hast Du bestimmt auch schon ausprobiert und hier reden alle nur Blödsinn :roll:

KodeZwerg 17. Mär 2018 09:23

AW: Setup.INI einlesen
 
Tut mir ja leid, ich konnte nichts von einem Dialog lesen und bin daher auch von keinem vorigen Dialog der das Verzeichniss wechselt ausgegangen, in meinem Test war nur Console-Code, kein VCL.

günni0 17. Mär 2018 10:16

AW: Setup.INI einlesen
 
Zitat:

Das gibt das Verzeichnis an wo die EXE liegt, aber nicht das Verzeichnis aus dem sie gestartet wurde. Die Frage ist in der Form nicht eindeutig gestellt.
Darüber hat er kein Wort gesagt.
Zitat:

ich möchte mein Delphiprogramm in einem beliebigen Verzeichnis starten und es soll dann genau dort nach einer Datei setup.ini suchen und einlesen.
ich bin mir sicher er will einfach nur die Exe doppelt anklicken und die Ini laden. Kein CMD und so was.


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

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