错误:无法在Tcl中归档通道名称

时间:2016-04-22 05:46:13

标签: tcl tk

我正在尝试打开一个文件进行读取,从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]
    }
}

1 个答案:

答案 0 :(得分:4)

tk_getOpenFile为您提供 name 文件。您仍然必须打开文件才能阅读它。尝试

set filename [tk_getOpenFile ...
if {[file exists $filename]} {
    set fp [open $filename]
    ...

如果遇到这样的问题,暂时插入puts命令以查看变量的值是很有用的。如果你这样做了,你会发现它有文件名而不是文件句柄。