| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2480 人关注过本帖
标题:如何批量打开文本
只看楼主 加入收藏
min199412
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-4-14
结帖率:33.33%
收藏
已结贴  问题点数:20 回复次数:9 
如何批量打开文本
在text1.text内容指定路径下的文件夹内打下所有的文本文件 并记录文本文件的数量 读取文本内容得出每个文本行数并相加
搜索更多相关主题的帖子: 记录 如何 文件夹 文本文件 
2016-04-14 15:00
hjxlj
Rank: 10Rank: 10Rank: 10
来 自:江西
等 级:贵宾
威 望:14
帖 子:292
专家分:1519
注 册:2013-6-25
收藏
得分:0 
我肯定楼主把问题描述清楚一点,绝对不会有什么损失。

本人QQ:775420425
2016-04-14 20:31
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:20 
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
2016-04-14 21:18
min199412
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-4-14
收藏
得分:0 
回复 2楼 hjxlj
图片附件: 游客没有浏览图片的权限,请 登录注册
在文本框输入文件夹路径,单击查询 就查询其中的路径并打开读取路径下所有的文本文件,得出文本数量和文本内容行数总合
2016-04-15 08:54
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:0 
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")

授人于鱼,不如授人于渔
早已停用QQ了
2016-04-15 18:04
hjxlj
Rank: 10Rank: 10Rank: 10
来 自:江西
等 级:贵宾
威 望:14
帖 子:292
专家分:1519
注 册:2013-6-25
收藏
得分:0 
回复 4楼 min199412
如果文件夹里有子文件夹,子文件夹里的文本文件要不要处理?

本人QQ:775420425
2016-04-15 19:35
min199412
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-4-14
收藏
得分:0 
回复 6楼 hjxlj
如果有子文件夹应该怎么写?
2016-04-16 10:49
快速回复:如何批量打开文本
数据加载中...
 
   



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

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