cashiba 发表于 2018-6-27 21:22:14

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

本帖最后由 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 = "")起什么作用?

xzf680 发表于 2018-6-28 01:59:10

帮助不是写得很清楚,要转换为整数的表达式.

tubaba 发表于 2018-6-28 08:53:51

楼主问得是为什么这样写.而不是int有什么用.

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

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

tubaba 发表于 2018-6-28 08:55:10

实在不懂可以代入测试一下的.一试便知.

haijie1223 发表于 2018-6-28 08:56:57

按照这个函数的写法,如果文件为空时,会返回1,所以后面加上一个判断是不是空,为空则减掉这个1.

cashiba 发表于 2018-6-28 21:36:01

哦,原来是要表达这个意思,太深奥了....
{:face (203):}

if $sRead = "" Then
Return 0
else
Return UBound(StringRegExp($sRead, "\R", 3)) + 1
EndIf
感谢各位大神的指点.....
{:face (88):}
页: [1]
查看完整版本: Int($sFileRead = "")有什么含义?[已解决]