![]() |
%AppData% verwenden oder Pfad ermitteln
hi,
Delphi-Quellcode:
wie muss ich das machen, dass das geht und der die textdatei auch wirklich erstellt???
ListBox1.Items.SaveToFile('%APPDATA%' + '\hi.txt');
MFG Lars W. [edit=SirThornberry]aussagekräftigeren Titel vergeben - Mfg, SirThornberry[/edit] |
Re: %AppData% Frage
|
Re: %AppData% Frage
das hilft mir jetzt nicht so weiter, da ich in dem thread keine antwort auf meine frage bekommen!
|
Re: %AppData% Frage
der link von mkinzler zeigt doch eine funktion die dir den pfad als string
zurückliefert. den kanst du ja zb in einer variable zwischenlagern(ich nenne sie jetzt mal "pfad"). dann kannst du das ganze so abspeichern:
Delphi-Quellcode:
ListBox1.Items.SaveToFile(pfad + '\hi.txt');
mfg Jonny |
Re: %AppData% Frage
Warup appdata ist ein special folder
|
Re: %AppData% Frage
Eigentlich das gleiche wie von mkinzler schon erwähnt:
![]() ![]() |
Re: %AppData% verwenden oder Pfad ermitteln
Delphi-Quellcode:
das ist doch so wie dus gesaggt hast oder???
var Pfad: String;
begin Pfad := '%AppData%'; ListBox1.Items.SaveToFile(pfad + '\hi.txt'); end; geht aber leider nicht; da kommt ne fehlermedlung! |
Re: %AppData% verwenden oder Pfad ermitteln
hast du dir die Links angeschaut? du sollst "%AppData%" vorher per Api-Funktion zu einem Pfad auflösen lassen und dann zusammensetzen. Oder eben nicht mit "%AppData%" sondern mit SHGetSpecialFolderPath und der entsprechenden Constanten für diesen Ordner (für den Fall das die Umgebungsvariable nicht gesetzt ist).
|
Re: %AppData% verwenden oder Pfad ermitteln
nehmen wir mal an du nimmst das erste beispiel von swissdelphicenter.
Delphi-Quellcode:
dann:
function GetEnvVarValue(const VarName: string): string;
var BufSize: Integer; // buffer size required for value begin // Get required buffer size (inc. terminal #0) BufSize := GetEnvironmentVariable(PChar(VarName), nil, 0); if BufSize > 0 then begin // Read env var value into result string SetLength(Result, BufSize - 1); GetEnvironmentVariable(PChar(VarName), PChar(Result), BufSize); end else // No such environment variable Result := ''; end;
Delphi-Quellcode:
sollte es so gehen.
var
Pfad: String; begin Pfad := GetEnvVarValue('AppData'); ListBox1.Items.SaveToFile(pfad + '\hi.txt'); end; mfg Jonny |
AW: %AppData% verwenden oder Pfad ermitteln
Weil ich ewig gesucht hatte. Für alle die über diesen Betrag stolpern:
Ab Delphi XE (soweit mir bekannt). Ganz einfach: showmessage(GetEnvironmentVariable('AppData')); //Uses System.SysUtils |
AW: %AppData% verwenden oder Pfad ermitteln
|
AW: %AppData% verwenden oder Pfad ermitteln
Zitat:
Das hab' ich mit Delphi 7 auch "immerschon" so abgefragt. Laut ![]() Näheres zu AppData und Co: ![]() |
AW: %AppData% verwenden oder Pfad ermitteln
Mit ShGetSpecialFolderLocation sieht das so aus:
Delphi-Quellcode:
Den Code habe ich mal vor Jahren irgendwo gefunden, weiß aber nicht mehr woher.
function getSpecialFolder(const aFolder: Integer): string;
var ItemIDList: PItemIDList; hPath: PChar; ShellH: IMalloc; begin if SUCCEEDED(ShGetSpecialFolderLocation(Application.Handle, aFolder, ItemIDList)) then begin try hPath := StrAlloc(MAX_PATH); try if SHGetPathFromIDList(ItemIDList, hPath) then Result := hPath; finally StrDispose(hPath); end; finally if SHGetMalloc(ShellH) = NOERROR then ShellH.Free(ItemIDList); end; end; end; Ich aber auch
Delphi-Quellcode:
bevorzugen.
GetEnvironmentVariable('AppData');
Die erste Variante benötigt auf meinem System bei einer Wiederholung von 100.000 im Durchschnitt 1700ms. Letztere Variante benötigt mit derselben Schleife im Durchschnitt für 10.000 Durchgänge 33ms. Niemand wird 100.000 Mal hintereinander diese Funktion aufrufen. Aber jetzt weiß man wenigstens, welche schneller ist :stupid: |
AW: %AppData% verwenden oder Pfad ermitteln
![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:47 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