AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

zu %appdata% in String Variable navigieren

Ein Thema von taveuni · begonnen am 13. Aug 2010 · letzter Beitrag vom 13. Aug 2010
Antwort Antwort
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
526 Beiträge
 
Delphi 11 Alexandria
 
#1

zu %appdata% in String Variable navigieren

  Alt 13. Aug 2010, 10:11
Delphi-Version: 2007
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:
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
Wenn ich den ganzen Pfad als String in den Explorer gebe führt er mich ans
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.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.169 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: zu %appdata% in String Variable navigieren

  Alt 13. Aug 2010, 10:15
Ich war schon auf der Suche mit GetEnvironmentVariable. Aber das ist es nicht.
Doch, ist es schon. Nennt sich dort aber "APPDATA". Die % sind der Kennzeichner für den Windows Explorer das er nach einer Umgebungsvariable suchen soll.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#3

AW: zu %appdata% in String Variable navigieren

  Alt 13. Aug 2010, 10:28
Und man muß Environmentvariablen selber übersetzen, denn diese APIs (wie FileExists, FindFirst oder CreateFiles) machen sowas nicht von selbst.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

AW: zu %appdata% in String Variable navigieren

  Alt 13. Aug 2010, 10:34
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 MSDN-Library durchsuchenExpandEnvironmentStrings
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser

Geändert von turboPASCAL (13. Aug 2010 um 10:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#5

AW: zu %appdata% in String Variable navigieren

  Alt 13. Aug 2010, 10:36
MSDN-Library durchsuchenExpandEnvironmentStrings
(mir viel vorhin der Name nicht ein, aber wenn man über MSDN-Library durchsuchenGetEnvironmentVariable weitersucht, dann findet man es auch so )
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
526 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: zu %appdata% in String Variable navigieren

  Alt 13. Aug 2010, 10:37
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
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#7

AW: zu %appdata% in String Variable navigieren

  Alt 13. Aug 2010, 10:44
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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

AW: zu %appdata% in String Variable navigieren

  Alt 13. Aug 2010, 10:59
Ja ja, Asche auf mein Haupt. Aber wer kommt den schon auf MSDN-Library durchsuchenExpandEnvironmentStrings
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#9

AW: zu %appdata% in String Variable navigieren

  Alt 13. Aug 2010, 11:05
"erweitere alle Environment-Strings"?
Aber mach dir nichts draus, dieses haben die im MSDN schon ein bissl versteckt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz