vbscript数组循环,打印问题

时间:2014-06-26 23:05:05

标签: arrays loops vbscript

我有一个这样的记录集:

row1 = Type1, partid, partname

row2 = Type2, partid, partname

row3 = Type2, partid, partname

我希望我的输出是这样的:

Type1: partid partname

Type2: partid partname, partid, partname

Type2: partid partname, partid, partname

Type1: partid partname

(取决于排序的工作方式)

我的结果按类型值排序。我可能会或可能不会在结果中获得相同的类型,但如果是,则需要按上述方式打印结果。

我正在使用.getRows()将记录集放入数组中。

我不能为我的生活弄清楚如何在循环中决定是否打印中断标记或逗号。

1 个答案:

答案 0 :(得分:0)

您需要检查类型列中的更改。在这种情况下,请打印<br />和类型。在代码中:

Set r = CreateObject("ADODB.Recordset")
r.Fields.Append "t", 3
r.Fields.Append "i", 3
r.Fields.Append "n", 3
r.Open
r.AddNew : r.Fields("t") = 1 : r.Fields("i") = 10 : r.Fields("n") = 10
r.AddNew : r.Fields("t") = 2 : r.Fields("i") = 20 : r.Fields("n") = 21
r.AddNew : r.Fields("t") = 2 : r.Fields("i") = 22 : r.Fields("n") = 22
r.AddNew : r.Fields("t") = 3 : r.Fields("i") = 30 : r.Fields("n") = 31
r.MoveFirst
a = r.GetRows()
t = a(0, 0)
WScript.StdOut.Write a(0, 0)
For r = 0 To UBound(a, 2)
    If t <> a(0, r) Then
       WScript.StdOut.Write "<br />" & a(0, r)
       t = a(0, r)
    End If
    WScript.StdOut.Write Join(Array("", a(1, r), a(2,r)), ",")
Next

输出:

cscript 24441584.vbs
1,10,10<br />2,20,21,22,22<br />3,30,31