在tcl中逐个打印值

在tcl中逐个打印值,tcl,informix,Tcl,Informix,我在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_

我在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事件{U 04292012}事件{U 04292012}事件{U挑逗世界{U 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

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

很可能
mtlrequest
返回一个列表,因此,如果通过“如何在tcl中仅逐个打印值?”您想问“如何从该值提取成员”,则有几种可能的答案:

  • 可用于通过数值索引提取列表的成员,如
    set x[lindex$return_data 5]
    将变量“x”设置为
    HQAWR
    的值
  • (Tcl 8.5+)可用于将列表值的元素分配给一组变量,如
    lassign$return\u data a b c d…
请注意,这些
{
}
没有特殊意义,它们是Tcl将列表值转换为字符串的结果(您使用
puts
要求它这样做):有关说明,请参阅和的部分


强烈建议您自己完成整个教程,否则您会碰到每一个小问题。Tcl比乍一看要简单得多,所以请慢慢来,掌握它的基本知识。

最有可能的是
mtlrequest
返回一个列表,因此如果“如何在tcl中逐个打印值?”您想问“如何从该值中提取成员”,有几种可能的答案:

  • 可用于通过数值索引提取列表的成员,如
    set x[lindex$return_data 5]
    将变量“x”设置为
    HQAWR
    的值
  • (Tcl 8.5+)可用于将列表值的元素分配给一组变量,如
    lassign$return\u data a b c d…
请注意,这些
{
}
没有特殊意义,它们是Tcl将列表值转换为字符串的结果(您使用
puts
要求它这样做):有关说明,请参阅和的部分


强烈建议您自己完成整个教程,否则您会碰到每一个小问题。Tcl比乍一看要简单得多,所以请慢慢来,掌握它的基本知识。

假设$return\u数据是一个列表,您希望

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

假设$return_data是一个列表列表,您需要

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

我看了教程并试图添加一些代码。请看我编辑的问题..但我仍然看不到所需的结果。好的,您能为您的select查询发布
puts$return\u data
的结果吗?该查询返回10行(而不是像最初的示例中那样仅返回2行),类似于?以免我们注定要做永久的猜测。我们似乎在兜圈子。你真的确定你粘贴的东西是从数据库中选择几行的结果吗?对我来说,它看起来像一行:这个列表的每个元素显然都有不同的数据类型,而在一个行集中,应该有几行这里,每列中的值都有相同的数据类型。我看过教程并试图添加一些代码。请看我编辑的问题..但我仍然看不到所需的结果。好的,你能为你的select查询发布
puts$return\u data
的结果吗?该查询返回,比如说,10行(而不是像最初的例子中那样仅2行),类似于?以免我们注定要做永久的猜测。我们似乎在兜圈子。你真的确定你粘贴的东西是从数据库中选择几行的结果吗?对我来说,它看起来像一行:这个列表的每个元素显然都有不同的数据类型,而在一个行集中,应该有几行在这里,每列中的值都具有相同的数据类型。打开的大括号比关闭的大括号多出一个。这正是您的数据吗?@glennjackman,我也注意到了这一点,但认为这是一个复制粘贴错误。现在我正试图在注释线程中获取我对这个问题的答案下的真实行集——请随意加入这些力量;-)@user856753,什么你想看输出吗?开放大括号比闭合大括号多一个。这正是你的数据吗?@glennjackman,我也注意到了,但我认为这是一个复制粘贴错误。现在我正试图在我对这个问题的回答下面的注释线程中获取真实的行集——请随意加入这些力;-)@user856753,你想看到什么输出?752 2003{2012-04-23 00:00:00}{2012-04-29 20:30:00}1 10017 10018 PPV B事件我的数据是什么?isok glenn的解决方案几乎奏效了,但它不允许我将其存储在变量中并逐个显示…因此,我将根据我的新查询结果创建一个新问题。我希望这次我能澄清一下。抱歉,所有的困惑!752 2003{2012-04-23 00:00:00}{2012-04-29 20:30:00}1 10017 10018 PPV B Event_04292012_trister{}Event_04292012_HD_price{}{}{}是我的数据,isok glenn的解决方案几乎起了作用,但它不允许我将其存储在变量中并逐个显示…因此,我将根据新查询的结果创建一个新问题。我希望这次我能澄清一下。对于所有的困惑,我感到抱歉!