![]() |
Umgebungsvariablen in Delphi nutzen
Hallo Leute.
Ich habe grad ein vermutlich recht triviales Problem, aber irgendwie find ich nicht raus wie es geht. Ich möchte in einem Delphi-Programm eine Log-Datei zu Debug-Zwecken schreiben. Hierzu möchte ich es vermeiden in dem Code einen festen Pfad zu verwenden, sondern würde gerne die Systemumgebungsvariable TEMP benutzen um den Pfad-string für die Datei zu erzeugen. Kann mir jemand zeigen, wie ich an die Information komme? Muss ich da dann eigentlich immer überprüfen, ob das letzte Zeichen des Strings der TEMP-Variable ein \ ist? Ich hoffe ich habe mich verständlich ausgedrückt und bedanke mich schonmal im voraus für die Antworten. Gruß Michael |
Re: Umgebungsvariablen in Delphi nutzen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s: string; begin SetLength(s,MAX_PATH); //evtl. großzügiger sein GetTempPath(Length(s) - 1,PChar(s)); SetLength(s,StrLen(Pchar(s))); ShowMessage(s); end; |
Re: Umgebungsvariablen in Delphi nutzen
Ansonsten für die direkten Fragen:
1. ![]() 2. Wegen dem abschließendem Backslash: ![]() ![]() Nutze aber für 1. lieber diese abgeänderte Version von DeddyH's gelieferte Lösung_
Delphi-Quellcode:
@DeddyH: Warum nochmal Length() wenn du weißt wie lang (als Konstante vorliegen)? Und StrLen() kostet neben der temporären PChar Konvertierung nochmals mehr Zeit, dabei liefert GetTempPath() die Anzahl der eingetragenen Zeichen zurück.
procedure TForm1.Button1Click(Sender: TObject);
var s: string; begin SetLength(s, MAX_PATH); SetLength(s, GetTempPath(MAX_PATH - 1, PChar(s))); ShowMessage(s); end; |
Re: Umgebungsvariablen in Delphi nutzen
Vielen Dank für die Hilfe.
Das hiflt mir sehr weiter. Ihr seid spitze. |
Re: Umgebungsvariablen in Delphi nutzen
Hello again.
Ich steh grad wieder ein bisschen auf dem Schlauch. Ich habe diesen Code so wie ihn "Muetze1" erfolgreich in Delphi 7 Pro verwendet. Alles prima. Jetzt habe ich den Code in Turbo Delphi 2006 Proffesional für Win 32 reinkopiert und er meckert sowohl "MAX_PATH" als auch "GetTempPath" als nicht deklarierten Bezeichner an. Ich denke mir fehlt da eine unit, aber ich weiss leider nicht welche. Hat jemand eine Ahnung, warum er auf diese Weise nicht mehr den TEMP-Pfad finden mag. Danke im voraus. |
Re: Umgebungsvariablen in Delphi nutzen
Ruf doch einfach "GetTempPath" in der Hilfe auf, da steht dann normalerweise auch die enthaltende Unit.
|
Re: Umgebungsvariablen in Delphi nutzen
unit windows
|
Re: Umgebungsvariablen in Delphi nutzen
Ich hab den Begriff in der Suche eingegeben, aber komischerweise kein Ergebnis gefunden. Gewundert hatte mich das auch, aber wie immer seid ihr schneller als die Polizei erlaubt. Das ist echt wahnsinn. Herzlichen Dank.
p.s. Ich schliesse natürlich nicht aus, dass ich zu doof war das richtige Ergebnis in der Hilfe zu finden. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 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