Autor Beitrag
Toastbrotbaby
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: 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?

ausblenden Delphi-Quelltext
1:
ini := TIniFile.Create('C:\Bilanz.ini');					


wäre dankbar über hilfe ...

Gruss Toasti
Kroni
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 720

Win 98, Win ME, Win2k, Win XP
D3 Pro
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 111

WinXP
D2005 Pers.
BeitragVerfasst: Di 19.07.05 19:23 
Hallo,

Ich mach das so:

ausblenden Delphi-Quelltext
1:
ini := TIniFile.Create(IncludeTrailingPathDelimiter(GetCurrentDir)+'Bilanz.ini');					


Dürfte genau das sein was du suchst.

mfg, ggehrma

Moderiert von user profile iconMotzi: Code- durch Delphi-Tags ersetzt.
Toastbrotbaby Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Di 19.07.05 19:30 
user profile iconggehrma hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
ini := TIniFile.Create(IncludeTrailingPathDelimiter(GetCurrentDir)+'Bilanz.ini');					

damit wandert die ini in das aktuelle verzeichnis (das nicht unbedingt das exe-dir ist)
ausblenden Delphi-Quelltext
1:
ini := TIniFile.Create(extractfilepath(paramstr(0))+'Bilanz.ini');					

liefert den pfad der exe. hab ich heute glaub schon in 2 anderen threads gelesen...

Moderiert von user profile iconMotzi: Code- durch Delphi-Tags ersetzt.

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
Tobias1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 454

Win 98, XP Prof
D3 Prof, D2005 Prof
BeitragVerfasst: Di 19.07.05 19:36 
Kann man eigentlich auch .Create('EineINI.ini'); nehmen oder muss immer der ganze Pfad angegeben werden?

Moderiert von user profile iconAXMD: Code- durch Delphi-Tags ersetzt.

_________________
Auch das schlechteste Buch hat seine gute Seite: die letzte. (John Osborne)
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Di 19.07.05 19:40 
user profile iconTobias1 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 98



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: 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:

ausblenden Delphi-Quelltext
1:
Ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));					


So wenn es der gleiche Pfad, aber anderer Namen sein soll:

ausblenden 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



BeitragVerfasst: Di 19.07.05 20:12 
user profile iconToastbrotbaby 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.