Arrays 从循环VBScript/Classic ASP中的数组中分配变量
我有一个for循环,它迭代从CSV文件生成的数组。这将创建一个包含1、2或3组数字的数组。问题是,我需要给它们分配一个变量,因为我以后需要在web表单中使用它们。也;有时数组中可能只有一组数字(因此只能使用数组(1))。如何将动态数组分配给各个变量-即-YXVal、RXVal和GXVal(对于X和YYVal)、RYVAL和GYVal(对于Y)-但如果数组中只有1个,则为YXVal和YYValArrays 从循环VBScript/Classic ASP中的数组中分配变量,arrays,loops,vbscript,asp-classic,Arrays,Loops,Vbscript,Asp Classic,我有一个for循环,它迭代从CSV文件生成的数组。这将创建一个包含1、2或3组数字的数组。问题是,我需要给它们分配一个变量,因为我以后需要在web表单中使用它们。也;有时数组中可能只有一组数字(因此只能使用数组(1))。如何将动态数组分配给各个变量-即-YXVal、RXVal和GXVal(对于X和YYVal)、RYVAL和GYVal(对于Y)-但如果数组中只有1个,则为YXVal和YYVal Do while NOT objTextFile.AtEndOfStream arrStr =
Do while NOT objTextFile.AtEndOfStream
arrStr = split(objTextFile.ReadLine,",")
for x = 1 to ubound(arrStr)
if arrStr(0) = "x" Then
Xval = arrStr(x)
response.write(XVal & "<br />")
end if
next
for y = 1 to ubound(arrStr)
if arrStr(0) = "y" Then
Yval = arrStr(y)
response.write(YVal & "<br />")
end if
next
Loop
Do while NOT objTextFile.AtEndOfStream
arrStr=split(objTextFile.ReadLine,“”)
对于x=1至uBond(ARRST)
如果arrStr(0)=“x”,则
Xval=arrStr(x)
响应。写入(XVal&“
”)
如果结束
下一个
对于y=1至ubound(ARRST)
如果arrStr(0)=“y”,则
Yval=arrStr(y)
响应。写入(YVal&“
”)
如果结束
下一个
环
这里有一个简单的方法。如果您希望出现多个“x”
和“y”
,并且需要处理每个事件,则应在每次迭代开始时重新初始化变量值。否则,它们可能仍然包含来自上一次迭代的值
Do Until objTextFile.AtEndOfStream
' Reinitialize variable values. This may be optional, depending on your needs.
YXVal = "" : RXVal = "" : GXVal = "" : YYVal = "" : RYVal = "" : GYVal = ""
' Read a line...
arrStr = Split(objTextFile.ReadLine, ",")
intSize = UBound(arrStr)
If intSize >= 0 Then
' Parse line values...
Select Case LCase(arrStr(0))
Case "x"
If intSize > 0 Then YXVal = arrStr(1)
If intSize > 1 Then RXVal = arrStr(2)
If intSize > 2 Then GXVal = arrStr(3)
Case "y"
If intSize > 0 Then YYVal = arrStr(1)
If intSize > 1 Then RYVal = arrStr(2)
If intSize > 2 Then GYVal = arrStr(3)
End Select
End If
Loop
这里有一个简单的方法。如果您希望出现多个
“x”
和“y”
,并且需要处理每个事件,则应在每次迭代开始时重新初始化变量值。否则,它们可能仍然包含来自上一次迭代的值
Do Until objTextFile.AtEndOfStream
' Reinitialize variable values. This may be optional, depending on your needs.
YXVal = "" : RXVal = "" : GXVal = "" : YYVal = "" : RYVal = "" : GYVal = ""
' Read a line...
arrStr = Split(objTextFile.ReadLine, ",")
intSize = UBound(arrStr)
If intSize >= 0 Then
' Parse line values...
Select Case LCase(arrStr(0))
Case "x"
If intSize > 0 Then YXVal = arrStr(1)
If intSize > 1 Then RXVal = arrStr(2)
If intSize > 2 Then GXVal = arrStr(3)
Case "y"
If intSize > 0 Then YYVal = arrStr(1)
If intSize > 1 Then RYVal = arrStr(2)
If intSize > 2 Then GYVal = arrStr(3)
End Select
End If
Loop
您是否希望在文件中出现一次
“x”
和“y”
?您是否希望在文件中出现一次“x”
和“y”
?非常感谢-通常会出现1或3个结果,我怀疑2个不会出现,但使用您的代码,我在选择案例LCase(arrStr(0)一行中不断收到错误)
错误代码下标超出范围:“[number:0]”
源文件中可能有一个空行。我添加了一个If
语句来测试它。请注意--让我困惑的是简单的事情:)非常感谢-通常会有1或3个结果,我怀疑2不会出现,但使用您的代码,我在Select Case LCase(arrStr(0))
错误代码是下标超出范围:'[number:0]“
您的源文件中可能有一个空行。我添加了一个If
语句来测试它