Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays vbscript数组循环,打印问题_Arrays_Loops_Vbscript - Fatal编程技术网

Arrays vbscript数组循环,打印问题

Arrays vbscript数组循环,打印问题,arrays,loops,vbscript,Arrays,Loops,Vbscript,我有这样一个记录集: row1 = Type1, partid, partname row2 = Type2, partid, partname row3 = Type2, partid, partname Type1: partid partname Type2: partid partname, partid, partname 我希望我的输出如下: row1 = Type1, partid, partname row2 = Type2, partid, partname ro

我有这样一个记录集:

row1 = Type1, partid, partname

row2 = Type2, partid, partname

row3 = Type2, partid, partname
Type1: partid partname

Type2: partid partname, partid, partname
我希望我的输出如下:

row1 = Type1, partid, partname

row2 = Type2, partid, partname

row3 = Type2, partid, partname
Type1: partid partname

Type2: partid partname, partid, partname

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

我按类型值对结果进行排序。我可能会也可能不会在结果中得到相同的类型,但如果是这样,则需要按上述方式打印结果

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


我一辈子都不知道如何在循环中决定是打印一个中断标记还是一个逗号

您需要检查类型列中的更改。在这种情况下,打印

和类型。代码:

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
Set r=CreateObject(“ADODB.Recordset”)
r、 字段。附加“t”,3
r、 字段。附加“i”,3
r、 字段。附加“n”,3
r、 打开
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、 先走
a=r.GetRows()
t=a(0,0)
WScript.StdOut.Write一个(0,0)
对于r=0到UBound(a,2)
如果t a(0,r)那么
WScript.StdOut.Write“
”和a(0,r) t=a(0,r) 如果结束 WScript.StdOut.Write连接(数组(“,a(1,r),a(2,r)),“,”) 下一个
输出:

cscript 24441584.vbs
1,10,10<br />2,20,21,22,22<br />3,30,31
cscript 24441584.vbs
1,10,10
2,20,21,22,22
3,30,31
如果在最后一项后打印逗号,则无法知道。一种解决方法是打印第一个项目,然后迭代一次打印逗号和项目,例如:“item1”->”,item2”->,item3”->…我在示例中发现了一个错误。我希望我的输出是这样的:1:10,10
2:20,21,22,22
3:30,31我可以全部完成,但最后我得到了一个逗号。除此之外,这种方法效果非常好。我会看看我能不能到处玩,让它一路走下去。非常感谢。