关于VB随机选择的问题,会的帮个忙

来源:百度知道 编辑:UC知道 时间:2024/06/06 01:18:02
TEXT1=01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19
点COMMAND2对TEXT1中的数进行随机选择,选择4个数值,选择的结果输入到TEXT10中,
例如,随机选择的第一位数是06,
建一个TEXT2 再建一个TEXT3

TEXT63=当前随机选择右边要排队的数值,

06是每一位,右边的TEXT63中是要排除的数值,
TEXT3=08,09,10

那第二位,随机选择,就没有了08,09,10
就只有07,11,12,13,14,15,16,17,18,19
可以选择了,

例如第二位选择的是13
TEXT64=15,18
那第三位就只有14,16,17,19可以选择,

第三位是14,
TEXT65=17
那就是只有16,19是第四位的选择了,

第四位等于16

TEXT10=06,13,14,16

也就是说,TEXT3,4,5中的数是TEXT1中当前选择的数要排除的数,

也可以这么说吧,把TEXT1中的19个数,TEXT1中的数不是固定的,最多50个数,01--50的数

点了COMMAND2以后,以当前随机选择数为基础,TEXT63,64,65,66,67,,,,,,中的数就是要排除的数,也可以叫删除,
这样做也可以,
当第一位等于06以后,把TEXT63中的数值删除,刷新TEXT1中的值,再进行随机选择,这样也行,是临时删除,因为要选择多次,当这一组号码选择完以后,再恢复成之前的状态,从新进行第一位的选择,之后的类型和上面说的差不多,
text1=01,02,03,04,05,06,07,08,09,10
随机选择5位数,(1-50)中的数,就以这10位数来说吧,
01=TEXT2
02=TEXT3
03=TEXT4
04=TEXT5
05=TEXT6
06=TEXT7
0

'两个LIST 一个TEXT,一个COMMAND

Private Sub Command1_Click()
Dim n, s
If List1.ListCount > 0 Then
Randomize
n = Int((List1.ListCount) * Rnd)
s = List1.List(n) ' .ItemData(n)
List2.AddItem s
List1.RemoveItem n
Command1.Caption = "已选了" & List2.ListCount & "个"
End If
End Sub

Private Sub Command2_Click() '排序
Dim s
For I = 0 To List2.ListCount - 1
For j = List2.ListCount - 1 To I + 1 Step -1
If List2.List(I) > List2.List(j) Then
s = List2.List(I)
List2.List(I) = List2.List(j)
List2.List(j) = s
End If
Next
Next
End Sub

Private Sub Form_Load()
'先设 Text1.MultiLine = 1
Text1.Text = "01,02,03,04,05,06,07,08,09,10,11,12,13,14"
Command1.Caption = "开始选"
Command2.Caption = "排序"
List1.Clear
List2.Clear
For Each n In Split(Text1.Text, ",") '将TE