| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2281 人关注过本帖
标题:如何加快两个TXT文件合并速度?
取消只看楼主 加入收藏
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
结帖率:70%
收藏
已结贴  问题点数:20 回复次数:1 
如何加快两个TXT文件合并速度?
有两个TXT文件——1.txt和2.txt,每个文件都4万行左右。1.txt的行数和2.TXT行数一致,两个文件每一行的内容都相互对应,现希望将2.TXT文件的每一行内容都插入1.TXT文件的每一行中,并生成一个新文件。如下是我的程序,已经能达到我的要求,但就是其中的“将2.TXT文件的每一行内容都插入1.TXT文件的每一行中”过程太慢,4万多行大概需要12分钟,请问这一段过程如何修改使之加快速度。

程序如下(红色部分就是最耗时间位置):

Private Sub Command4_Click()
Dim MyStr1() As String
Dim MyStr2() As String
Dim ttemp As String
Dim n As Long 'Integer
tt = Timer
'读取文档1到数组MyStr1里
n = 0
Open (Dir4.Path & "\" & File4.FileName) For Input As #1       '以读的方式打开文件
Do While Not EOF(1)   ' 循环至文件尾
   n = n + 1
   ReDim Preserve MyStr1(n)
   Line Input #1, MyStr1(n)   '读入一行
Loop
Close #1   ' 关闭文件。

'读取文档2到数组MyStr2里
n = 0
Open (Dir5.Path & "\" & File5.FileName) For Input As #1       '以读的方式打开文件
Do While Not EOF(1)   ' 循环至文件尾
   n = n + 1
   ReDim Preserve MyStr2(n)
   Line Input #1, MyStr2(n)   '读入一行
Loop
Close #1   ' 关闭文件。


'按照要求把数组里的内容组合到字符串变量
Dim MyStr As String
Dim i As Long
MyStr = ""
For i = 1 To UBound(MyStr1)
   MyStr = MyStr & Left(MyStr1(i), 45) & MyStr2(i) & Mid(MyStr1(i), 56) & vbCrLf
Label1.Caption = "已完成" & i & "行" '加个label显示进度
DoEvents '行太多了,防止程序假死
Next i


'写新建文档文件
   Open (Dir5.Path & "\新文档.txt") For Output As #1     '以输出方式打开文件
   Print #1, MyStr
Close #1   ' 关闭文件。

tt = Timer - tt
 MsgBox "ok" & vbCrLf & tt

End Sub

附 1.txt  2.txt  目标文件.txt
1.rar (75.82 KB)
2.rar (904 Bytes)
目标文件.rar (81.69 KB)
搜索更多相关主题的帖子: TXT 文件 一行 内容 Dim 
2017-11-21 14:54
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
收藏
得分:0 
感谢ZHRXJR版主和wds1,你们的回复让我茅塞顿开,你们的编程水平让我五体投地,vb语言博大精深,我还有很长的路要走。
2017-11-23 07:27
快速回复:如何加快两个TXT文件合并速度?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014089 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved