Entwickler-Ecke
Dateizugriff - Pfad für inidateien festlegen
Martin W - So 02.11.03 23:16
Titel: Pfad für inidateien festlegen
Hallo,
Ich bin neuhier und habe eine Dringende Frage:
Ich habe eine Anwendung geschriben die werte in eine Ini- datei schreibt. Dabei verwendet sie folgende Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| Ini := TIniFile.Create( ChangeFileExt( 'Sprachedatei', '.ini' ) ); try ini.WriteString( 'Abschnitt', 'Version', 'Delphi ist klasse...'); except MessageDlg('Fehler', mtError,[mbOK], 0); end; ini.free; |
Jetzt erstellt meine Anwendung mit die Datei "Sprachdatei.ini" unter C:\Windows, ich möchte aber das meine Anwendung mir die Datei in dem Ordner erstellt, von dem meine Anwendung aus gestartet wurde.
Gruß
Martin
Terra23 - Mo 03.11.03 01:04
Hallo.
Delphi-Quelltext
1:
| Inifile:=TIniFile.Create(<span style="font-weight: bold">Pfadangabe</span>); |
muß es heißen. Ich weiß zwar nicht, was dein "Zeug" bedeutet, was du da stehen hast, aber du mußt IMO dort den Pfad eintragen. So mache ich es immer und damit habe ich nie Probleme gehabt.
Am sinnvollsten ist die Ablage der INI im Ordner, in dem sich das Programm an sich befindet:
Delphi-Quelltext
1:
| Inifile:=TIniFile.Create(ExtractFilePath(ParamStr(0)); |
ParamStr(0) liefert dir das Verzeichnis, soviel ich weiß..
Wenn die Datei in C:\Windows gespeichert wird, liegt das meines Wissens nach daran, daß der Pfad "ungültig" ist.. :-)
Delete - Mo 03.11.03 02:58
| Terra23 hat folgendes geschrieben: |
Am sinnvollsten ist die Ablage der INI im Ordner, in dem sich das Programm an sich befindet:
|
Und wenn der Benutzer von dem Programm keine Schreibrechte im Programmordner hat? :roll:
Terra23 - Mo 03.11.03 16:58
:rofl:
Luckie; warum wußte ich bloß, dass ich eine solche Antwort bekomme und dazu noch von dir? :lol:
Ich würde sagen, dann schaut man mal hier im Forum nach. Ich kann mich dunkel an eine Diskussion zwischen dir und MathiasSimmack erinnern.. ;-)
PS: Dann legt man die Datei in den Anwendungsordner des Users. Dort hat er solche Rechte, gelle?
Delete - Mo 03.11.03 17:10
Genau da gehört sie hin.
Raphael O. - Mo 03.11.03 18:06
mich nervt das allerdings vor allem bei Programmen, ohne installer, den du ja auch nicht haben willst, ohne dass Registryeinträge erstellt werden -> für mich gehören die Inis in den gleichen ordner wie das prog, damit ich alles komfortabel wieder löschen kann und meine Ordnung im Eigene Dateien Ordner nicht gestört wird :)
Delete - Mo 03.11.03 18:09
OK. Und was macht der Benutzer, der keine Schreibrechte im Anwendngsordner hat? Der kann folglich dein Programm nicht nutzen. Ein Hinweis in der Readme und ein Hinweis hier beim Vorstellen und alles ist in Butter.
Delete - Mo 03.11.03 18:46
| Luckie hat folgendes geschrieben: |
| OK. Und was macht der Benutzer, der keine Schreibrechte im Anwendngsordner hat? Der kann folglich dein Programm nicht nutzen. Ein Hinweis in der Readme und ein Hinweis hier beim Vorstellen und alles ist in Butter. |
Oder man gestaltet die Installation so, dass sie von Admin-Rechten abhängig ist und nutzt dann ein Hilfsprogramm, das einen Ordner anlegt und mit Schreibrechten für alle angemeldeten Benutzer (SID = S-1-5-32-545) versieht.
Dieses Prinzip ist normalerweise für die aktuelle Version des
Movie Organizers [
http://www.delphi-forum.de/viewtopic.php?t=15500] vorgesehen. Vorteil: die Dateien bleiben im Programmordner, Rechte-Probleme gibt es nicht (es sei denn natürlich, der Admin setzt das Schreibrecht manuell zurück!), und zusätzliche teilweise dubiose Software ;), die nach Dateien sucht und diese löscht, ist auch nicht mehr erforderlich.
Es versteht sich aber natürlich von selbst, dass man das Programm trotzdem so gestaltet, dass es bei Problemfällen (Recht zum Schreiben aus irgendwelchen Gründen nicht mehr da) nicht sang- und klanglos abstürzt, sondern besser mit einer Meldung darauf aufmerksam macht.
Martin W - Mo 03.11.03 19:55
Hi,
danke für eure zahlreichen Antworten erstmal, ihr habt mir sehr geholfen.
Gruß
Martin
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!