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
。
私は両方の答えを見つけることができないようです..