Noms d’instance de haut niveau correspondant à un schéma wildcard

author-image

Par

Cet exemple de conception fournit une procédure Tcl qui renvoie des noms d’instance de haut niveau qui correspondent à un schéma wildcard. Copiez et collez la procédure dans un script Tcl, puis appelez la procédure.
La procédure renvoie les noms d’instance dans une liste. Si aucun nom d’instance de haut niveau ne correspond au schéma wildcard, la procédure renvoie une liste vide. Les noms d’instance sont retournés par ordre arbitraire. Si vous souhaitez que la liste des noms d’instances soit renvoyée dans un ordre particulier, comme classé par ordre alphabétique, utilisez la commande lsort pour la trier correctement.
Par exemple, si les noms d’instance de haut niveau de votre conception sont foo1, foo2, foo3, bar1, bar2et bar3, un appel de procédure de

get_top_level_instances_matching *2 retournerait { foo2 bar2 } .

proc get_top_level_instances_matching { wildcard } {

    # Faites une variable pour tenir les instances de haut niveau qui correspondent à la capture wildcard { array
    unset names_to_return } array set names_to_return
    [list]
    
    # La collection de noms est toutes les hiérarchies de la conception
    foreach_in_collection name_id [get_names -filter * -node_type hiérarchie] {
    
        # L’option short_full_path obtient le nom dans
        l’instance # forme|instance|...
        # Il n’utilise que des instances, que le paramètre # « Nom de
        l’entité d’affichage pour nom de nœud » soit activé ou désactivé short_full_name
        [get_name_info -info short_full_path $name_id]
        
        # Répartissez la hiérarchie dans une liste, le découplant sur le
        séparateur # hiérarchie |
        définissez short_full_pieces [split $short_full_name « | » ].
        
        # Obtenez le nom d’instance de haut niveau - le premier dans le jeu de liste
        top_level_instance [$short_full_pieces 0]
        
        Si le nom d’instance de haut niveau correspond au wildcard, enregistrez-le
        # pour revenir à la fin de la procédure
        si { [string match $wildcard $top_level_instance] }
            {set names_to_return($top_level_instance) 1
        } }
    
    renvoyer [noms de batterie names_to_return]
}

Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.