怎样用VB删除掉文本中指定的内容?

抽签程序,抽出一个,删除一个,最后全部抽完。
在线等,跪求!
找了一个例子,运行后在文本文件的末尾加了好几个回车,滚动显示的时候会出现空白,能不留空白,干干净的删除掉抽中的一行吗?

建议你使用组合框。将组合框Combo1的Style属性设置为1
Private Sub Command1_Click()
Open App.Path & "\1.txt" For Input As #1
Do While Not EOF(1)
Input #1, sj
Combo1.AddItem sj
Loop
Combo1.Text = Combo1.List(0)
Close #1
End Sub
Private Sub Command2_Click()
Randomize (Timer)
k = Int(Rnd * Combo1.ListCount)
For i = 1 To 1000
For j = 0 To Combo1.ListCount
DoEvents
Combo1.Text = Combo1.List(j)
If i = 1000 And j = k Then GoTo KK
Next j
Next i
KK:
MsgBox "恭贺" & Combo1.List(k) & "中奖!"
Combo1.RemoveItem k
End Sub追问

那个Combo1的文字不能滚动啊。

追答

已经改成能滚动的了,你再试试
Private Sub Command1_Click()
Open App.Path & "\1.txt" For Input As #1
Do While Not EOF(1)
Input #1, sj
Combo1.AddItem sj
Loop
Combo1.Text = Combo1.List(0)
Close #1
End Sub
Private Sub Command2_Click()
Randomize (Timer)
k = Int(Rnd * Combo1.ListCount)
For i = 1 To 1000
For j = 0 To Combo1.ListCount
DoEvents
Combo1.Text = Combo1.List(j)
If i = 1000 And j = k Then GoTo KK
Next j
Next i
KK:
If Combo1.List(k) = "" Then
MsgBox "对不起,已经没有可以抽取的数据!"
Exit Sub
End If
MsgBox "恭贺" & Combo1.List(k) & "中奖!"
Combo1.RemoveItem k
End Sub

追问

删除到最后能否给个提示,已经全部抽取完毕!

追答

上面的代码你试试。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-09
不知道你的文本是什么样子的,也不知道你是如何来抽奖的,根据你的描述,不知道是否可以这样去理解:你有一个文本文件,用来存放抽签内容,每行一条,在程序设计的时候,先读取这些签的内容,然后进行滚动抽签,抽了一个出来后,下次再抽的时候,希望没有重复。现在你能做到的是,删除重复,但是在滚动显示的时候出现空白。针对你这种情况,我的建议是:
用一个数组来保存每一条签的内容,然后在滚动显示的时候,对数组进行判断,如果是空,则不显示。

上面是根据你的描述来回答的,不知道你是否满意?追问

保利地产
浙江广厦
中江地产
冠城大通
海泰发展
东湖高新
道博股份
中体产业
大龙地产

这样的文本内容,能删除掉一行,但是在末尾有空白回车,影响滚动。
感谢你的回复!!!

第2个回答  2012-05-09
把你的例子贴出来,我给你改一下追问

你给我邮箱,我发给你整个代码。谢谢!

追答

[email protected]

追问

还有个问题,最后光剩一行的时候,会报错,下标越界。还是剩一行文字加2个空行比较好,滚动的速度很快,基本看不出来。

相似回答