![]() |
Hierarchischen Qualifizierer (Namespaces) invertieren
Die Funktion InvertQualifierName wandelt einen String, der aus durch einen Delimiter begrenzten Teilen besteht und so eine hierarchische Struktur beschreibt, so um, dass der von ihm beschriebene Pfad innerhalb der Hierarchie "rückwärts" dargestellt wird.
Delphi-Quellcode:
Die Ausgabe dieses Abschnitts
uses
StrUtils; // PosEx, AnsiEndsStr function InvertQualifierName(const AName: string; const ADelimiter: string='.'): string; var myStart: Integer; myEnd: Integer; begin Result:= ''; myStart:= 1; repeat // get position of next delimiter myEnd:= PosEx(ADelimiter, AName, myStart); // copy whole trail if no more delimiters available if myEnd<=0 then myEnd:= Succ(Length(AName)); // dont append a delimiter at first item if myStart>1 then Result:= ADelimiter+Result; // append actual item Result:= Copy(AName, myStart, myEnd-myStart)+Result; // go on scanning from behind the last delimiter myStart:= Succ(myEnd); until myStart>Length(AName); // dont forget the potential last delimiter if AnsiEndsStr(ADelimiter, AName) then Result:= ADelimiter+Result; end;
Delphi-Quellcode:
sieht dann in der Console wie folgt aus:
WriteLn(InvertQualifierName('Borland.Win32.Windows'));
WriteLn(InvertQualifierName('Borland.VCL.Controls.TControl')); WriteLn(InvertQualifierName('MyUnit.TControl')); WriteLn(InvertQualifierName('TControl')); WriteLn; WriteLn(InvertQualifierName('a-weird-name-', '-')); WriteLn(InvertQualifierName('spaces as delimiter', ' ')); WriteLn(InvertQualifierName('/Another/Weird/Name', '/')); WriteLn(InvertQualifierName('\Last\Weird\Name\', '\'));
Code:
Windows.Win32.Borland
TControl.Controls.VCL.Borland TControl.MyUnit TControl -name-weird-a delimiter as spaces Name/Weird/Another/ \Name\Weird\Last\ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 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