| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5042 人关注过本帖
标题:如何知道一个文本文件里面的行数?用什么函数?
只看楼主 加入收藏
qyzww
Rank: 2
等 级:论坛游民
帖 子:31
专家分:13
注 册:2008-5-11
结帖率:0
收藏
 问题点数:0 回复次数:15 
如何知道一个文本文件里面的行数?用什么函数?
如何知道一个文本文件里面的行数?用什么函数?
搜索更多相关主题的帖子: 文本文件 函数 
2008-11-07 17:13
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
收藏
得分:0 
这用循环来读,加个计数的变量

偶是菜鸟鸟偶惧WHO?!!!!
2008-11-07 17:40
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
dim i as integer
dim iFileNum as integer
dim str as string
  iFileNum =freefile
open 你的文件 for input as #iFileNum '这里要完整的路径和文件名
   do while not eof(iFileNum)
    i=i+1
    line input #iFileNum,str
     'if len(str)=0 then i=i-1'这一行你可以选用,其目的是忽略空行
    loop
close #iFileNum
   msgbox "该文件共 " & i & "行"

[[it] 本帖最后由 不说也罢 于 2008-11-7 19:46 编辑 [/it]]

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2008-11-07 19:45
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 
统计回车换行符会快些
2008-11-07 19:56
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
把读字符的代码一起写了,一举两得,你作为版主,尽量能给提问都参考的代码为宜,这样容易留住B友,聚集人气

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2008-11-07 20:03
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 
回复 5# 的帖子
'哪有这么多时间一个个把代码贴出来啊 直接给思路好些
'既然有要求了,还是给个代码吧
'把下面的代码放到一个标准模块里

Option Explicit
   Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
   Public Const EM_GETLINECOUNT = &HBA
'读取文本流
Public Function getTextStream(FileName As String) As String
    On Error GoTo ErrorHand
    Dim TempStr As String
    Dim FileNum As Long
    FileNum = FreeFile
    Open FileName For Input As #FileNum
    TempStr = StrConv(InputB(LOF(FileNum), #1), vbUnicode)
    Close #FileNum
    getTextStream = TempStr
    Exit Function
ErrorHand:
    getTextStream = ""
End Function
'方法1,此方法直接搜索字符串,比较通用
Public Function getStringCount(ByVal SearchIn As String, ByVal SearchFor As String) As Long
    Dim Number As Long
    Dim Pos    As Long
    Pos = InStr(1, SearchIn, SearchFor)
    Do While Pos <> 0
       Number = Number + 1
       Pos = InStr(Pos + 1, SearchIn, SearchFor)
    Loop
    getStringCount = Number
End Function
'方法2,此方法用Split,比方法1高效
Public Function getCrlfCount(ByVal SearchString As String) As Long
    Dim ret As Long
    Dim StrArray() As String
    StrArray = Split(SearchString, Chr(10))
    ret = UBound(StrArray)+1
    getCrlfCount = ret
End Function
'方法3,此方法统计TextBox数据行数
Public Function GetTextLines(txtHwnd As Long) As Long
   GetTextLines = SendMessage(txtHwnd, EM_GETLINECOUNT, 0, 0)
End Function
'测试,在C盘建立num.txt文件,内容如下:
当前密码:000905   200001        400001        600001        800000
当前密码:001105   200001        400001        600001        800000
结束密码:001921   200001        400001        600001        800000

测试结果:
方法1:print getstringcount(gettextstream("C:\num.txt"),chr(10))
结果:3
方法2:print getcrlfcount(gettextstream("C:\num.txt"))
结果:3

[[it] 本帖最后由 三断笛 于 2008-11-7 20:46 编辑 [/it]]
2008-11-07 20:42
qyzww
Rank: 2
等 级:论坛游民
帖 子:31
专家分:13
注 册:2008-5-11
收藏
得分:0 
非常感谢版主和上面几位网友。再次感谢。
2008-11-07 20:58
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
用Replace,替换掉空格,然后看长度变化。

我原创的方法。
2008-11-07 22:31
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 
[bo][un]multiple1902[/un] 在 2008-11-7 22:31 的发言:[/bo]

用Replace,替换掉空格,然后看长度变化。

我原创的方法。


好方法!   不过应该是替换回车符
2008-11-07 22:43
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
[bo][un]三断笛[/un] 在 2008-11-7 22:43 的发言:[/bo]



好方法!   不过应该是替换回车符

好吧……
2008-11-08 07:52
快速回复:如何知道一个文本文件里面的行数?用什么函数?
数据加载中...
 
   



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

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