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/Classic ASP中的数组中分配变量_Arrays_Loops_Vbscript_Asp Classic - Fatal编程技术网

Arrays 从循环VBScript/Classic ASP中的数组中分配变量

Arrays 从循环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 =

我有一个for循环,它迭代从CSV文件生成的数组。这将创建一个包含1、2或3组数字的数组。问题是,我需要给它们分配一个变量,因为我以后需要在web表单中使用它们。也;有时数组中可能只有一组数字(因此只能使用数组(1))。如何将动态数组分配给各个变量-即-YXVal、RXVal和GXVal(对于X和YYVal)、RYVAL和GYVal(对于Y)-但如果数组中只有1个,则为YXVal和YYVal

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
语句来测试它