注册 登录
编程论坛 VB6论坛

扫描输入到txt中,新输入时检索是否重复,输入数据大了,很慢,怎么搞呀。各位大佬!

rjl1000 发布于 2022-11-08 09:19, 1339 次点击
扫描输入到txt中,新输入时检索是否重复,输入数据大了,很慢,怎么搞呀。各位大佬!
8 回复
#2
约定的童话2022-11-08 09:41
数据库存放在哪里?txt?mdb?excel?csv?数据量有多少?
#3
rjl10002022-11-09 14:40
txt中,数量每天会入力1万条。
#4
jklqwe1112022-11-09 16:14
建议楼主把问题说清楚些,“扫描输入到txt中”这样的说法很难理解,对解决你的问题没有任何帮助,数据格式是什么样的,重复数据是如何定义的,如果不好描述,可以写一些例子,对数据如何操作,是从一个文件到另一个文件时整体过滤重复数据,还是每当插入数据是判断是否重复。
#5
约定的童话2022-11-09 18:22
回复 3楼 rjl1000
建议放入sql数据库中,这样去重也快,可以直接在插入时判断是否重复
#6
风吹过b2022-11-09 19:11
每天1万条,一个月,按30万条计算吧, 上SQL吧。
30万条记录,一般普通服务器,一条SQL查询,无索引,无缓存 的话,差不多 2秒吧
你还想怎么样?

要加快速度(
1、上平头哥家的服务器。
2、改用 C语言 开发。 这个应该没多大改观,主要是如果上平头哥的服务器就基本上可能只能 C 开发了。也有可能 能用 GO 开发。

--------------------------
一般专用SQL服务器,都要求上 多路至强,64G内存打底,SCSI阵列。用强化硬件措施来加快SQL的查询速度。
参考 12306 的优化过程,来理解硬件的重要性。


[此贴子已经被作者于2022-11-9 22:03编辑过]

#7
rjl10002022-11-10 09:06
回复 4楼 jklqwe111
我采用的是这样的方式进行比较的,比较完了没有重复将数据保存在slip No.dat中,下次入力重复该过程。   

If Dir("C:\扫描入力\") = "" Then
      MkDir ("C:\扫描入力\")
   End If
   
 lj1 = "C:\扫描入力\slip No.dat"
   If Dir(lj1) = "" Then
      Open lj1 For Output As #1
      Close #1
   End If
   
   If TextBox4.Text <> "" Then
      issame = False
         Open lj1 For Binary As #1
              If LOF(1) <> 0 Then
                 ReDim da(LOF(1) - 1) As Byte
                 Get #1, , da
              End If
         Close #1
     da1 = Split(StrConv(da, vbUnicode), vbCrLf)
     For j = 0 To UBound(da1)
        If da1(j) = TextBox4.Text Then
            issame = True: Exit For
        End If
     Next j
     If issame = False Then
        Label15.Caption = "OK"
        Label15.FontSize = 14
        Image4.BackColor = vbGreen
     End If
     If issame = True Then
        Label15.Caption = "NG"
        Label15.FontSize = 14
        Image4.BackColor = vbRed
        MsgBox "slip No 重复′"
     End If
    End If
#8
jklqwe1112022-11-10 10:42
最为简单实用的方法就是使用数据库了,几十上百万条数据处理起来完全没有问题,如果有不得以的原因不能使用数据库,那只能是像数据库一样建立索引文件,利用索引进行过滤,其方法不是特别的复杂,但要在性能,稳定性等方面达到或超过数据库很难,关键是麻烦,所以很少有人这么做了,毕竟是有现成的,谁还再费力的做一个呢。
#9
约定的童话2022-11-10 12:56
回复 7楼 rjl1000
读取的时候存入字典试一下,然后判断扫描的内容是否存在...
1