文本文件分离多个文件,如何在分离的文件里加入指定文本内容?
将一文本文件按要求分离成多个文本文件,能否在分离的单个文本文件起始行加入 文本头.txt内容,在每个分离的单个文本尾行加入 文本尾.txt内容程序执行界面
正常分离界面
加入文本头.txt、文本尾.txt界面
程序代码
fl.rar
(5.56 KB)
Open "C:\原始.txt" For input as #1 Open "C:\1.txt" For output as #2 Open "C:\2.txt" For output as #3 …… Do while not EOF(1) line input #1, a '这里加判断语句,判断输出到哪个文件中, '下面输出到第一个文件为例 Print #2, a Loop Close #1 Close #2 Close #3
Private Sub cmdStartProcess_Click() On Error GoTo PROCESS_ERROR Dim FileNumber As Integer '可用的文件号 Dim fin As String '用于读取的数据文件 Dim fout As String '用于输出的文件 Dim savePath As String '文件保存路径 Dim curLine As String '当前读取的行 Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim pin As String Dim Ft As String '文件头 Dim Fw As String '文件尾 '文件位于APP的上一层目录,需要时自己改 Dim ts As Object Dim fout2 As String '前一次的文件名 Dim s As String Dim fj() As String Dim tit() As String Dim i As Long Dim j As Long, j2 As Long Dim tvar As Long, tvaren As Long tvar = CInt(txtVar.Text) tvaren = CInt(txtVaren.Text) fin = App.Path If Right(fin, 1) <> "\" Then fin = fin & "\" fin = fin & "..\文本头.txt" If fso.FileExists(fin) Then Set ts = fso.opentextfile(fin, 1, True) '创建文件读取对象,用于字符文件 Ft = ts.readall '用文件读取对象读出文件内容 ts.Close End If fin = App.Path If Right(fin, 1) <> "\" Then fin = fin & "\" fin = fin & "..\文本尾.txt" If fso.FileExists(fin) Then Set ts = fso.opentextfile(fin, 1, True) '创建文件读取对象,用于字符文件 Fw = ts.readall '用文件读取对象读出文件内容 ts.Close End If fin = Trim$(txtFile.Text) savePath = Trim$(txtPath.Text) If fso.FileExists(fin) = False Then MsgBox "您选择的数据文件无效,请重新选择!", vbExclamation, "信息" txtFile.SetFocus Exit Sub End If If Val(txtVar.Text) < 1 Then MsgBox "请输入有效的变量位数!", vbExclamation, "信息" txtVar.SetFocus Exit Sub End If If Len(savePath) = 0 And fso.FolderExists(savePath) = False Then MsgBox "你选择的文件保存路径无效,请重新选择!", vbExclamation, "信息" txtPath.SetFocus Exit Sub End If If Right$(savePath, 1) <> "\" Then savePath = savePath + "\" Set ts = fso.opentextfile(fin, 1, True) '创建文件读取对象,用于字符文件 s = ts.readall '用文件读取对象读出文件内容 ts.Close Set ts = Nothing fj = Split(s, vbCrLf) j2 = 0 ReDim tit(j2) For i = 0 To UBound(fj) If Len(fj(i)) > tvaren Then '该行数据长度超过输入的参数长度,则处理 s = Mid(fj(i), tvar, tvaren - tvar + 1) '取标志 For j = 1 To j2 '扫描标志库 If tit(j) = s Then Exit For '如果存在于标志库中,退出遍类 Next j If j > j2 Then '如果是中途退出,不存在标志库中 j2 = j2 + 1 ReDim Preserve tit(j2) ' tit(j2) = s '保存标志 End If End If Next i For j = 1 To j2 fin = savePath & Text1.Text & Trim(tit(j)) & ".txt" '文件名去空格处理 Set ts = fso.opentextfile(fin, 2, True) '创建文件写入对象,用于字符文件 ts.write Ft '写文件头 ts.write vbCrLf '不会自动写入回车,手动写 For i = 0 To UBound(fj) If Len(fj(i)) > tvaren Then '该行数据长度超过输入的参数长度,则处理 s = Mid(fj(i), tvar, tvaren - tvar + 1) If s = tit(j) Then '是否属于该标志 ts.write fj(i) '是,写入 ts.write vbCrLf '不会自动写入回车,手动写 End If End If Next i ts.write Fw '写文件尾 ts.write vbCrLf '不会自动写入回车,手动写 ts.Close Next j Set ts = Nothing Set fso = Nothing MsgBox "文件处理完成。", vbInformation + vbOKOnly, "信息" Exit Sub PROCESS_ERROR: MsgBox "发生了一个运行时错误: " + vbCrLf + Err.Description, vbOKOnly + vbExclamation, "错误" End Sub
[此贴子已经被作者于2016-10-18 14:31编辑过]