Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit ini dateien (https://www.delphipraxis.net/80307-problem-mit-ini-dateien.html)

Hansa 7. Nov 2006 12:05

Re: Problem mit ini dateien
 
Geh mal ins Dos, also Eingabeaufforderung. Du wirst wohl irgendwo bei \windows\dokumente und einstellungen stehen. Dann gib 2,3 mal CD .. (oder ausgeschrieben ChDir ..) ein und gucke. :mrgreen: Den Befehl gibts 1:1 umgesetzt auch in Delphi.

Habe jetzt mal im Programm geguckt. Bei mir steht auch drin : ParamStr usw. Wäre vielleicht einer so nett und überlegt sich ein konkretes Beispiel, wie ich mein Windows, Programm oder sonstwas so verbiegen / falsch starten usw. muß, so daß der Unterschied zu einem Fehler führt ? :shock:

Matze 7. Nov 2006 12:12

Re: Problem mit ini dateien
 
Ich kenne mich mit DOS aus und cd kenne ich auch, wie wohl die meisten hier. :roll: Aber es geht hier nicht um DOS und wie du siehst, gibt es ChDir als Funktion (vllt auch CD(), aber das ist hier Jacke wie Hose).

Luckie 7. Nov 2006 12:22

Re: Problem mit ini dateien
 
Zitat:

Zitat von Hansa
Woriin besteht der Unterschied zwischen dem :

Delphi-Quellcode:
prodl := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'produktliste.ini');
und dem :
Delphi-Quellcode:
prodl := TIniFile.Create('produktliste.ini');

Oben wird ein absoluter Pfad angegeben und unten ein relativer. Und zwar relativ zum aktuellen Verzeichnis, welches nicht zwingend das Programmverzeichnis sein muss. Ich dachte das wäre nach über drei Jahren Delphipraxis langsam klar geworden.

raiguen 7. Nov 2006 12:28

Re: Problem mit ini dateien
 
Zitat:

Zitat von Interceptor
Beim oberen wird ein absoluter Pfad angegeben, beim unteren ein relativer :stupid:

Das sehe ich genauso :!:

Siehe hier:
Zitat:

Ist ein Dateisystem als Baum organisiert, benötigt man eine Methode, den Dateinamen zu spezifizieren:

absoluter Pfadname:
Ausgehend vom Wurzelverzeichnis wird ein Pfadname vergeben, in dem alle Verzeichnisse aufgeführt sind, die zur Datei führen. Der absolute Pfadname ist immer eindeutig.

relativer Pfadname:
Er wird in Verbindung mit dem Konzept des Arbeitsverzeichnis (working directory) oder aktuellen Verzeichnisses verwendet. Der Benutzer kann jederzeit ein beliebiges Verzeichnis zum aktuellen Verzeichnis erklären. In diesem Fall werden alle nicht absolut angegebenen Pfadangaben relativ zu diesem Verzeichnis angegeben.
Damit dürften alle Unklarheiten beseitigt sein :!: :?: :roll:

Muetze1 7. Nov 2006 12:41

Re: Problem mit ini dateien
 
1. Hatte TIniFile nicht sogar die Besonderheit die INI im Windows Ordner anzulegen, wenn nur ein Dateiname ohne Pfadangabe (egal ob relativ oder absolut) angegeben wurde?

2.
Zitat:

Zitat von Hansa
Habe jetzt mal im Programm geguckt. Bei mir steht auch drin : ParamStr usw. Wäre vielleicht einer so nett und überlegt sich ein konkretes Beispiel, wie ich mein Windows, Programm oder sonstwas so verbiegen / falsch starten usw. muß, so daß der Unterschied zu einem Fehler führt ? :shock:

Möglichkeit 1:
Du legst dir eine Verknüpfung auf die EXE deines Programmes an und legst als Arbeitsverzeichnis ein anderes fest.

Möglichkeit 2:
In der Konsole gehst du in das Verzeichnis wo deine EXE liegt. Dann wechselst du auf ein anderes Laufwerk und startest von dort dein Programm mit Laufwerksbuchstabe:EXE Name.

Zitat:

C:\Programme\TestProg\>deineEXE.exe <-- läuft
Zitat:

C:\Programme\TestProg\>d:

D:\Blubb\>c:deineEXE <-- WorkDir: D:\Blubb\, EXE Directory: C:\Programme\TestProg
Möglichkeit 3:
Leg deine EXE in den Suchpfad ab oder füge das EXE Verzeichnis dem Suchpfad hinzu und tippe an einer anderen Stelle einfach den Namen der EXE ein um das Programm zu starten.

Tumm 7. Nov 2006 13:12

Re: Problem mit ini dateien
 
Hi

Lass doch mal den
Delphi-Quellcode:
Free
Konstruktoraufruf weg. Lag bei mir auch schon mal daran

Tumm

Luckie 7. Nov 2006 13:14

Re: Problem mit ini dateien
 
Wo soll er den weglassen?

raiguen 7. Nov 2006 13:29

Re: Problem mit ini dateien
 
Zitat:

Zitat von Tumm
Hi

Lass doch mal den
Delphi-Quellcode:
Free
Konstruktoraufruf weg. Lag bei mir auch schon mal daran

Tumm

Nee, nee :!: Das würd ich auf keinsten!! Wenn
Delphi-Quellcode:
   prodl := TIniFile.Create('produktliste.ini');
dann auch zum Schluss (also nachdem alles in die INI geschrieben wurde bzw aus derselbigen gelesen wurde) auf jeden Fall
Delphi-Quellcode:
  prodl.Free;
Zitat:

Zitat von Muetze1
1. Hatte TIniFile nicht sogar die Besonderheit die INI im Windows Ordner anzulegen, wenn nur ein Dateiname ohne Pfadangabe (egal ob relativ oder absolut) angegeben wurde?

Nö! Nicht das ich wüsste :gruebel: Wird kein Pfad angegeben, so wird die INI-Datei in der Regel im gleichen Verzeichnis wie die EXE angelegt, es sei denn, man hat das aktuelle Arbeitsverzeichnis mit ChDir gewechselt...

:gruebel: Ist eigentlich die Ausgangsfrage bzw das Problem nun gelöst oder etwa doch? :gruebel:

Luckie 7. Nov 2006 13:33

Re: Problem mit ini dateien
 
Zitat:

Zitat von raiguen
Wird kein Pfad angegeben, so wird die INI-Datei in der Regel im gleichen Verzeichnis wie die EXE angelegt, es sei denn, man hat das aktuelle Arbeitsverzeichnis mit ChDir gewechselt...

Sag es doch klar und deutlich in einem Satz: "Wird kein Pfad angegeben, so wird die INI-Datei in der Regel im Arbeitsverzeichnis angelegt."

Christian Seehase 7. Nov 2006 13:40

Re: Problem mit ini dateien
 
Moin Rainer,

Zitat:

Zitat von raiguen
Wird kein Pfad angegeben, so wird die INI-Datei in der Regel im gleichen Verzeichnis wie die EXE angelegt

Nein, wenn die Datei wird dann im Windows-Verzeichnis angelegt:
Voraussetzung: Die Datei existiert dort noch nicht, und man schreibt etwas hinein.
Die Write-Methoden von TIniFile nutzen die entsprechenden API-Funktionen (z.B. MSDN-Library durchsuchenWritePrivateProfileString)

[EDIT]
@Luckie:
Zitat:

Zitat von Luckie
Sag es doch klar und deutlich in einem Satz: "Wird kein Pfad angegeben, so wird die INI-Datei in der Regel im Arbeitsverzeichnis angelegt."

Was aber nicht stimmt ;-)
[/EDIT]


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

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