2012-07-05 80 views
0

我对经典ASP和Visual Basic很新。我做一个简单的拆分有困难。我有以下代码:斯普利特投掷500错误

Dim sFileName, startDate, fsObject, filObject, oArray, oSplit 
oArray = Split(Replace(Request.Form("txtOutput"),vbCrLf, "|"),"|") 

For Idx = 0 To Ubound(oArray) 
    oSplit = Split(oArray(Idx), ",") 
    response.Write(oSplit & "</br>") 

Next 

txtOutput看起来像:

0342-John Doe,0,0,0,, 
0134-Jane Doe,15,0,0,, 
0343-John Smith,44.5,0,0,, 

难道我做错了什么?

+2

一个500可能是任何东西。您需要启用完整的错误消息。 – 2012-07-05 17:27:37

+2

oSplit是一个数组..你真的想写一个数组,然后
dreamerkumar 2012-07-05 17:32:44

+0

@VishalKumar你是对的。我的'response.Write'不能打印数组,我必须循环。你能否修改你的答案以包含你评论的内容,以便我可以奖励积分。 – etm124 2012-07-05 17:40:06

回答

0

oSplit是一个数组..你试图写一个数组,然后<br>

0

试试这个:

Dim sFileName, startDate, fsObject, filObject, oArray, oSplit 
oArray = Split(Replace(Request.Form("txtOutput"),vbCrLf, "|"),"|") 

If IsArray(oArray) Then 
    For Idx = LBound(oArray) To Ubound(oArray) 
     oSplit = Split(oArray(Idx), ",") 
     If IsArray(oSplit) Then 
      For Idx2 = LBound(oSplit) to uBound(oSplit) 
      response.Write oSplit(Idx2) & "</br>" 
      Next 
     End If 
    Next 
End If 

,因为你正在尝试在使用response.write你得到这个错误数组而不是变量。

+0

'Split'总是返回一个数组,所以'IsArray'测试是superflous。 – AnthonyWJones 2012-07-06 07:34:15

+0

这是我猜的习惯。 – 2012-07-06 16:48:02

1

猜猜你的代码应该是这个样子:

Dim sFileName, startDate, fsObject, filObject, oArray, oSplit 
oArray = Split(Replace(Request.Form("txtOutput"),vbCrLf, "|"),"|") 

For Idx = 0 To Ubound(oArray) 
    oSplit = Split(oArray(Idx), ",") 

    For iloop=0 to ubound(oSplit) 
     response.Write(oSplit(iloop) & "</br>") 
    Next 

Next 

这样做的原因是因为你必须在你的代码两个裂口,则需要两个计数器来遍历所有itens