Nazwy wystąpień najwyższego poziomu pasujące do wzoru symboli wieloznacznych

author-image

Według

W tym przykładzie projektu przedstawiono procedurę Tcl, która zwraca nazwy wystąpień najwyższego poziomu, które pasują do wzoru symboli wieloznacznych. Skopiuj i wkleij procedurę do skryptu Tcl, a następnie wezwij procedurę.
Procedura zwraca nazwy instancji na liście. Jeśli nazwy instancji najwyższego poziomu nie są zgodne ze wzorem symboli wieloznacznych, procedura zwraca pustą listę. Nazwy instancji są zwracane w kolejność z nakazem zniechęcenia. Jeśli chcesz, aby lista nazw instancji została zwrócona w określonej kolejności, na przykład posortowane alfabetycznie, użyj polecenia lsort, aby go odpowiednio posortować.
Przykładowo, jeśli nazwy instancji najwyższego poziomu w Twoim projekcie to foo1, foo2, foo3, bar1, bar2i bar3,połączenie procedury

get_top_level_instances_matching *2zł. { foo2 bar2 }

proc get_top_level_instances_matching { wildcard } {

    # Skonfiguruj zmienną, która przechowuje najwyższej klasy instancje, które pasują do połowu symboli wieloznacznych
    { array unset names_to_return } array set
    names_to_return [lista]
    
    # Zbiór nazw to wszystkie hierarchie w foreach_in_collection name_id projektu
    [get_names -filter * -node_type hierarchia] {
    
        # Opcja short_full_path pobiera nazwę w formularzu
        # instance|instance|...
        # Używa tylko instancji, niezależnie od tego, czy
        ustawienie #"Wyświetl nazwę podmiotu dla nazwy węzła" jest włączone lub
        wyłączone, short_full_name [get_name_info -info short_full_path $name_id]
        
        # Podziel hierarchię na listę, rozkładając ją na
        # hierarchia |
        zestaw short_full_pieces [split $short_full_name "|"]
        
        #Get the top-level instance name — the first in the list
        set top_level_instance [lindex $short_full_0]
        
        # If the top-level instance name match the wildcard, save it # to
        return at the end of the procedure if {
        [string match $wildcard $top_level_instance] } {
            set names_to_return($top_level_instance) 1
        } return
    
    [array names names_to_return]
}

Materiały zawarte na tej stronie są tłumaczeniem z języka angielskiego, wykonanym częściowo przez człowieka, a częściowo automatycznie. Materiały te są udostępnione dla Twojej wygody i należy je traktować jedynie jako ogólne źródło informacji. Nie ma jednak gwarancji, że są one kompletne bądź poprawne. Jeśli istnieje jakakolwiek rozbieżność między wersją angielską tej strony a jej tłumaczeniem, wersja angielska jest wersją obowiązującą i ma rozstrzygające znaczenie. Wyświetl anglojęzyczną wersję tej strony.