AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi INI File manchmal nicht im Prog. Verzeichnis
Thema durchsuchen
Ansicht
Themen-Optionen

INI File manchmal nicht im Prog. Verzeichnis

Ein Thema von Salomon · begonnen am 18. Okt 2002 · letzter Beitrag vom 18. Okt 2002
Antwort Antwort
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#1

INI File manchmal nicht im Prog. Verzeichnis

  Alt 18. Okt 2002, 10:22
Hallo,
um die Einstellungen meines Programmes zu speichern benutzte ich eine ini Datei. Im FormClose wird sie mit folgenden Code im Programmverzeichnis gespeichert.

Code:
ini := TInifile.create ('.\relais_controll.ini');
Das Funktioniert soweit auch sehr gut, nur wenn ich einen der Dialoge zum Öffnen oder Speichern einer Datei im Programm benutze, wird die ini Datei nach Beendigung des Programms in dem Verzeichnis gespeichert, wo ich zuletzt mit einem Dialog eine Datei geöffnet oder gespeichert habe.

Hat dafür jemand eine Erklärung?

Mfg
Salomon
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2
  Alt 18. Okt 2002, 10:36
Hallo,

ich glaube, dass die Erklärung recht einfach ist:
Du nutzt zum Speichern Deiner INI-Datei eine relative Pfadangabe. ('./'). Der Punkt vor dem Schrägstrich wird dabei durch das jeweils aktuelle Arbeitsverzeichnis Deiner Anwendung ersetzt. Und dieses Arbeitsverzeichnis wiederum wird -wie ja schon von Dir erkannt- z.B. durch Öffnen- und Speichern-Dialoge geändert. Dieses Verhalten kannst Du in den Optionen Deiner Dialoge mittels ("ofNoChangeDir") beeinflussen, aber dieser Hinweis nur der Vollständigkeit halber.

Um den absoluten Pfadnamen zu Deiner EXE-Datei zu erhalten, kannst Du die Variable "Application.EXEName" nutzen. Diese enthält den kompletten Pfad- und Dateinamen zu Deiner Anwendung. Wenn man da jetzt noch mit "ExtractFilePath" lediglich den Pfad rauszieht, hast Du genau das, was Du brauchst.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#3
  Alt 18. Okt 2002, 10:38
Also:
Code:
ini:=tinifile.create(extractfiledir(application.exename)+'\relais_controll.ini');
Sport ist mord...
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#4
  Alt 18. Okt 2002, 11:26
Ich hatte das mit dem ".\" mal irgendwo gesehen, und bin dann wohl davon ausgegangen das damit immer das Programmverzeichnis angesprochen wird. Ein Irrtum.

Es sah nur irgendwie eleganter aus als "extractfiledir(application.exename)"

Thanx
Salomon
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 18. Okt 2002, 11:54
Moin Salomon,

wobei Du statt Application.Exename auch paramstr(0) nehmen kannst. Beide liefern den Pfad der Anwendung zurück, allerdings steht paramstr(0) auch in einer Konsolenanwendung zur Verfügung, ohne dass die Unit Forms mit eingebunden werden muss, was, je nach Delphi Version, 200 bis 300 Kb spart.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#6
  Alt 18. Okt 2002, 12:04
Moin Christian Seehase,

da hast du recht, Paramstr(0) wird für mich später sowiso noch interessant, da man damit ja auch die Parameter auslesen kann, die beim Programmstart übergeben wurden.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 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