错误:无法在 Tcl 中文件通道名称



我正在尝试打开文件进行读取,从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 命令以查看变量的值通常很有用。如果这样做了,您将看到它具有文件名而不是文件句柄。

最新更新