找回密码
 加入
搜索
查看: 1515|回复: 5

[网络通信] Int($sFileRead = "")有什么含义?[已解决]

[复制链接]
发表于 2018-6-27 21:22:14 | 显示全部楼层 |阅读模式
本帖最后由 cashiba 于 2018-6-28 21:55 编辑
Func _FileCountLines($sFilePath)
 Local $hFileOpen = FileOpen($sFilePath, $FO_READ)
 If $hFileOpen = -1 Then Return SetError(1, 0, 0)
 Local $sFileRead = StringStripWS(FileRead($hFileOpen), $STR_STRIPTRAILING)
 FileClose($hFileOpen)
 Return UBound(StringRegExp($sFileRead, "\R", $STR_REGEXPARRAYGLOBALMATCH)) + 1 - Int($sFileRead = "")
EndFunc

如上自定义函数计算文件行数
最后一句
UBound(StringRegExp($sFileRead, "\R", $STR_REGEXPARRAYGLOBALMATCH)) + 1 - Int($sFileRead = "")
感觉有些深奥阿
整句话怎么解释或理解呢?
尤其 Int($sFileRead = "")起什么作用?

发表于 2018-6-28 01:59:10 | 显示全部楼层
帮助不是写得很清楚,要转换为整数的表达式.
发表于 2018-6-28 08:53:51 | 显示全部楼层
楼主问得是为什么这样写.而不是int有什么用.

Int($sFileRead = "")
括号里的$sFileRead = "" 是一个逻辑判断.
如果前面的sFileRead的值不为空.那么这个表达式返回假.Int($sFileRead = "") = 0

如果前面的sFileRead的值为空.那么这个表达式返回真.Int($sFileRead = "") = 1

评分

参与人数 2金钱 +30 收起 理由
cashiba + 20 感谢!
nmgwddj + 10

查看全部评分

发表于 2018-6-28 08:55:10 | 显示全部楼层
实在不懂可以代入测试一下的.一试便知.
发表于 2018-6-28 08:56:57 | 显示全部楼层
按照这个函数的写法,如果文件为空时,会返回1,所以后面加上一个判断是不是空,为空则减掉这个1.

评分

参与人数 1金钱 +20 收起 理由
cashiba + 20 感谢杰管!

查看全部评分

 楼主| 发表于 2018-6-28 21:36:01 | 显示全部楼层
哦,原来是要表达这个意思,太深奥了....


 if $sRead = "" Then
  Return 0
 else
  Return UBound(StringRegExp($sRead, "\R", 3)) + 1
 EndIf

感谢各位大神的指点.....

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-27 00:56 , Processed in 0.084400 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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