1

プロシージャ内のファイルから一連のデータを 1 行ずつ読み取っています。この手順からこれらの行のデータを返すにはどうすればよいでしょうか。また、この手順から出力されたこれらのデータをデータセットに割り当てるにはどうすればよいですか?

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

このプロシージャからこのデータを返すにはどうすればよいですか?

4

2 に答える 2

3

技術的には、他に何もする必要はありません。

プロシージャが呼び出されると、プロシージャの戻り値はreturnコマンドで指定された値になります。プロシージャが明示的に実行しない場合、returnその戻り値は、プロシージャの本体で最後に実行されたコマンドの値です。

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

于 2012-07-12T03:59:24.323 に答える
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ステートメントを好みます。

于 2012-07-12T01:28:16.163 に答える