| Autor |
Beitrag |
Toastbrotbaby
      
Beiträge: 98
|
Verfasst: Di 19.07.05 19:14
öhm joar ... so weit so gut ...
ne ini speichern is ja eine sache ... aber ich habs bis dato immer mit ner genauen angabe des pfades gemacht, aber hab vorher auch nicht wirklich gelesen wie man es anders machen würde. Von daher jetzt mal die frage:
Wie muss ich es im source schreiben das die ini im selben verzeichnis landet wie die .exe schon ist, bzw sein wird auf einem anderen pc?
Delphi-Quelltext 1:
| ini := TIniFile.Create('C:\Bilanz.ini'); |
wäre dankbar über hilfe ...
Gruss Toasti
|
|
Kroni
      
Beiträge: 720
Win 98, Win ME, Win2k, Win XP
D3 Pro
|
Verfasst: Di 19.07.05 19:22
guck dir mal den Post an.... www.delphi-forum.de/...fad+exe+ausgef%FChrt
und dann wirst du dsa bestimmt selber noch ausführen können=)
|
|
ggehrma
      
Beiträge: 111
WinXP
D2005 Pers.
|
Verfasst: Di 19.07.05 19:23
Hallo,
Ich mach das so:
Delphi-Quelltext 1:
| ini := TIniFile.Create(IncludeTrailingPathDelimiter(GetCurrentDir)+'Bilanz.ini'); |
Dürfte genau das sein was du suchst.
mfg, ggehrma
Moderiert von Motzi: Code- durch Delphi-Tags ersetzt.
|
|
Toastbrotbaby 
      
Beiträge: 98
|
Verfasst: Di 19.07.05 19:29
@kroni kein plan was du mir sagen möchtest ... aber ich habs so auf anhieb nich verstanden
@ggehrma THX ... klappt genau so wie es soll ...
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Di 19.07.05 19:30
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
Tobias1
      
Beiträge: 454
Win 98, XP Prof
D3 Prof, D2005 Prof
|
Verfasst: Di 19.07.05 19:36
Kann man eigentlich auch .Create('EineINI.ini'); nehmen oder muss immer der ganze Pfad angegeben werden?
Moderiert von AXMD: Code- durch Delphi-Tags ersetzt.
_________________ Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Di 19.07.05 19:40
Tobias1 hat folgendes geschrieben: | | Kann man eigentlich auch .Create('EineINI.ini'); nehmen oder muss immer der ganze Pfad angegeben werden? |
wenn man das so macht passiert genau das gleiche wie mit ggehrma's code: die datei wird im "aktuellen verzeichnis" abgelegt.
wird z.b. ein opendialog aufgerufen, so ändert sich dieses und die ini wird nicht mehr gefunden.
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Di 19.07.05 19:43
Kannst Du auch Tun, aber die Landet dann aber irgendwo im Windowsverzeichnis.
Und wenn Du sie dann wieder auslesen willst woher soll dein Programm den Pfad wissen ?
|
|
Toastbrotbaby 
      
Beiträge: 98
|
Verfasst: Di 19.07.05 19:49
| Zitat: | Kannst Du auch Tun, aber die Landet dann aber irgendwo im Windowsverzeichnis.
Und wenn Du sie dann wieder auslesen willst woher soll dein Programm den Pfad wissen ? |
das mit dem windows verzeichnis ist mir auch schon aufgefallen ... allerdings funktionierte bei mir lese und schreibzugriff bestens ...
ist nur nicht wirklich sonderlich geil wenn man erstmal ne stunde auf suche geht und sich tierisch am kopp kratzt wo denn die datei ist ... und irgendwann im windowsverzeichnes dann sowas findet ...
retnyg THX ... klappt genau wie ich mir das vorgestellt hab ... jetzt noch einige kleinigkeiten beheben und ich bin soweit relativ glücklich ..
Gruss
Toasti
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Di 19.07.05 19:53
Sagt mal, Leute, was is'n heute mit euch los  Bitte verwendet Delphi- und keine Codetags.
Danke
AXMD
|
|
Popov
      
Beiträge: 1655
Erhaltene Danke: 13
WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
|
Verfasst: Di 19.07.05 20:09
Es wundert mich schon was für sonderbare Vorschläge hier kommen. Wirklich sonderbare.
So wird es richtig gemacht wenn der Ini Name der gleiche sein soll die der Programmname:
Delphi-Quelltext 1:
| Ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini')); |
So wenn es der gleiche Pfad, aber anderer Namen sein soll:
Delphi-Quelltext 1:
| Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'MyIni.ini')); |
Wenn du dich um das Ganze nicht kümmern willst, dann empfehle ich dir meine Unit hier:
www.delphi-forum.de/....php?p=127270#127270
_________________ Popov
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 19.07.05 20:12
Toastbrotbaby hat folgendes geschrieben: | | Zitat: | Kannst Du auch Tun, aber die Landet dann aber irgendwo im Windowsverzeichnis.
Und wenn Du sie dann wieder auslesen willst woher soll dein Programm den Pfad wissen ? |
das mit dem windows verzeichnis ist mir auch schon aufgefallen ... allerdings funktionierte bei mir lese und schreibzugriff bestens ... |
Kein Wunder, das ist ja der Sinn der Sache. Nimmst du keinen Pfad, landet die INI nicht irgendwo im Windows-Ordner, sondern sie landet exakt im Windows-Ordner. Wenn du beim Zugriff auf die INI den Pfad ebenfalls weglässt, dann wird sie auch wieder im Windows-Ordner gesucht. Das ist das Prinzip der API-Funktion(en), die sich hinter TIniFile verbergen.
Aber wo du die Zugriffsrechte ansprichst: Die INI gehört auf gar keinen Fall mehr! in den Windows-Ordner. Dort haben solche Dateien nichts mehr zu suchen. Es gibt dazu eine klare Vorgabe von Microsoft. Und streng genommen gehört die INI auch nicht in den Ordner der EXE.
Erstens hat dann jeder Benutzer, der das Programm startet, Zugriff auf die selben Einstellungen in der INI, und außerdem kann niemand garantieren, dass jeder Benutzer auch Schreibrechte hat. Die haben unter NT/2000/XP eigentlich nur Admins und Hauptbenutzer. Alle anderen gucken in die Röhre und werden u.U. mit Fehlermeldungen traktiert, wenn das Programm nicht korrekt geschrieben wurde (try/finally) und solche Probleme auch nicht abfängt.
|
|