![]() |
Delphi-Version: 2007
zu %appdata% in String Variable navigieren
Hallo zusammen,
Ich suche und suche.. Mein Programm liest aus der Registry den Pfad einer anderen Applikation zu dessen Ini Datei aus. Ich bekomme dann so was wie %appdata%\companyname\appname\appname.ini. Nun muss ich in diese Ini schreiben. Wie komme ich aber an den effektiven Pfad?
Delphi-Quellcode:
Wenn ich den ganzen Pfad als String in den Explorer gebe führt er mich ans
var
s: String; begin s:= %appdata%\companyname\appname\appname.ini // die datei existiert if not FileExists(s) then ShowMessage('Houston we have a problem') end richtige Ort. Das Selbe möchte ich programmatisch erreichen. Ich war schon auf der Suche mit GetEnvironmentVariable. Aber das ist es nicht. Vermutlich war ich zu lange in den Ferien. |
AW: zu %appdata% in String Variable navigieren
Zitat:
|
AW: zu %appdata% in String Variable navigieren
Und man muß Environmentvariablen selber übersetzen, denn diese APIs (wie FileExists, FindFirst oder CreateFiles) machen sowas nicht von selbst.
|
AW: zu %appdata% in String Variable navigieren
Etwas fertiges gibt es IMHO nicht.
Man muss sich solch einen String selbst zerlegen und untersuchen ( parsen ), danach wieder entsprechend zusammen setzen. // Edit: Ja, na toll Himi wieder. Wer kommt schon auf ![]() |
AW: zu %appdata% in String Variable navigieren
![]() (mir viel vorhin der Name nicht ein, aber wenn man über ![]() |
AW: zu %appdata% in String Variable navigieren
Versteh ich jetzt alles nicht.
Ich muss den String also selbst parsen? Also die in '%%' als Environment Variable holen und dann mit dem Rest verknüpfen? Gibt es da keine WinApi Funktion (welche der Explorer vllt. auch nutzt). Wenn ich den String Z.B. in Totalcommander eingebe springt der ja auch dorthin wo er soll. Edit: Zu spät. ExpandEnvironmentStrings wars. Vielen Dank |
AW: zu %appdata% in String Variable navigieren
jupp :)
Delphi-Quellcode:
function ExpandEnv(const S: String): String;
var i: Integer; begin i := ExpandEnvironmentStrings(PChar(S), nil, 0); SetLength(Result, i - 1); ExpandEnvironmentStrings(PChar(S), PChar(Result), i); end; |
AW: zu %appdata% in String Variable navigieren
Ja ja, Asche auf mein Haupt. Aber wer kommt den schon auf
![]() |
AW: zu %appdata% in String Variable navigieren
"erweitere alle Environment-Strings"?
Aber mach dir nichts draus, dieses haben die im MSDN schon ein bissl versteckt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 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