vb怎样把多个txt文本文件合并为一个文本文件?

已知一个文件夹中有若干个文本文件,数量不定。把这些文件合合成一个文本文件,怎样做?... 已知一个文件夹中有若干个文本文件,数量不定。把这些文件合合成一个文本文件,怎样做? 展开
 我来答
KL1112
2012-02-17 · TA获得超过531个赞
知道小有建树答主
回答量:454
采纳率:0%
帮助的人:620万
展开全部
其实方法有很多,我就列举常用的两个吧...

方法一:
循环获得文件夹里的文件;
判断是否为文本文件;
按行读取文本文件;。。。
下面我用Dir()函数获得文件夹里的文件,文件将按“文件名”排序。也可以结合文件系统来做。
Private Sub Command1_Click()
Dim FolderPath As String, FileName As String, fnum1 As Integer, fnum2 As Integer
Dim sL As String

FolderPath = "D:\123\"

fnum1 = FreeFile
Open FolderPath & "tmp.txt" For Output As fnum1

FileName = Dir(FolderPath)
Do Until FileName = ""
If LCase(Right(FileName, 4)) = ".txt" And FileName <> "tmp.txt" Then
fnum2 = FreeFile
Open FolderPath & FileName For Input As fnum2
Do Until EOF(fnum2)
Line Input #fnum2, sL
Print #fnum1, sL
Loop
Print #fnum1,
Close #fnum2
End If
FileName = Dir()
Loop
Close #fnum1
End Sub

方法二:
如果这些文本文件都是ANSI编码,那么可以使用命令行的Copy语句。
代码确实能做到很简洁,但就没有灵活性了。其中,文件将按“文件名”排序。
Private Sub Command1_Click()
Dim FolderPath As String
FolderPath = "D:\123\"
Shell "cmd.exe /c Copy """ & FolderPath & "*.txt"" """ & FolderPath & "tmp.txt"""
End Sub
另外,这种方法可以用bat文件来实现。
更多追问追答
追问
代码测试可行。但我把你代码中的"D:\123\"更换成App.Path & "\文件"怎么不行了呢?

另外,ANSI编码的文件不能按方法一进行合并吗?
追答
更换成App.Path & "\文件\"(少了一个斜杠)

ANSI编码的文件可以按方法一进行合并。我只是说,非ANSI编码的文本文件不能用方法二。
h598937749
2012-02-18 · TA获得超过316个赞
知道小有建树答主
回答量:1073
采纳率:50%
帮助的人:644万
展开全部
txt文件名有规律吗?比如1.txt 、2.txt 、3.txt....如果是这样的话就好弄点。。。
如果没规律可以用通用控件返回txt文本的路径,然后用input把txt内容都读取出来存入指定的文本就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式