找回密码
 加入
搜索
查看: 2824|回复: 8

[AU3基础] 提问关于用_FileCountLines函数取TXT文件行数问题?已解决

  [复制链接]
发表于 2010-3-4 16:12:10 | 显示全部楼层 |阅读模式
本帖最后由 ziyaxian 于 2010-3-7 14:28 编辑

有一个TXT文件共三行:第一行为路径名:J:\abc  第二行为文件名:aaa.xls   第三行为空行
这时用_FileCountLines函数取得的行数为2
但将文件名改为汉字:文件名.xls时,用_FileCountLines函数取得的行数为3,连空行也算了进去
怎么能使文件名为汉字时取得的行数也为2呢?

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-3-4 20:43:22 | 显示全部楼层
不要修改扩展名。
发表于 2010-3-4 20:51:24 | 显示全部楼层
自己修改一下那个UDF, 空行的不计数
 楼主| 发表于 2010-3-5 08:34:30 | 显示全部楼层
原UDF空行是不计数的啊,不知道怎么改成汉字了空行就计数了,怎么改原UDF呢
发表于 2010-3-5 11:40:17 | 显示全部楼层
LZ 什么版本的 AU,貌似没这问题
 楼主| 发表于 2010-3-5 12:37:36 | 显示全部楼层
我用的是3.3.2.0
发表于 2010-3-5 13:35:48 | 显示全部楼层
回复 6# ziyaxian


    你试下这个(3.3.5.x)版AU的此函数
Func _FileCountLines($sFilePath)
        Local $hFile = FileOpen($sFilePath, $FO_READ)
        If $hFile = -1 Then Return SetError(1, 0, 0)
        Local $sFileContent = StringStripWS(FileRead($hFile), 2)
        FileClose($hFile)
        Local $aTmp
        If StringInStr($sFileContent, @LF) Then
                $aTmp = StringSplit(StringStripCR($sFileContent), @LF)
        ElseIf StringInStr($sFileContent, @CR) Then
                $aTmp = StringSplit($sFileContent, @CR)
        Else
                If StringLen($sFileContent) Then
                        Return 1
                Else
                        Return SetError(2, 0, 0)
                EndIf
        EndIf
        Return $aTmp[0]
EndFunc   ;==>_FileCountLines
发表于 2010-3-6 18:05:12 | 显示全部楼层
貌似没有问题哦
 楼主| 发表于 2010-3-7 14:27:59 | 显示全部楼层
下了一个新版本没事了,谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-10 02:25 , Processed in 0.088453 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表