2016-04-22 10 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

ありがとうございます。 –

関連する問題