Tclを学び始めたばかりです。簡単な手順を書きたかったのです。手順が開始されると、ファイルを参照するための参照ウィンドウが開きます。そこで、開きたいファイルを選択できます。
次に、ポップアップ ウィンドウが表示され、別のファイルを選択するかどうか尋ねられます。選択したすべてのファイルは配列に入る必要があります。
次のコードが必要です:
########## Defining the sub procedures ############
proc open_file {} {
    set n 0
    set title "Select a file"
    set types {
      {{GDS files} {.gds} }
      {{All Files} * }
    }
    set filename [tk_getOpenFile -filetypes $types -title $title]
    set opendFiles($n) $filename
    set n [expr $n + 1]
    set answer [tk_messageBox -message "Load another GDS file?" -type yesno -icon question]
    if {$answer == yes } {
       open_file
    } else {
       show_files ($opendFiles)
    }
}
proc show_files {} {
    foreach key [array names opendFiles] {
        puts $opendFiles($key)
    }
}
########## Main Program ###########
open_file
私は次の問題を抱えています。私は常に proc を思い出すのでopen_file、変数は '' に$n設定し続けます0。しかし、サブルーチン全体をリコールせずにウィンドウの開始をリコールする方法がわかりません....
2 番目の問題は、配列を次の proc に送信することです。proc ' show_files' に送信すると、常に次のエラー : が発生しますcan't read "opendFiles": variable is array。
私は両方の答えを見つけることができないようです..