2016-04-22 35 views
0

我想打開一個文件進行讀取,詢問用戶從Tk文件打開對話框輸入,但面對一個錯誤「cannot file channel named」 這是我的代碼。 你能讓我知道下面的代碼問題嗎?錯誤:不能在Tcl文件通道名稱

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] 
    } 
} 

回答

4

tk_getOpenFile爲您提供了文件。您仍然需要打開文件才能閱讀。嘗試

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

如果你得到一個問題是這樣,但是這是暫時插入puts命令來查看你的變量的值。如果你這樣做了,你會看到它有一個文件名,而不是文件句柄。

+0

謝謝,它現在的工作很好。 –

相關問題