修改文本问题。。。在线等····
本帖最后由 skywhy 于 2010-1-27 21:30 编辑我有一个txt的文件
文件名:a.txt
文件的内容如下:
a,1,3213,6465
b,2,6546,3464
c,3,4664,3216
d,4,4543,3154
我有个输入框根据a,b,c,d这几个是值查找来修改后面的值。
比如说:我要修改b行的6546改成6666,其他的内容都不要修改。
麻烦高手解答···· 一个思路:读取整个文件的内容,使用正则StringRegExpReplace替换之,替换文件内容保存
第二个思路:循环读取文件每一行,每行检测直到目标行修改之,把每行内容按顺序合并,写文件保存 $list = FileOpen("D:\a.txt",02)
If $list = -1 Then
MsgBox(0, "错误", "不能打开文件.")
Exit
EndIf
$linehao = 0
While 1
$linehao = $linehao + 1
$line = FileReadLine($list)
If @error = -1 Then ExitLoop
$linet=StringSplit($line,",")
if $jihao = $linet and $cardid = $linet Then
$linetiem = StringSplit($linet,":")
if $linetiem = 0 then
MsgBox(0, "错误", "不能偷取该好友果实!")
Else
$linem = $linet - $m
$linetiemt =$linetiem - $time
_FileWriteToLine("D:\a.txt", $linehao, $linet&","&$linet&","&$linet&","&$linem&","&$linetiemt&":"&$linetiem, 1)
EndIf
Else
MsgBox(0,"错误","qq好友对比失败。")
EndIf
Wend
这是我这段代码 运行后是a.txt里面的全不在了 ··· 本帖最后由 llztt 于 2010-1-27 20:23 编辑
代码中$m $time干嘛的,前面声明了?
不能偷取该好友果实
哈哈,帅啊。。做好了共享下啊,我要偷偷偷 前面定义了的,这个还在测试中。写完了给你。这两个相当于a.txt中的a和1
要查询了这想个变量相等才能够修改后面的值。
运行后a.txt中的内容全部都没有了 问题在这里FileOpen("c:\a.txt",2)
一运行,就清空文件内容了 那应该用什么方式打开??? 知道了 查了帮助文件谢谢你了
不好意思记错了
基础不过关啊 继续测试 本帖最后由 llztt 于 2010-1-27 21:33 编辑
FILEOPEN
0 = 只读模式(默认)
1 = 写入模式(附加数据到文件尾部)
2 = 写入模式(先删除之前的内容)
如果你非要一边读一边写的话,还是用只读模式打开a.txt同时写数据到b.txt,然后关闭a.txt文件句柄,再让b.txt替换a.txt
如果替换就一行的话,也可以只读打开a.txt,循环检测每行找到目标行,记住行号和行内容,跳出循环,关闭文件句柄,然后filewriteline之
因为你的文件内容很有规律,建议你用正则,读取一次文件,修改、替换、保存,简洁高效。。。 麻烦你了····一言点醒·····
页:
[1]