樱花雪月 发表于 2015-11-26 16:04:25

FileWriteToLine的问题

本帖最后由 樱花雪月 于 2015-11-28 17:05 编辑

3.3.9.21版本存在很多问题,在测试的过程中文本被清空... - -!
对文件改动了一些,麻烦坛友看看存在什么问题及是否在你的环境下正常使用Func _FileWriteToLine($sFilePath, $iLine, $sText, $iOverWrite = 0)
        If $iLine <= 0 Then Return SetError(4, 0, 0)
        If Not IsString($sText) Then
                $sText = String($sText)
                If $sText = "" Then Return SetError(6, 0, 0)
        EndIf
        If $iOverWrite <> 0 And $iOverWrite <> 1 Then Return SetError(5, 0, 0)
        If FileExists($sFilePath) = 0 Then Return SetError(2, 0, 0)

        Local $sFileRead = FileRead($sFilePath)
        Local $aArray = StringRegExp(@CRLF & $sFileRead & @CRLF, "([^\r\n]*)(?:\r\n|\n|\r|$)", 3)
        $aArray = UBound($aArray) - 2
        If ($aArray + 1) < $iLine Then Return SetError(1, 0, 0)

        Local $hFileOpen = FileOpen($sFilePath, FileGetEncoding($sFilePath) + $FO_OVERWRITE)
        If $hFileOpen = -1 Then Return SetError(3, 0, 0)

        $sFileRead = ""
        For $i = 1 To $aArray
                If $i = $iLine Then
                        If $iOverWrite Then
                                If $sText <> '' Then $sFileRead &= $sText & @CRLF
                        Else
                                $sFileRead &= $sText & @CRLF & $aArray[$i] & @CRLF
                        EndIf
                ElseIf $i < $aArray Then
                        $sFileRead &= $aArray[$i] & @CRLF
                ElseIf $i = $aArray Then
                        $sFileRead &= $aArray[$i]
                EndIf
        Next

        FileWrite($hFileOpen, $sFileRead)
        FileClose($hFileOpen)
        Return 1
EndFunc

h20040606 发表于 2015-11-26 16:21:40

测试正常啊,我用别的版本为3.3.12.0
页: [1]
查看完整版本: FileWriteToLine的问题