2012-12-13 80 views
1

我在文件中用逗號分隔了幾行,我想將逗號分隔值添加到列表中。我該怎麼做?分割命令給我一個列表。但我想維護數組來保存這些值。如何在tcl中拆分逗號分隔值

  For example : Jack,John,Ted 

我想創建一個數組來保存這些值。我怎樣才能做到這一點?

+2

如果它確實是CSV數據,可以考慮使用[CSV包(http://tcllib.sourceforge.net/ doc/csv.html)在tcllib中。它爲你處理了一大堆棘手的邊緣情況,即'split'不會。 –

回答

2

最有可能的一個Tcl列表實際上是您需要的正確數據結構。 Tcl的一個常見誤解是它的list數據結構就像一個傳統的鏈表數據結構,其所有含義(如O(n)訪問時間)都是如此。事實上,Tcl list實際上是一個向量,具有O(1)訪問元素的功能,以及通過foreach命令進行的有效枚舉。相比之下,Tcl的array實際上是一個哈希表,它可能是您想要的 - 但如果您只需要遍歷元素或有效訪問特定元素,那麼Tcl list就是完美的。

要通過元素迭代,使用foreach,如所提到:

foreach name $values { 
    puts $name 
} 

要訪問一個特定的元素,可以使用lindex。請記住,列表是0索引,所以索引2是該列表中的第三元素:

puts [lindex $values 2]