现有一个txt文件,10000行,每行都有8位的数据,如下
96780457
01687792
。
。
06546466
现求一VB程序,可以检查出这一文件中是否有重复的数据。
就是检查是否有两行都是相同的数字。
会飞的青蛙说的这种方法我懂,就是因为运行速度太慢了。所以才想找一个更好的方法,
比如在WORD里的查找功能,速度相当快的。
zhangyuhangk 能说的详细一点吗?
VB的问题,检查重复的数据
答案:5 悬赏:30 手机版
解决时间 2021-02-11 19:16
- 提问者网友:泪痣哥哥
- 2021-02-11 09:12
最佳答案
- 五星知识达人网友:未来江山和你
- 2021-02-11 10:45
用richtextbox的find
'添加richtextbox1读取文件
'***********云是风的梦**********
'***********2009-1-4 14:59:22**********
'***********云是风的梦**********
'***********2009-1-4 14:59:22**********
Private Sub Command1_Click()
Dim a() As String
a() = Split(RichTextBox1.Text, vbNewLine)
For i = 0 To UBound(a)
'a(i)就是你要的每一行内容
FormatCode (a(i))
Next i
End Sub
Private Sub FormatCode(ByVal vstrKey As String) '这是一个搜索的子过程
Static t As Integer
Dim lngCodeLen As Long
Dim lngPlace As Long, lngVbcrlf As Long
Dim lngKeyCount As Long
lngKeyCount = Len(vstrKey)
lngCodeLen = LenB(RichTextBox1.Text)
t = 0
RichTextBox1.SelStart = 0
Do While lngPlace <> -1
With RichTextBox1
lngPlace = .Find(vstrKey, , lngCodeLen) 'object.Find(string, start, end, options)
If lngPlace <> -1 Then
t = t + 1
If t > 1 Then
.SelColor = vbRed
.SelText = .SelText & "重复!"
End If
.SelStart = lngPlace + lngKeyCount
End If
End With
Loop
End Sub
Private Sub Form_Load()
RichTextBox1.FileName = "d:\00.txt" '如"d:\00.txt"
End Sub
'添加richtextbox1读取文件
'***********云是风的梦**********
'***********2009-1-4 14:59:22**********
'***********云是风的梦**********
'***********2009-1-4 14:59:22**********
Private Sub Command1_Click()
Dim a() As String
a() = Split(RichTextBox1.Text, vbNewLine)
For i = 0 To UBound(a)
'a(i)就是你要的每一行内容
FormatCode (a(i))
Next i
End Sub
Private Sub FormatCode(ByVal vstrKey As String) '这是一个搜索的子过程
Static t As Integer
Dim lngCodeLen As Long
Dim lngPlace As Long, lngVbcrlf As Long
Dim lngKeyCount As Long
lngKeyCount = Len(vstrKey)
lngCodeLen = LenB(RichTextBox1.Text)
t = 0
RichTextBox1.SelStart = 0
Do While lngPlace <> -1
With RichTextBox1
lngPlace = .Find(vstrKey, , lngCodeLen) 'object.Find(string, start, end, options)
If lngPlace <> -1 Then
t = t + 1
If t > 1 Then
.SelColor = vbRed
.SelText = .SelText & "重复!"
End If
.SelStart = lngPlace + lngKeyCount
End If
End With
Loop
End Sub
Private Sub Form_Load()
RichTextBox1.FileName = "d:\00.txt" '如"d:\00.txt"
End Sub
全部回答
- 1楼网友:零点过十分
- 2021-02-11 11:46
得逐行载到内存里才方便检查~
可以定义一个10000元素的String数组~
- 2楼网友:鸽屿
- 2021-02-11 11:22
先把他们读入数组 比较大小排序
比较相邻的两项 如果相同就重复在比较下一项看是否相同
- 3楼网友:詩光轨車
- 2021-02-11 11:14
我来回答你!
此处用的是adodc控件
private sub text1_keypress(keyascii as integer)
if keyascii = 13 then
if text1.text <> "" then
set adodc2.recordset = cnn.execute("select * from 人员信息 where 人员编码='" + text1.text + "'")
if adodc2.recordset.eof = true then
text2.setfocus
else
msgbox "此人员编号已存在,请仔细核对后重新输入!"
text1.setfocus
end if
end if
end if
end sub
楼上的代码我没有测试!我一般都是这样处理的!
- 4楼网友:十鸦
- 2021-02-11 11:07
刚问了个效率高的方法!~
先把数据都存在一个数组里 然后排下顺序 可以用listbox 有个sort属性
然后一个循环 循环这个listbox 判断当前行和下一行是否相同
相同的你做相应的处理就好了!~
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯