读取1.txt里面的第一行,读完删除第一行,然后将读到的内容写入到2.txt
本帖最后由 xymc 于 2016-9-25 19:15 编辑读取1.txt里面的第一行,读完删除第一行,然后将读到的内容写入到2.txt
1.txt内容
第一行
第二行
第三行
#include <File.au3>
; 如果文件为空的,脚本退出.
Local $line = FileReadLine("1.txt")
If @error = -1 Then Exit
SwapString(@ScriptDir & '\1.txt')
Func SwapString($File)
Local $txt, $tmpfile = @TempDir & '\tmp.txt'
FileDelete($tmpfile)
Local $tmp = FileOpen($tmpfile, 1)
_FileReadToArray($File, $txt)
For $i = 2 To $txt
FileWriteLine($tmp, $txt[$i])
Next
Local $Pfile = FileOpen("2.txt", 2)
FileWriteLine($Pfile,$txt)
FileClose($Pfile)
FileMove($tmpfile, $File, 1)
EndFunc ;==>SwapString
这个单独运行没有问题,放到其他程序里面就出错了,为什么呢?哪里错了
或者有没有简单一点的写法? 其他程序调用,都存在一个执行路径的问题
Local $line = FileReadLine(@ScriptDir & "\1.txt") 回复 1# xymc
删除第一行可以这样Local $sTxt = '第一行' & @CRLF & _
'第二行' & @CRLF & _
'第三行'
MsgBox(0, '', StringRegExpReplace($sTxt, '^\V*\v+', '')) #include <File.au3>
Local $ReadFilePath = @ScriptDir & '\1.txt'
Local $WriteFilePath = @ScriptDir & '\2.txt'
Local $LineOne = '' ;$LineOne 为读取到的第一行的内容
;若文件不存在,则退出
IfNot FileExists( $ReadFilePath ) Then
MsgBox(0,'Error','文件不存在!')
Exit
;若文件存在且为空,则退出
Else
$hFile = FileOpen( $ReadFilePath )
If $hFile = -1 Then
MsgBox(0,'Error','打开文件失败!')
EndIf
$LineOne = FileReadLine($hFile)
If $LineOne = -1 Then
MsgBox(0,'Error','文件为空!')
Exit
EndIf
EndIf
;删除第一行
_FileWriteToLine($ReadFilePath,1,'',1)
If @error Then
MsgBox(0,'Error','写入文件失败,错误代码:' & @error )
EndIf
;关闭文件
FileClose( $hFile )
;写入文件
$hFile = FileOpen( $WriteFilePath ,2 + 8)
FileWrite( $hFile , $LineOne )
FileClose( $hFile ) _FileWriteToLine{:face (356):}
页:
[1]