VB开发抽奖程序,求大神给个完整的程序。
要求如下:
按开始按钮在界面中随机快速滚动显示1.txt中的名字。
按停止按钮停止滚动,在界面中显示其中一个名字。并将其写入到2.txt中。
2.txt中的名字之后抽奖不再显示,除非按重置按钮。
要求如下:
按开始按钮在界面中随机快速滚动显示1.txt中的名字。
按停止按钮停止滚动,在界面中显示其中一个名字。并将其写入到2.txt中。
2.txt中的名字之后抽奖不再显示,除非按重置按钮。
解决方案 »
- 向word上插入数据??急急
- 还有问题呢。。怎么解决呢
- 各位达人,帮忙解决这个问题啊,都许久没有结贴了,解决了一共200分,给个详细代码例子啊!
- VB 调用VC 编写的DLL
- 在WIN2000下安装VB 系统启动后提示错误!
- 我在联接服务器上的sql数据库时,必须先登录服务器。问题是我不想登录服务器,可以联接数据库吗?
- 说说你使用的打印控件(参靠并散分)
- 黑白棋程序中的奇怪问题
- 运用vb6.0进行文件操作遇到的一个奇怪BUG!
- spread8表格控件导致winform不能通过一个form上的按钮单击事件显示另一个form??!!
- Excel VBA 中引用Match函数为什么出错?而引用其他函数就没问题?
- 用VB将excel中的一列数据生成一个数组,放到指定的单元格
a = "D:\TEST\TEMP.csv"
Open a For Input As #1
arr = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1
Open a For Output As #2b = UBound(arr) - 1
Randomize
d = arr(Int(b * Rnd) + 1)
Label1.Caption = d
For i = 0 To UBound(arr)
If Len(arr(i)) <> 0 ThenPrint #2, arr(i)End If
NextClose #2
End Sub
Private Sub Command1_Click()
Timer1_Timer
End SubPrivate Sub Command2_Click()
stop_1
End SubPrivate Sub Command3_Click()
Timer1.Enabled = False
If Dir("D:\TEST\", vbDirectory) = "" Then MkDir ("D:\TEST\")
a = "D:\TEST\2.csv"
Open a For Output As #1
Print #1, "目录"
Close #1
a = "D:\TEST\1.csv"
Open a For Input As #1
arr = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1
a = "D:\TEST\TEMP.CSV"
Open a For Output As #2
For i = 0 To UBound(arr) - 1
Print #2, arr(i)
Next
Close #2
End SubPrivate Sub Form_Load()
If Dir("D:\TEST\", vbDirectory) = "" Then MkDir ("D:\TEST\")
a = "D:\TEST\2.csv"
Open a For Output As #1
Print #1, "目录"
Close #1
a = "D:\TEST\1.csv"
Open a For Input As #1
arr = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1
a = "D:\TEST\TEMP.CSV"
Open a For Output As #2
For i = 0 To UBound(arr) - 1
Print #2, arr(i)
Next
Close #2
End Sub
Private Sub stop_1()
Timer1.Enabled = False
a = "D:\TEST\2.csv"
aa = "D:\TEST\TEMP.csv"
Open aa For Input As #1
arr = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1Open a For Input As #11
brr = Split(StrConv(InputB(LOF(11), 11), vbUnicode), vbCrLf)
Close #11Open a For Output As #2
Open aa For Output As #22
For b = 0 To UBound(arr)
If Len(arr(b)) <> 0 Then
If arr(b) <> Label1.Caption Then
Print #22, arr(b)
End If
End If
NextFor b = 0 To UBound(brr) - 1
Print #2, brr(b)
Next
Print #2, Label1.Caption
Close #2
Close #22
End SubPrivate Sub Timer1_Timer()
Timer1.Enabled = True
Timer1.Interval = 200
Call Start
End Sub你可以试试,我原文件用的.csv格式,.txt文件会乱码 别的基本可以符合你提出的要求,内容有些地方有些累赘你可以尝试改改 我也是一个新手,大家相互学习
第一列存名字,第二列用公式 =RAND()填充,打开筛选对第二列排序就可以,想抽几个就取几行。
Private mcolNames As New Collection
Private mintIndex As IntegerPrivate Property Get File1Path() As String
File1Path = fso.BuildPath(App.Path, "1.txt")
End PropertyPrivate Property Get File2Path() As String
File2Path = fso.BuildPath(App.Path, "2.txt")
End PropertyPrivate Sub cmdReset_Click()
Dim objStream As TextStream
Set objStream = fso.OpenTextFile(File2Path, ForWriting, True)
objStream.Close
End SubPrivate Sub cmdStart_Click()
Dim i As Long
For i = 1 To mcolNames.Count
mcolNames.Remove 1
Next Dim objStream As TextStream
Set objStream = fso.OpenTextFile(File1Path, ForReading, False)
While Not objStream.AtEndOfStream
Dim strName As String
strName = objStream.ReadLine()
mcolNames.Add strName
Wend
objStream.Close
Set objStream = fso.OpenTextFile(File2Path, ForReading, False)
While Not objStream.AtEndOfStream
strName = objStream.ReadLine()
For i = mcolNames.Count To 1 Step -1
If mcolNames(i) = strName Then
mcolNames.Remove i
Exit For
End If
Next
Wend
objStream.Close
If mcolNames.Count > 0 Then
Timer1.Enabled = True
Else
MsgBox "已经全部抽取了!", vbExclamation
End If
End SubPrivate Sub cmdStop_Click()
Timer1.Enabled = False
Dim objStream As TextStream
Set objStream = fso.OpenTextFile(File2Path, ForAppending, True)
objStream.WriteLine mcolNames(mintIndex)
objStream.Close
End SubPrivate Function GetRandomNumber(ByVal intStart As Integer, ByVal intEnd As Integer) As Integer
GetRandomNumber = Int(Rnd * (intEnd - intStart + 1) + intStart)
End FunctionPrivate Sub Form_Load()
Randomize
Timer1.Enabled = False
Timer1.Interval = 20
End SubPrivate Sub Timer1_Timer()
mintIndex = GetRandomNumber(1, mcolNames.Count)
Label1.Caption = mcolNames(mintIndex)
End Sub下载地址:
链接:https://pan.baidu.com/s/1w5Lj6CE72tdQ6S9NrhU4CA
提取码:1ebe运行示例: