Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.113 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 4. Mai 2003, 12: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
  Mit Zitat antworten Zitat