如何在TCL中将数据集传递出proc

时间:2012-07-11 23:14:59

标签: parameters return tcl

我正在从一个过程中的文件中逐行读取一组数据。现在我该如何从此过程返回这些数据行。如何将从此过程输出的这些数据分配给数据集?

proc readdata{} {
    set fptr [open Test1.txt r]
    set fptr_data [read $fptr]
    set data [split $fptr_data "\n"]  
}

如何从此程序返回此数据?

2 个答案:

答案 0 :(得分:3)

您可以使用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陈述。

答案 1 :(得分:3)

从技术上讲,你不需要做任何其他事情:

  

调用过程时,过程的返回值是return命令中指定的值。如果该过程没有执行显式return,则其返回值过程正文中执行的最后一个命令的值

- http://www.tcl.tk/man/tcl8.5/TclCmd/proc.htm