![]() |
%..% durch Ergebnis von GetEnvironmentVariable(..) ersetzen
Hallo!
Ich hab einen String mit Umgebungsvariablen, die in Prozentzeichen eingeschlossen sind, in etwa %ProgramFiles%\Company\Product. Ich will nun alle %...% durch das Ergebnis der Funktion GetEnvironmentVariable(...) ersetzen. Gibts dafür ne vorgefertigte Funktion die mir alle ...s liefert, oder muss ich mir das selbst coden? Mir gehts nicht darum, dass ich es nicht selbst coden will, aber wenns das schon gibt, denke ich mal, dass das schneller ist, als das was ich da coden würde. ;) Grüße Faux |
Re: %..% durch Ergebnis von GetEnvironmentVariable(..) erset
|
Re: %..% durch Ergebnis von GetEnvironmentVariable(..) erset
Zitat:
Grüße Faux |
Re: %..% durch Ergebnis von GetEnvironmentVariable(..) erset
Bei mir liefert die Funktion ein korrektes Ergebnis. Kannst du deinen problembehafteten Code isolieren und hier einstellen, damit ich das untersuchen kann?
marabu |
Re: %..% durch Ergebnis von GetEnvironmentVariable(..) erset
Moin Faux,
probier mal aus, ob es funktioniert, wenn Du es mit einer weiteren Variablen für das Ergebnis versuchst, und nicht direkt Result verwendest. Ich hatte schon mal das Problem, dass die Verwendung von @StringVariable[1] sich anders verhielt, als ein PChar. Mit letzterem hat es funktioniert, mit ersterem nicht, und das bei ansonsten gleicher Routine. (Wenn ich jetzt eine Idee hätte, wie ich den Thread hier wiederfinden soll :gruebel:) |
Re: %..% durch Ergebnis von GetEnvironmentVariable(..) erset
Ähm...
Also ich habe jetzt mal an meinem Programm weiter programmiert und wollte den Fehler am Ende beseitigen, jedoch tritt er jetzt nicht mehr auf. :gruebel: Wäre aber trotzdem interessant zu wissen, ob der Fehler noch besteht, denke ich mir und erstellte ein neues leeres Projekt (es handelt sich übrigens um eine Konsolenanwendung) und probiere es nochmals, aber es tritt nichtmehr auf... :shock: Naja, dann bedanke ich mich für den Code! :thumb: Grüße Faux NACHTRAG: Naja, einen "Fehler" habe ich noch gefunden:
Code:
Kann es sein, dass die Länge falsch berechnet wird? Der Punkt wurde unmittelbar nach dem Funktionsaufruf ausgegeben, jedoch sind da ein paar Leerzeichen....
+Fileversion is compatible.
~SourcePath:\\127.0.0.1\c$\licenses.lic . ~DestinationPath:C:\Program Files\Rasterex\RxView\licenses.lic . +License file has been copied successfully. |
Re: %..% durch Ergebnis von GetEnvironmentVariable(..) erset
Ich habe den Fehler nachvollziehen können - hier der korrigierte Code:
Delphi-Quellcode:
Gute Nacht
function ExpandEnvStr(const szInput: String): String;
begin SetLength(Result, ExpandEnvironmentStrings(pChar(szInput), nil, 0)); ExpandEnvironmentStrings(pChar(szInput), @Result[1], Length(Result)); Result := StrPas(@Result[1]); end; marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:36 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