(Co-Admin)
Registriert seit: 29. Mai 2002
Ort: Hamburg
11.119 Beiträge
Delphi 11 Alexandria
|
4. Mai 2003, 13:31
Moin Hawk,
die Übung kommt schon mit der Zeit.
Delphi-Quellcode:
var
sIN : string;
sOUT : string;
dwSize : DWORD;
begin
// Zum Testen ein String mit zwei Umgebungsvariablen
sIN := '%userprofile%\test\%systemroot%';
// Ein kleiner "Trick" um die erforderliche Buffergrösse zu ermitteln:
// Die Länge des Buffers wird mit 0 angegeben, so dass die Funktion
// die erforderlichen Buffergrösse zurückmeldet
// WICHTIG: Dieser "Trick" funktioniert nicht bei allen APIs, die
// eine Buffergrössenangabe benötigen. Bei manchen ist es hingegen
// sogar so dokumentiert.
dwSize := 0;
dwSize := ExpandEnvironmentStrings(PChar(sIN),@sOUT[1],dwSize);
// Jetzt den Buffer initialisieren...
sOUT := StringOfChar(#00,dwSize);
// und den String umwandeln
ExpandEnvironmentStrings(PChar(sIN),@sOUT[1],dwSize);
ShowMessage(trim(sOUT));
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
|
|
Zitat
|