Nomes de instâncias de alto nível que combinam com o padrão curinga

author-image

Por

Este exemplo de design fornece um procedimento Tcl que devolve nomes de instâncias de alto nível que correspondam a um padrão curinga. Copie e colar o procedimento em um script Tcl e depois ligue para o procedimento.
O procedimento devolve os nomes de instância em uma lista. Se nenhum nome de instância de nível superior corresponder ao padrão do curinga, o procedimento retornará uma lista vazia. Os nomes de instância são devolvidos em uma ordem arbitrária. Se você quiser que a lista de nomes de instância seja devolvida em uma ordem específica, como ordenada alfabética, use o comando lsort para classificar adequadamente.
Por exemplo, se os nomes de instância de alto nível em seu design são foo1, foo2, foo3, bar1, bar2e bar3, uma chamada de procedimento de

get_top_level_instances_matching *2{ foo2 bar2 }retornaria.

proc get_top_level_instances_matching { wildcard } { # Faça uma variável para manter as instâncias de nível superior que correspondam à captura do curinga { array unset names_to_return } conjunto de matrizes names_to_return [lista] # A coleção de nomes é todas as hierarquias no design foreach_in_collection name_id [get_names -filter * -node_type hierarquia] { # A opção short_full_path recebe o nome na instância de forma
        #|instance|...
        # Ele usa apenas instâncias, independentemente de a configuração # "Nome da entidade de exibição para nome do nó" estar ativada ou desativada short_full_name
        [get_name_info -info short_full_path $name_id] # Divida a hierarquia em uma lista, quebrando-a no separador
        
        de hierarquia
        #|
        definir short_full_pieces [split $short_full_name "|"]
        
        # Obtenha o nome de instância de nível superior - o primeiro no conjunto de listas top_level_instance [lindex $short_full_pieces 0] # Se o nome da instância de nível superior corresponder ao curinga, salve-o # para retornar no final do procedimento se
        
        {
        [string match $wildcard $top_level_instance] } { definir
            names_to_return($top_level_instance) 1
        } retornar [nomes
de matriz names_to_return] }

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.