Erstklassige Instanznamen mit passenden Wildcard-Mustern

author-image

Von

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.