我正在尝试打开文件进行读取,从Tk文件打开对话框中询问用户的输入,但遇到错误" cannot file channel named
"这是我的代码。你能告诉我以下代码的问题吗?
proc load_input_entries {} {
global sa sd sb sc
set types {
{{Text Files} {.txt} }
{{CSV Files} {.csv} }
{{All Files} * }
}
set fp [tk_getOpenFile -parent .
-title "Select File"
-filetypes $types -multiple true
-initialdir "/simulation/safe/ip/work" ]
if {[file exists $fp]} {
set stuff [read $fp]
set lines [split $stuff "n"]
set sa [lindex $lines 0]
set sb [lindex $lines 1]
set sc [lindex $lines 2]
set sd [lindex $lines 3]
}
}
tk_getOpenFile
会给你文件名。您仍然必须打开文件才能读取它。尝试
set filename [tk_getOpenFile ...
if {[file exists $filename]} {
set fp [open $filename]
...
如果遇到这样的问题,临时插入 puts
命令以查看变量的值通常很有用。如果这样做了,您将看到它具有文件名而不是文件句柄。