[英]vbscript array loop, printing issue
I have a recordset like this: 我有一个这样的记录集:
row1 = Type1, partid, partname
row2 = Type2, partid, partname
row3 = Type2, partid, partname
I want my output to be like this: 我希望我的输出是这样的:
Type1: partid partname
Type2: partid partname, partid, partname
or 要么
Type2: partid partname, partid, partname
Type1: partid partname
(depending on how the sort works out) (取决于排序方式)
I have my results sorted by the Type value. 我将结果按“类型”值排序。 I may or may not get same Types in a result, but if so the result is required to be printed as above.
我可能会或可能不会在结果中得到相同的Types,但是如果是这样,则需要按上述方式打印结果。
I'm using .getRows()
to get the recordset into an array. 我正在使用
.getRows()
将记录集放入数组。
I can't for the life of me figure out how to decide in the loop whether to print a break tag or a comma. 我一辈子都无法弄清楚如何在循环中决定打印中断标签还是逗号。
You need to check for a change in the type column. 您需要检查“类型”列中的更改。 In that case, print
<br />
and the type. 在这种情况下,请打印
<br />
和类型。 In code: 在代码中:
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
output: 输出:
cscript 24441584.vbs
1,10,10<br />2,20,21,22,22<br />3,30,31
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.