Erstklassige Instanznamen mit passenden Wildcard-Mustern

Dieses Designbeispiel bietet ein Tcl-Verfahren, das Instanznamen der obersten Ebene zurückgibt, die einem Platzhaltermuster entsprechen. Kopieren Sie das Verfahren und fügen Sie es in ein Tcl-Skript ein und rufen Sie dann das Verfahren auf.
Das Verfahren gibt die Instanznamen in einer Liste zurück. Wenn keine Instanznamen der obersten Ebene mit dem Platzhaltermuster übereinstimmen, wird eine leere Liste zurückgegeben. Die Instanznamen werden in beliebiger Reihenfolge zurückgegeben. Wenn die Liste der Instanznamen in einer bestimmten Reihenfolge zurückgegeben werden soll, z. B. alphabetisch, verwenden Sie den Befehl lsort, um sie entsprechend zu sortieren.
Wenn zum Beispiel die Top-Level-Instanznamen in Ihrem Design sind: ::, (bitte), (bitte) und(bitte) die folgenden Schritte:

get_top_level_instances_matching *2 würde { foo2 bar2 } zurücksanden .

proc get_top_level_instances_matching { wildcard } { # Erstellen Sie eine Variable, um die Top-Level-Instanzen zu halten, die mit dem Wildcard-Catch übereinstimmen { array unset names_to_return } array set names_to_return [list] # Die Sammlung von Namen ist alle Hierarchien im Design-foreach_in_collection name_id [get_names -filter * -node_type Hierarchie] { # Die short_full_path Option holt den Namen in der Form #instanz|instance|... # Es verwendet nur Instanzen, unabhängig davon, ob die Einstellung "Entitätsname für Knotennamen anzeigen" ein- oder ausgeschaltet ist short_full_name [get_name_info -info short_full_path $name_id] # Die Hierarchie in eine Liste aufteilen und in der Hierarchie der Hierarchie durchbrechen | setzen Sie short_full_pieces [split $short_full_name "|"] # Holen Sie sich den Instanznamen der obersten Ebene – den ersten in der Liste gesetzten top_level_instance [asciix $short_full_pieces 0] # Wenn der Name der Top-Level-Instanz mit dem Platzhalter übereinstimmt, speichern Sie ihn # und geben Sie ihn am Ende des Verfahrens zurück, wenn { [string match $wildcard $top_level_instance] } { set names_to_return($top_level_instance) 1 } return [array names names_to_return] }

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.