【问题标题】:print values one by one in tcl在 tcl 中一一打印值
【发布时间】:2012-04-13 08:09:45
【问题描述】:

我在 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 "test@$ALT_MACHINE|$query"]

    return $result
}

set return_data [GetPPVSummary]
puts $return_data

上面的返回是这样的:

{{753 38 {2000-04-10 00:00:00} {2000-04-11 00:00:00} 3 HQAWR 56897 PPV B Event_04292012_teaser {} Event_04292012_teaser The_World_Doesnt_Care {$99.00} {$0.01}}

p>

如何在 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

现在,我得到整行而不是第一个或第二个值..

【问题讨论】:

  • 开括号比闭括号多一个。这正是您的数据吗?
  • @glennjackman,我也注意到了这一点,但认为这是复制和粘贴错误。现在我正试图在我对这个问题的回答下的评论线程中获得真正的行集——随时加入力量;-)
  • @user856753,你想看什么输出?

标签: tcl informix


【解决方案1】:

假设 $return_data 是一个列表列表,你想要

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

【讨论】:

  • 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 {} {} {} 是我的数据是什么
  • ok glenn 的解决方案几乎奏效了,但它不允许我将它存储在一个变量中并一个一个地显示......所以我将根据我的新查询的结果创建一个新问题。我希望这次我能把自己说清楚..对不起所有的困惑!
【解决方案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 比第一眼看上去要简单得多,所以请花点时间掌握它的基础知识。

【讨论】:

  • 我看到了教程并尝试添加一些代码。查看我编辑的问题..但我仍然没有看到想要的结果。
  • 好的,您能否将 puts $return_data 的结果发布到您的选择查询中,例如返回 10 行(而不是您最初的示例中的 2 行),类似于 pastebin.com ?以免我们注定要进行无休止的猜测。
  • 我们似乎在兜圈子。您真的确定您粘贴的内容确实是从数据库中选择 several 行的结果吗?对我来说,它看起来像一行:这个列表的每个元素显然具有不同的数据类型,而在行集中,应该有几行,每列中的值具有相同的数据类型。跨度>
猜你喜欢
  • 1970-01-01
  • 2016-02-25
  • 1970-01-01
  • 2013-01-08
  • 1970-01-01
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多