pb获取文本文档(txt文件)总行数的方法

6 篇文章 0 订阅
4 篇文章 0 订阅

    在某些情况下,我们可能会有获取文本文档(txt文件)的总行数的需求。常规的做法是通过fileread,一行一行的读,然后统计累加行数,这样的做法是逼不得已的做法,因为我们都晓得它的效率有多低。
    其实,可以将文本文档(txt文件)当成数据库文件来处理,这样就可以通过sql语句简单快速的获取文本文档(txt文件)的总行数了。
    

global function long f_txt_rowcount (string as_file);


//获取txt文件as_file的行数  by yyoinge 20111102
if not fileexists(as_file) then return -1
string ls_path, ls_file, ls_ext //路径、文件名(不带后缀)、后缀名
long ll_rowcount
//(1)分隔传入的文件名
if posw(as_file, '.') = 0 or posw(as_file, '\') = 0 then return -1 //传入的文件名有误
ls_path = leftw(as_file,lenw(as_file) - posw(reverse(as_file), '\') + 1) //文件路径
ls_file = rightw(as_file,posw(reverse(as_file), '\') - 1) //文件名(带后缀)
ls_ext = midw(ls_file, posw(ls_file, '.') + 1) //后缀名
ls_file = leftw(ls_file, posw(ls_file, '.') - 1) //文件名(不带后缀)
	
//(2)连接txt文件
oleobject rs, conn
rs = create oleobject
if rs.connecttonewobject("ADODB.Recordset") <> 0 then
	destroy rs
	messagebox('', '无法连接【ADODB.Recordset】!')
	return -1
end if
conn = create oleobject
if conn.connecttonewobject("ADODB.Connection") <> 0 then
	destroy rs
	destroy conn
	messagebox('', '无法连接【ADODB.Connection')
	return -1
end if
//conn.Open("Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + ls_path + ';Extensions=' + ls_ext + ';')
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ls_path + ';Extended Properties="text;HDR=No";')
//rs.Open("select 1 from [" + ls_file + "#" + ls_ext + "]", conn, 3,3, 1)
//ll_rowcount = long(rs.RecordCount())
//下面这种方法快一些
rs.Open("select count(1) from [" + ls_file + "#" + ls_ext + "]", conn, 3,3, 1)
ll_rowcount = long(rs.GetString(2, 1))// + 1用


rs.close()
conn.close()
destroy rs
destroy conn


return ll_rowcount
end function



    调用方法如下:
long ll_rowcount
ll_rowcount = f_txt_rowcount("e:\3.txt")


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值