![]() |
ini Datei Verzeichnis?
Hallo,
ich möcht einen String in eine INI Datei schreiben, das klappt auch. Allerdings möchte ich, das es im Verzeichnis eine Ebene höher gespeichert wird. Ich nutze folgenden Code:
Delphi-Quellcode:
Aber es wird immer ins Programmverzeichnis gespeichert, nicht eine Ebene höher. Ich versteh nicht warum.
Ini := TIniFile.Create(form1.programmdirectory.Caption+'\..\game.ini');
Gruß, Andreas |
Re: ini Datei Verzeichnis?
Probier mal das:
Delphi-Quellcode:
EDIT:
Ini := TIniFile.Create(form1.programmdirectory.Caption+'\game.ini');
Das .. sagt dem Pfad nämlich das es eine Ebene zurück gehen soll... EDIT2: Wenn dein Verzeichnis ".." heißt, benenne es um. |
Re: ini Datei Verzeichnis?
Hallo,
schreib mal nur '..\game.ini' dann klappt es auch. :wink: |
Re: ini Datei Verzeichnis?
was steht in form1.programmdirectory.caption?
überprüfe mal mit
Delphi-Quellcode:
grundsätzlich ist deine Überlegung schon richtig.
showmessage(ExpandFileName(form1.programmdirectory.Caption+'\..\game.ini'));
|
Re: ini Datei Verzeichnis?
Zitat:
und . oder .. kann eh nichts heißen. |
Re: ini Datei Verzeichnis?
Hmmm stimmt wenn ich das unter Linux mache meint der auch ""bla/bla/blup/.." Existiert bereits!".
OK, dann nicht. |
Re: ini Datei Verzeichnis?
Zitat:
Wenn man kein Verzeichnis angibt, landet die Datei im Windows-Verzeichnis. In Deinem Beispiel müsste sie in der Ebene oberhalb des Arbeitsverzeichnisses angelegt werden. Welches Verzeichnis das ist, lässt sich nicht vorhersagen. Zitat:
Diese Namen (. und ..) sind nur reserviert (. für das aktuelle, .. für das übergeordnete Verzeichnis) ;-) |
Re: ini Datei Verzeichnis?
Zitat:
|
Re: ini Datei Verzeichnis?
Zitat:
|
Re: ini Datei Verzeichnis?
Unter Linux geht das...
Weiß allerdings nicht was Windows dazu sagt... |
Re: ini Datei Verzeichnis?
@himitsu
Zitat:
d.h. Bsp.: c:\temp\test\..\temp1.jpg = c:\temp\temp1.jpg
Delphi-Quellcode:
oder bsp2:
showmessage(ExpandFileName('c:\temp\test\..\temp1.jpg'));
im Explorer gib zb den Pfad c:\temp\test\..\ ein, du landest bei c:\temp\ |
Re: ini Datei Verzeichnis?
Zitat:
Ach übrigens, in FAT (bei ntfs weiß ich es nicht) sind das nicht nur Platzhalter ... diese Einträge gibt es da wirklich in der Verzeichnisliste. |
Re: ini Datei Verzeichnis?
Zitat:
|
Re: ini Datei Verzeichnis?
Zitat:
Aber wie wäre es wenn wir jetzt einfach warten bis der OP genauer sagt was er meint? |
Re: ini Datei Verzeichnis?
Guten Abend,
erstmal danke für die lebhafte Diskussion. Ist sehr Interessant. Leider funktionieren eure Lösungsvorschläge nicht. Ich bekomme die Meldung "In grogrammdirectory..\game.ini kann nicht geschrieben werden". programmdirectory ist nur ein Label, in dem der Pfad zur exe steht. Komischerweise, wird das nicht umgewandelt, obwohl ich mich auf die Caption beziehe. Das macht mich ratlos... Gruß, Andreas Edit: Ich möcht kein Verzeichnis so benennen sondern nur was in eine ini Datei oberhalb des Programmverzeichnis, schreiben. |
Re: ini Datei Verzeichnis?
Zitat:
Delphi-Quellcode:
ergibt C:\Windows\game.ini :wink:
showmessage(ExpandFileName('C:\windows\system32\..\game.ini'));
|
Re: ini Datei Verzeichnis?
gewünschte Lösung:
Str_filename = ExpandFileName(ExtractFilePath(Application.exename )+'\..\game.ini'); (in der Regel ist dies aber nicht sinnvoll, es könnten Probleme mit den Schreibberechtigungen bestehen, suche hier in Forum wo Programmeinstellungen abgespeichert werden sollen). |
Re: ini Datei Verzeichnis?
Moin Kaki,
ich bezog mich auf das nur, wenn man
Delphi-Quellcode:
schreibt.
TIniFile.Create('..\game.ini');
;-) |
Re: ini Datei Verzeichnis?
Zitat:
Auch wenn ich nicht versteh, warum das nicht mit dem Label geht. Gruß und nochmals Danke, Andreas |
Re: ini Datei Verzeichnis?
Moin Andreas,
Zitat:
|
Re: ini Datei Verzeichnis?
Zitat:
oder vor das ".." muß noch ein "\" , also "\..\game.ini" |
Re: ini Datei Verzeichnis?
*grml* Jetzt wollte ich nur im OpenDialog den InitialPath eintragen, aber das geht auch nicht.
Delphi-Quellcode:
Da bekomm ich "Error setting Path D:\usw."
form1.bsSkinOpenDialog1.InitialDir := ExtractFilePath(Application.exename)+'..\';
Gruß, Andy |
Re: ini Datei Verzeichnis?
Was soll denn eigentlich das ständige rumgeeier mit den Punkten? Bau dir den Pfad als Zeichenkette sauber zusammen. Willst du ein Verzeichnis höher, dann schneide das letzte Verzeichnis von der Zeichenkette ab.
|
Re: ini Datei Verzeichnis?
Zitat:
Delphi-Quellcode:
str_initdir:= ExpandFileName(ExtractFilePath(Application.exename)+'\..\') ; if DirectoryExists(str_initdir) then dlgOpen1.InitialDir:= str_initdir else dlgOpen1.initialdir:= ExtractFilePath(Application.exename); if dlgOpen1.execute then .... |
Re: ini Datei Verzeichnis?
Laß hier mal das abschließende "\" (das am Ende, nach den "..") weg
Dir <> Path Es kann aber sein, daß der Opendialog sowas nicht kennt. Also, wie Luckie grad meinte:
Delphi-Quellcode:
File := ExtractFilePath(ExtractFileDir(Application.ExeName)) + 'settings.ini';
.InitialDir := ExtractFileDir(ExtractFileDir(Application.ExeName)); |
Re: ini Datei Verzeichnis?
Gibt leider die gleiche Fehlermeldung.
Das letzte Verzeichnis abschneiden, geht nicht, weil das nicht vorher fest steht. Also auch die Länge nicht. |
Re: ini Datei Verzeichnis?
Zitat:
|
Re: ini Datei Verzeichnis?
Danke, ohne \ am Ende klappts :)
Man man man... es sind immer die vermeintlichen Kleinigkeiten, die aufhalten. Gruß und Dank, Andreas |
Re: ini Datei Verzeichnis?
Ansonsten hilft dir bei den relativen Pfadangaben
![]() |
Re: ini Datei Verzeichnis?
Zitat:
mein "nur" bezog sich auf "ohne den fuehrenden Backslash in seinem dargelegtem Copdeschnippsel" ..soo..alles geklaert :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz