Entwickler-Ecke
Dateizugriff - INI-Datei im Programm-Verzeichnis
Cyberbob - Fr 18.10.02 22:21
Titel: Re: Benutzung von INI-Files (INI-Dateien)
Chatfix hat folgendes geschrieben: |
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| ini := TIniFile.Create('c:\meineini.ini'); // INI erstellen und falls vorhanden initialisieren try ini.WriteString('Sektion1','Eigenschaft1','Dein String'); // String in Sektion1 unter Eigenschaft1 abspeichern ini.WriteInteger('Sektion2','Eigenschaft2',1234); // Intergerwert (1234) in Sektion2 unter Eigenschaft2 abspeichern finally ini.Free; // Variable ini wieder freigeben end; |
|
Hierzu habe ich eine Frage, wie kann ich das machen, das die ini Datei im selben Verzeichnis erstellt, bzw. ausgelesen wird, in der das Hauptprog. ist?
DeCodeGuru - Fr 18.10.02 22:44
Wie man das Verzeichnis des Hauptprogramms ermittelt, wurde im Forum schon einige Male besprochen. Hier haste aber nochmal ein Beispiel:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| ini := TIniFile.Create(ExtractFilePath+'meineini.ini'); //nur diese Zeile muss geändert werden try ini.WriteString('Sektion1','Eigenschaft1','Dein String'); ini.WriteInteger('Sektion2','Eigenschaft2',1234); finally ini.Free; end; |
Cyberbob - Fr 18.10.02 22:58
ah, nun funktioniert es, ich hatte es immer mit '..\datei.ini ' versucht
Cyberb 8) b
Delete - Sa 19.10.02 08:51
Cyberbob hat folgendes geschrieben: |
ah, nun funktioniert es |
Wirklich? Wenn ich mir die Zeile aus DeCodeGurus Quelltext so ansehe:
DeCodeGuru hat folgendes geschrieben: |
Quelltext 1:
| ini := TIniFile.Create(ExtractFilePath+'meineini.ini'); | |
dann hoffe ich, du hast den Fehler selbsttätig ausgebessert?
DeCodeGuru: Du hast recht mit deinem Kommentar:
Zitat: |
Quelltext 1:
| //nur diese Zeile muss geändert werden | |
Unbedingt sogar!
Ab in die Ecke, und schäm dich! :wink:
Noch ein genereller Nachtrag -
Wenn die INI-Datei nicht bloß im selben Verzeichnis wie das Programm liegt, sondern wenn sie auch den selben Dateinamen hat (nur eben die Endung ".ini"), dann gibt´s also simpelste aller Zugriffsmöglichkeiten noch diese:
Quelltext
1:
| ini := TIniFile.Create(ChangeFileExt(paramstr(0),'.ini')); |
DeCodeGuru - Sa 19.10.02 11:11
shit, ich habe den Parameter vergessen :oops: Tut mir leid. Stand wohl etwas aufm Schlauch. Also Parameter mustse halt dann ParamStr(0) oder Application.Exename übergeben (Wenn du mit der VCL codest).
Delete - Sa 19.10.02 12:49
DeCodeGuru hat folgendes geschrieben: |
shit, ich habe den Parameter vergessen :oops: Tut mir leid. Stand wohl etwas aufm Schlauch. |
Na gut. Darfst wieder aus der Ecke rauskommen.
Zitat: |
Also Parameter mustse halt dann ParamStr(0) oder Application.Exename übergeben (Wenn du mit der VCL codest). |
Hm, obwohl ... :wink: ... da man "paramstr(0)" auch in der VCL verwenden kann (weil "Application.ExeName" strenggenommen nichts anderes ist), kommst du bitte rückwärts aus der Ecke raus ... :twisted:
matze - Sa 19.10.02 13:01
es würde auch klappen wenn du .\meine.ini reintippen würdest !!!
DeCodeGuru - Sa 19.10.02 14:10
Zitat: |
Hm, obwohl ... ... da man "paramstr(0)" auch in der VCL verwenden kann (weil "Application.ExeName" strenggenommen nichts anderes ist), kommst du bitte rückwärts aus der Ecke raus ... |
*Schnief* :mrgreen:
Delete - Sa 19.10.02 15:21
matze hat folgendes geschrieben: |
es würde auch klappen wenn du .\meine.ini reintippen würdest !!! |
Aber nur, wenn du nachher mit deiner Ini-Datei Verstecken spielen willst.
Delete - Sa 19.10.02 16:46
Ich glaube, wir müssen matze halt noch mal sagen, dass der Punkt nicht das Programmverzeichnis sondern das Arbeitsverzeichnis ist.
matze: der Punkt ist das Arbeitsverzeichnis, in dem das Programm aktiv wird. Wenn die viel Glück hast, ist es zufällig mit dem Programmverzeichnis der Exe identisch. Aber schon die Anweisung:
Quelltext
1:
| SetCurrentDir('C:\SonstWoHin'); |
irgendwo im Programm ändert die ganze Sache. Wenn du nach so einer Anweisung versuchst, deinen Vorschlag umzusetzen, dann wirst du sehen, dass es nicht klappt, weil
dann nämlich identisch mit
Quelltext
1:
| C:\SonstWoHin\meine.ini |
ist.
An "paramstr(0)" + "ExtractFilePath" führt also kein Weg vorbei, wenn du wissen willst, wo die EXE liegt.
matze - Sa 19.10.02 20:04
echt ?? uups !!! Shit !!!
Man lernt halt nie aus !!!
[ganz nebenbei: jetzt weiss ich acuh warum ein paar proggis von mir auf manchen systemen rumzicken !!! :oops:]
Delete - Sa 19.10.02 21:30
jetzt weiß ich auch, wessen Programme ich mal lieber nicht testen werde ... :wink:
DeCodeGuru - Sa 19.10.02 21:32
sei nicht so gemein zu ihm :mrgreen: :wink:
Delete - So 20.10.02 04:07
:mrgreen:
Das ist der Zynissmus von Mathias. Einfach nicht auif die Goldwaage legen und drüber lächeln. :wink:
Delete - So 20.10.02 09:12
Genau!
Ich will hier ja nicht wirklich jemanden beleidigen ... abgesehen davon, kann ich auch einstecken (manchmal muss ich das sogar :wink:). Was soll´s ...
matze - So 20.10.02 10:18
mooooment mal !!! 5 min, nachdem ich das gelesen hab, hab ich sämtliche porggis von mir umgebaut !!! also bitte nicht meckern !!! :eyes:
Delete - So 20.10.02 11:42
Das war ja auch nicht verkehrt, matze.
Und meinen Spruch wirst du mir ja wohl nicht übelnehmen? :?
:wink:
matze - So 20.10.02 12:40
nein, ich nehm dir das nicht übel.
Ich schliesse mich einfach der meinug von luckie an:
Luckie hat folgendes geschrieben: |
Das ist der Zynissmus von Mathias. Einfach nicht auif die Goldwaage legen und drüber lächeln. |
DeCodeGuru - So 20.10.02 13:00
Zitat: |
Das ist der Zynissmus von Mathias. Einfach nicht auif die Goldwaage legen und drüber lächeln. |
Gut zu wissen :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!