au3 怎样删除文本内每行后三个字符,直到文本结束???请教一下!!!
怎样删除文本内每行后三个字符,直到文本结束???请教一下!!! 本帖最后由 水木子 于 2011-2-27 20:30 编辑$sText = '测试文本1一二三' & @CRLF & _
'测试文本2一二三四' & @CRLF & _
'测试文本3一二三四五' & @CRLF & _
'测试文本4一二三四五六' & @CRLF & _
'测试文本5一二三四五六七'
$sRer = StringRegExpReplace($sText, '.{3}(?=[\r])|.{3}$', '')
MsgBox(0, '', $sRer) 是删除已存在文本里的内容test.txt并保存。先谢了!! 本帖最后由 水木子 于 2011-2-27 20:30 编辑
回复 3# xdafeng
道理是一样的!
$sText = FileRead('Text.txt') ;文本
$sRer = StringRegExpReplace($sText, '.{3}(?=[\r])|.{3}$', '')
FileWrite('NewText.txt', $sRer) ;新文本 谢谢了!!! 回复 4# 水木子
大哥,我试了你代码,最后是没有覆盖式的写入,偶试着自己写了个,可不知道错在哪里,帮看下好吗?
#Include <File.au3>
$file = "C:\script\test.txt"
$file1 = FileOpen("C:\script\test.txt", 0)
$1 = "1"
$2 = _FileCountLines($file)
For $number = 1 To $2
$line = FileReadLine($file1,$number)
If @error = -1 Then ExitLoop
_FileWriteToLine($file, $number, StringTrimRight($line, 3), 1)
$1+=1
Next
FileClose($file1)
先删除原文件,再写,就你要求的“覆盖式的写入”嘛
$sText = FileRead('Text.txt') ;文本
$sRer = StringRegExpReplace($sText, '.{3}(?=[\r])|.{3}$', '')
FileDelete('Text.txt')
FileWrite('Text.txt', $sRer) ;新文本
不过,我记得好象au3里,定义一个变量串$str, 这个变量有最大字节数限制的。不是2^32就是2^16 回复 8# happytc
伙计,测试一下,百K的东东没有问题,帮我 看看我的代码有什么问题? 回复 9# 502762378
没啥问题呀,只是有画蛇添足的多余的东西而已
#Include <File.au3>
$file = "C:\script\test.txt"
If FileExists($file) Then
For $number = 1 To _FileCountLines($file)
$line = FileReadLine($file, $number)
_FileWriteToLine($file, $number, StringTrimRight($line, 3), 1)
Next
EndIf
覆盖式写入?有这么麻烦吗?
去看看这个函数吧!FileOpen 本帖最后由 netegg 于 2011-2-28 22:44 编辑
_filereadtoarray($file, $aA)
_arraydelete($aA, 0)
_arraytrim($aA, 3, 1)
_filewritefromarray($file, $aA) 回复 9# 502762378
难道不会变通一下?
$sText = FileRead('Text.txt') ;文本
$sRer = StringRegExpReplace($sText, '.{3}(?=[\r])|.{3}$', '')
$hFile=FileOpen('Text.txt',2)
FileWrite($hFile, $sRer) ;新文本
Fileclose($hFile)
本帖最后由 502762378 于 2011-3-1 03:05 编辑
回复 13# 3mile
{:face (245):} 10楼的是一种好方法嘛
页:
[1]
2