找回密码
 加入
搜索
查看: 1811|回复: 1

[AU3基础] FileWriteToLine的问题

[复制链接]
发表于 2015-11-26 16:04:25 | 显示全部楼层 |阅读模式
本帖最后由 樱花雪月 于 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[0] = UBound($aArray) - 2
        If ($aArray[0] + 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[0]
                If $i = $iLine Then
                        If $iOverWrite Then
                                If $sText <> '' Then $sFileRead &= $sText & @CRLF
                        Else
                                $sFileRead &= $sText & @CRLF & $aArray[$i] & @CRLF
                        EndIf
                ElseIf $i < $aArray[0] Then
                        $sFileRead &= $aArray[$i] & @CRLF
                ElseIf $i = $aArray[0] Then
                        $sFileRead &= $aArray[$i]
                EndIf
        Next

        FileWrite($hFileOpen, $sFileRead)
        FileClose($hFileOpen)
        Return 1
EndFunc 
发表于 2015-11-26 16:21:40 | 显示全部楼层
测试正常啊,我用别的版本为3.3.12.0

评分

参与人数 1金钱 +10 收起 理由
樱花雪月 + 10 感谢测试,麻烦了

查看全部评分

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

本版积分规则

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

GMT+8, 2024-3-29 17:38 , Processed in 0.086325 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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