![]() |
TRegExpr library und GetEnvironmentVariable
Ich bastel schon seit Stunden an einem Problem das ich mit der
![]()
Code:
Nach dem Durchlauf hat die Unit den Text so verändert:
Edit1.Text := ReplaceRegExpr ('%\w*%' {Suche nach..},
'/s /u "%systemroot%\test.txt" "%temp%"' {...in diesem Text}, 'C:\Windows' {Ersetze die Fundstellen mit diesem Text}, False);
Code:
Soweit ist das alles klar, aber wie bzw. wo muss ich die RegExpr-Unit anpassen damit ich erreiche das die Fundstellen ausgelesen (also z.B. %systemroot% und %temp%) und diese während des Suchdurchlaufes jeweils mit Hilfe von GetEnvironmentVariable übersetzt und in den Text zurückgeschrieben werden?
/s /u "C:\Windows\test.txt" "C:\Windows"
Ich habe in der RegExpr-Unit schon an den unterschiedlichsten Stellen probehalber ein Showmessage eingesetzt um festzustellen ob dies die entsprechende Stelle ist an der ich ansetzen kann, aber leider war dies bis jetzt alles erfolglos. :cry: Hat irgendjemand eine Idee? |
Re: TRegExpr library und GetEnvironmentVariable
Wieso machst Du das nicht einfach hinterher mit StrReplace?
|
Re: TRegExpr library und GetEnvironmentVariable
Hallo ringli,
bei deiner Bastelei mit TRegExpr kann ich dir jetzt nicht helfen, aber das Resultat erziele ich so:
Delphi-Quellcode:
Grüße vom marabu
function ExpandEnvStr(const szInput: string): string;
begin SetLength(Result, ExpandEnvironmentStrings(pChar(szInput), nil, 0)); ExpandEnvironmentStrings(pChar(szInput), @Result[1], Length(Result)); end; |
Re: TRegExpr library und GetEnvironmentVariable
Und warum mach ich Idiot das mit einer Function die sich über 87 Zeilen erstreckt? :wall: Ich hatte mir nämlich eine Routine geschrieben die im Prinzip das selbe erledigt, aber leider nicht alle Fälle abdeckt...
Danke Marabu, damit funktioniert es so wie es soll :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:31 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