2012-04-12 83 views
1

值逐一我在TCL以下代碼..打印在TCL

proc GetPPVSummary {} { 
    global LIBRARY DB_MACHINE ALT_MACHINE 

    set query "SELECT first 2 * from test ORDER by ppv_id DESC" 
    set result [mtlrequest $LIBRARY DbSelect "[email protected]$ALT_MACHINE|$query"] 

    return $result 
} 

set return_data [GetPPVSummary] 
puts $return_data 

上述返回是這樣的:

{{753 38 {2000年4月10日00 :00:00} {2000年4月11日00:00:00} 3 HQAWR 56897 PPV乙Event_04292012_teaser {} Event_04292012_teaser The_World_Doesnt_Care {$ 99.00} {$ 0.01}}

如何通過一個打印只值一個在TCL?

行,所以我嘗試了,現在下面:

foreach record $return_data { 
    set event_date [lindex $record 1] 
    set attempts_cnt [lindex $record 2] 
    set success_cnt [lindex $record 3] 
    set fail_cnt [lindex $record 4] 
} 


puts $event_date 

現在,我得到的全整行,而不是第一或第二值..

+0

有一個更加開放的括號比右括號。這是你的數據嗎? – 2012-04-13 00:06:52

+0

@glennjackman,我也注意到了,但確定這是一個複製和粘貼錯誤。現在,我試圖讓在評論跟帖真正的行集我的回答下這個問題 - 隨時加入勢力;-) – kostix 2012-04-13 07:45:26

+0

@ user856753,你希望看到什麼輸出? – 2012-04-13 12:44:10

回答

3

假設$ return_data是列表的列表,你想

foreach record $return_data { 
    foreach item $record { 
     puts $item 
    } 
} 
+0

752 2003 {2012-04-23 00:00:00} {2012-04-29 20:30:00} 1 10017 10018 PPV B Event_04292012_teaser {} Event_04292012_HD_price {} {} {}是我的數據是 – Micheal 2012-04-13 01:10:20

+0

ok glenn's解決方案几乎可以工作,但它不會讓我將它存儲在一個變量中並逐個顯示......所以我將基於新查詢的結果創建一個新問題。我希望我能讓自己明白這一點。爲所有的困惑而努力! – Micheal 2012-04-13 19:35:45

2

最有可能mtlrequest返回一個列表,所以如果「如何在tcl中只打印一個值?「你要問「我怎麼提取成員從該值」,有幾個可能的答案:

  • lindex可以使用其數字索引來提取列表中的一員,像set x [lindex $return_data 5]將設置變量「x 「到價值HQAWR
  • lassign(TCL 8.5+)可用於列表值的元素分配到一組變量,像lassign $return_data a b c d ...

注意那些{ S和}沒有特殊的意義—他們的結果Tcl將列表值轉換爲字符串(您通過使用puts來要求它):請參閱thisthis部分the tutorial的解釋。

強烈建議您自己完成整個教程,否則您會對每一個小問題猛然一擊。 Tcl比第一眼看起來更簡單,所以請花點時間掌握它的基本知識。

+0

我看到了教程,並試圖添加一些code.see我編輯的問題..但我仍然沒有看到預期的結果。 – Micheal 2012-04-12 23:48:25

+0

OK,你能發佈的'$提出了return_data'您返回,也就是說,10行(不只是2如在初始examlpe)選擇查詢,以類似http://pastebin.com結果呢?免得我們註定要做永久的猜測。 – kostix 2012-04-13 00:07:41

+0

發佈http://pastebin.com/nLvpJSpA – Micheal 2012-04-13 00:28:01