Nama Instans Tingkat Atas yang Cocok dengan Pola Wildcard

author-image

Oleh

Contoh desain ini memberikan prosedur Tcl yang mengembalikan nama instans tingkat atas yang cocok dengan pola wildcard. Salin dan tempel prosedur ke skrip Tcl, lalu hubungi prosedurnya.
Prosedur ini mengembalikan nama instans dalam daftar. Jika tidak ada nama instans tingkat atas yang cocok dengan pola wildcard, prosedur akan mengembalikan daftar kosong. Nama instans dikembalikan dalam urutan semena-mena. Jika Anda ingin daftar nama instans dikembalikan dalam urutan tertentu, seperti disortir menurut abjad, gunakan perintah lsort untuk mengurutkannya dengan tepat.
Misalnya, jika nama instans tingkat atas dalam desain Anda adalah foo1, foo2, foo3, bar1, bar2, dan bar3, panggilan prosedur

get_top_level_instances_matching *2 akan mengembalikan { foo2 bar2 } .

proc get_top_level_instances_matching { wildcard } {

    # Membuat variabel untuk menahan instans tingkat atas yang cocok dengan penangkapan wildcard { array
    unset names_to_return } array set names_to_return
    [list]
    
    # Koleksi nama adalah semua hierar
    hierarki desain foreach_in_collection name_id [get_names -filter * -node_type hierarki] {
    
        # Opsi short_full_path mendapatkan nama dalam bentuk #
        contoh|instance|...
        # Ini hanya menggunakan instans terlepas dari apakah
        pengaturan # "Nama entitas tampilan untuk nama node" aktif atau tidak
        diatur short_full_name [get_name_info -info short_full_path $name_id]
        
        # Membagi hierarki menjadi daftar, memecahnya pada
        pemisah hierarki # |
        set short_full_pieces [split $short_full_name "|"]
        
        # Dapatkan nama instans tingkat atas - yang pertama di set daftar
        top_level_instance [lindex $short_full_pieces 0]
        
        # Jika nama instans tingkat atas cocok dengan wildcard, simpan
        # untuk mengembalikannya di akhir prosedur jika {
        [string match $wildcard $top_level_instance] } {
            set names_to_return($top_level_instance) 1
        } } return
    
    [nama array names_to_return]
}

Isi halaman ini adalah kombinasi terjemahan manusia dan komputer dari konten berbahasa Inggris. Konten ini diberikan hanya untuk kenyamanan Anda serta sebagai informasi umum dan tidak bisa dianggap sebagai lengkap atau akurat. Jika terdapat kontradiksi antara versi bahasa Inggris halaman ini dan terjemahannya, versi bahasa Inggris akan didahulukan. Lihat versi bahasa Inggris halaman ini.