#2
yuma2023-04-10 17:55
此问题丢给ChatGpt 3.5来回答,如下:
摇号程序(修改版) 求VB程序,实现以下功能: 1、把一组要摇号的姓名放在一个1.TXT文档中, 2、读取1.TXT文件的姓名,点击按钮,随机排序,并加序号 3、根据TEXT的宽度和TEXT组件的字号大小,大概算出每行可以显示几个名字,然后设定每行显示这么多名字,然后全部1.TXT文件里的名字全部显示出来! 请问大神,这样的话程序怎么写? 以下是一个简单的VB程序示例,可以完成你所需要的功能: Private Sub btnLuckyDraw_Click() '读取1.txt文件中的姓名到数组中 Dim nameArr() As String Dim fso As New Scripting.FileSystemObject Dim fileObj As Scripting.TextStream Set fileObj = fso.OpenTextFile("1.txt", ForReading) nameArr = Split(fileObj.ReadAll(), vbCrLf) fileObj.Close '随机排序并加序号 Randomize Dim i As Long Dim temp As String For i = 0 To UBound(nameArr) temp = nameArr(i) j = Int(Rnd() * UBound(nameArr)) nameArr(i) = nameArr(j) nameArr(j) = temp nameArr(i) = i + 1 & ". " & nameArr(i) Next i '计算每行可以显示的名字数量 Dim textWidth As Single textWidth = TextWidth(nameArr(0)) Dim maxCols As Long maxCols = Int(Me.Width / textWidth) '在TEXT组件中显示所有名字 txtNames.Text = "" Dim row As Long row = 1 For i = 0 To UBound(nameArr) If i Mod maxCols = 0 Then txtNames.Text = txtNames.Text & vbCrLf row = row + 1 End If txtNames.Text = txtNames.Text & nameArr(i) & " " Next i End Sub 注:上述程序依赖于"Microsoft Scripting Runtime"的库,请确保你的电脑中已经安装了该库。 |
1、把一组要摇号的姓名放在一个1.TXT文档中,
2、读取1.TXT文件的姓名,点击按钮,随机排序,并加序号
3、根据TEXT的宽度和TEXT组件的字号大小,大概算出每行可以显示几个名字,然后设定每行显示这么多名字,然后全部1.TXT文件里的名字全部显示出来!
请问大神,这样的话程序怎么写?
[此贴子已经被作者于2023-4-10 11:09编辑过]