我正在從過程中的文件逐行讀取一組數據。現在我怎樣才能從這個過程中返回這些數據行。我怎樣才能把這個程序輸出的數據分配給一個數據集呢?如何從TCL中的proc傳遞數據集
proc readdata{} {
set fptr [open Test1.txt r]
set fptr_data [read $fptr]
set data [split $fptr_data "\n"]
}
如何從此過程返回此數據?
我正在從過程中的文件逐行讀取一組數據。現在我怎樣才能從這個過程中返回這些數據行。我怎樣才能把這個程序輸出的數據分配給一個數據集呢?如何從TCL中的proc傳遞數據集
proc readdata{} {
set fptr [open Test1.txt r]
set fptr_data [read $fptr]
set data [split $fptr_data "\n"]
}
如何從此過程返回此數據?
可以使用return聲明:
proc readdata {filename} {
set fptr [open $filename r]
set fptr_data [read $fptr]
set data [split $fptr_data "\n"]
return $data
}
...
set dataset [readdata Test1.txt]
然而,Tcl缺省程序返回上次運行的命令的結果。我個人更喜歡明確的return
聲明。
從技術上講,你需要別的什麼也不做:
當調用一個過程,過程的返回值是在
return
命令指定的值。如果過程沒有執行明確的return
,那麼它的返回值是過程正文中最後執行的命令的值。
什麼是 「數據集」 在你的情況,恰恰? – kostix 2012-07-12 07:20:21
你可能想在'read'和'split'之間關閉$ fptr'。 – 2012-07-12 07:47:26