Einzelnen Beitrag anzeigen

Schokohase
(Gast)

n/a Beiträge
 
#4

AW: Parsen von EnvironmentPath

  Alt 14. Aug 2018, 08:59
Warum so kompliziert? Laut der Doku MSDN: ExpandEnvironmentStrings gilt für den lpSrc Parameter
Zitat:
A buffer that contains one or more environment-variable strings in the form: %variableName%. For each such reference, the %variableName% portion is replaced with the current value of that environment variable.
Also kann man sich das Ganze Aufsplitten sparen und '%HOMEDRIVE%%HOMEPATH%' in einem übergeben.

BTW:

Wer mit PWideChar arbeitet sollte auch konsequenterweise mit ExpandEnvironmentStringsW arbeiten, sonst ist bei der nächsten Umstellung (wie bei ANSI auf Unicode) das Geschrei wieder riesengross.

PS:

So würde diese Funktion bei mir aussehen:
Delphi-Quellcode:
function ExpandEnvironment( const AInput: string ): string;
var
  lResult: Cardinal;
begin
  lResult := Winapi.Windows.ExpandEnvironmentStrings( PChar(AInput), nil, 0 );

  if lResult = 0 then
    RaiseLastOSError( );

  SetLength( Result, lResult );
  lResult := Winapi.Windows.ExpandEnvironmentStrings( PChar(AInput), PChar( Result ), lResult );

  if lResult = 0 then
    RaiseLastOSError( );

  SetLength( Result, lResult - 1 );
end;

Geändert von Schokohase (14. Aug 2018 um 09:03 Uhr)
  Mit Zitat antworten Zitat