2012-07-05 68 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