0

UBound(DataArray) でカウントすると適切な量が得られるため、コードで多次元配列が正常に作成されたと思います。

しかし、データの 1 つを Response.Write DataArray(1,0) として表示しようとすると、null 値が返されます。

どんな助けでも大歓迎です!

 sDateArray = Split(DateArray, ",")
    sVenueArray = Split(VenueArray, ",")

    Dim DataArray()    
    For i = 0 to uBound(sDateArray)-1 
        ReDim DataArray(i, 1)
        DataArray(i, 0) = sDateArray(i)
        DataArray(i, 1) = sVenueArray(i)
    Next

    Response.Write UBound(DataArray) & "<br /><br />"
    DataArray(1,0)
    Response.Write DataArray(1,0)  
4

1 に答える 1

1

Redim Preserve DataArray(i, 1)代わりに試してくださいReDim DataArray(i, 1)

...また...

sDateArray = Split(DateArray, ",")
sVenueArray = Split(VenueArray, ",")

Dim DataArray(uBound(sDateArray)-1, 1)    
For i = 0 to uBound(sDateArray)-1
    DataArray(i, 0) = sDateArray(i)
    DataArray(i, 1) = sVenueArray(i)
Next

Response.Write UBound(DataArray) & "<br /><br />"
' DataArray(1,0) ' <== commented out cos I think this might be an error - ?
Response.Write DataArray(1,0) 

退屈だったのでこれを書きました。

完璧ではないかもしれません-ClassicASPを使用してからしばらく経ちました

Function SortByDate(a_input)

    x = UBound(a_input, 1) - 1
    if( x < 1 ) Then
        Response.Write "<p>Invalid input array - first element is empty</p>"
        Stop
    End If
    Dim a_output(x, 1)
    Dim earliest_date

    For j=0 To x
        earliest_date = -1
        For i=0 To UBound(a_input, 1) - 1
            If a_input(0, i) <> "" Then
                If earliest_date = -1 Then
                    earliest_date = i
                Else
                    If CDate(a_input(0,i)) > CDate(a_input(0,earliest_date)) Then
                        earliest_date = i
                    End If
                 End If
            End If
        Next
        a_output(0, i) = a_input(0, earliest_date)
        a_output(1, i) = a_input(1, earliest_date)
        a_input(0, earliest_date) = "" ' this one is done so skip next time '
    Next

    SortByDate = a_output
End Function
于 2012-06-01T13:09:19.610 に答える