2012-11-05 115 views
1

變量數據類型是字符串.it包含字符串值,大於300個字符。我想通過150炭拆分該字符串和用vb.net拆分字符串,不帶分隔符並使用vb.net存儲在數組中

我的代碼存儲在字符串數組中:

msg = t1("fld_msg") 
msg1 = msg.Length 
For i = 0 To msg.Length - 1 
    strarr = msg.Substring(0, 150) 
Next 

錯誤:

value of type string cant be converted into one dimensional array 
+0

你能給更多的代碼嗎?你的代碼是模糊的 –

回答

1

你需要一個計數器遞增單元陣列中

msg = t1("fld_msg") 
msg1 = msg.Length 
dim Counter as Integer = 0 
For i = 0 To msg.Length - 1 Step 150 
    strarr(Counter) = msg.Substring(i, 150) 
    Counter += 1 
Next 
+0

你是否爲長度不是150的倍數的字符串運行代碼? – NeverHopeless

+0

它不一定是150的倍數才能通過循環。它可以是200,它仍然會執行。 – Ahmad

+0

我沒有考慮用'Step'來限制你的代碼爲150的倍數,例如,如果'msg'有315個字符,你認爲它會起作用嗎?由於在第3次迭代中,它將請求150個字符,而它只剩下15個字符。我的期望將會是這種情況的一個例外。可能是我誤解了你的觀點。 – NeverHopeless

1

子字符串返回類型string的值。

您試圖將結果放入數組中。

嘗試: -

strarr(0) = msg.Substring(0,150) 
strarr(1) = msg.Substring(150) 
0
在你的代碼

需要校正是子值賦給an index of array 「strarr(I)」而不是to an array「strarr」。還需要像(0,XX)這樣的子字符串是不正確的。每次它將從索引0返回一個子字符串時,請改爲使用(i*NumberOfCharactersToInclude,XX)。但這裏'XX'也很重要。

例如,

如果字符串具有311個字符,XX被固定到150,這將導致在第三子串錯誤。所以我建議你去這個:(假設框架是3.5或以上)

For i As Integer = 0 To len ' len represents possible no. of substrings 
    strarr(i) = New String(msg.Skip(i * 150).Take(150).ToArray) 
Next 
相關問題