注册 登录
编程论坛 VB6论坛

如何批量打开文本

min199412 发布于 2016-04-14 15:00, 2657 次点击
在text1.text内容指定路径下的文件夹内打下所有的文本文件 并记录文本文件的数量 读取文本内容得出每个文本行数并相加
9 回复
#2
hjxlj2016-04-14 20:31
我肯定楼主把问题描述清楚一点,绝对不会有什么损失。
#3
xiangyue05102016-04-14 21:18
Dim num_file , num_line as integer
Sub Main()
MyPath=text1.text
Myname = Dir(MyPath, vbDirectory Or vbHidden Or vbNormal Or vbReadOnly)
Do While Myname <> ""
    If Myname <> "." And Myname <> ".." Then
       If (GetAttr(MyPath & Myname) And vbDirectory) = vbDirectory Then  '如果找到的是目录
          idir = idir + 1
          ReDim Preserve dir_i(idir) As String
          dir_i(idir - 1) = Myname
      Else
       If instr(Myname,".txt")>0 then  ImportFile(Myname)
      End If
   End If
   Myname = Dir  '搜索下一项
Loop
End Sub

Sub ImportFile( F as string)
  num_file =num_file +1
  Open F for input as #1
  Do While not EOF(1)
   Line Input #1, a
   num_line =num_line +1
   '如果读取的一行要处理成数据,对a操作
  Loop
End sub
#4
min1994122016-04-15 08:54
回复 2楼 hjxlj
只有本站会员才能查看附件,请 登录
在文本框输入文件夹路径,单击查询 就查询其中的路径并打开读取路径下所有的文本文件,得出文本数量和文本内容行数总合
#5
风吹过b2016-04-15 18:04
Public Sub ReadDirTxt(DirPath As String)
Dim fso As Object
Dim fsod As Object
Dim fsof As Object
Dim f As Object
Dim i As Long
Dim s As String, fj() As String
Dim o As Long, o2 As Long
Dim m As Variant
Set fso = CreateObject("Scripting.FileSystemObject")
Set fsod = fso.getfolder(DirPath).Files
For Each f In fsod
    If fso.GetExtensionName(f) = "txt" Then
        o2 = o2 + 1
        If f.Size > 0 Then              '文件为空的不处理
            Set fsof = f.OpenAsTextStream(1)
            s = fsof.ReadAll
            fj = Split(s, vbCrLf)
            
            For Each m In fj
                If Len(m) > 0 Then          '空行不记
                    o = o + 1
                End If
            Next
        End If
    End If
Next
MsgBox "TXT文件数量:" & o2 & vbCrLf & "文件总行数:" & o
End Sub
---------------------------------
伸手党很让人烦。这个代码你慢慢琢磨吧。不解释。
调用:如:
Call ReadDirTxt("c:\windows")
#6
hjxlj2016-04-15 19:35
回复 4楼 min199412
如果文件夹里有子文件夹,子文件夹里的文本文件要不要处理?
#7
min1994122016-04-16 10:49
回复 6楼 hjxlj
如果有子文件夹应该怎么写?
1