2012-11-05 66 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 
相关问题