VB 文本每行进行随机排列

来源:百度知道 编辑:UC知道 时间:2024/05/27 18:32:40
文本框数据如下,要求进行随机排列,
就是第1行换成5行 ,第3行换成2行这样随机换行.

127,14,18,25,312,35,412,42,44,47
123,128,129,11,15,212,21,23,27,36
122,123,21,23,39,15,18,19,33,37,
122,123,14,15,16,17,26,38,39,42,
129,11,13,19,27,312,34,35,38,45,
125,127,129,212,37,38,41,48,
25,13,27,22,23,112,12,16,15,45
123,127,11,16,212,28,37,43,47,48,
122,127,128,22,27,28,32,42,47,48,
122,112,19,212,23,312,31,34,38,48,
29,21,33,25,27,212,23,122,121,49
129,14,17,21,26,29,33,38,41,45
121,127,18,19,126,129,24,47,17,29,
127,22,41,13,25,29,32,16,17,18
要求全部换,不止是1 2 5 行换.

你把每一行都赋值给一个变量
如:a="127,14,18,25,312,35,412,42,44,47"
b="123,128,129,11,15,212,21,23,27,36"
c="122,123,21,23,39,15,18,19,33,37"
然后随机组合这些字母,再把它用z=a+vbnewline+c+vbnewline+b类似赋值给z
再text1.text=z就可以了
我试了一下,简单明了,不像上楼这么复杂,应该没问题的!!
如果你还不会随机组合这些字母的话,试试
For i = 1 To 26
a = Int((90 - 65 + 1) * Rnd + 65)
Text2.Text = Text2.Text & Chr(a)
Next i
随便选出几个
应该OK了

当然是先拆分行
dim txtsp() as string
txtsp=split(text1.text,vbcrlf)
redim txtsp(ubound(txtsp()) as string
rows=ubound(txtsp())
'一共rows行
dim tmpline as string
randomize
a=int(rnd*rows)
b=int(rnd*rows)
tmpline=txtsp(a)
txtsp(a)=txtsp(b)
txtsp(b)=tmpline
text1.text=txtsp(0)
for i=1 to ubound(txtsp())
text1.text=text1.text & vbcrlf & txtsp(i)
next

随机换了2行

可能不是最好的方法