zzyzzyboy 发表于 2013-5-7 20:19:25

请问修改文本文件的问题

文本文件内容如下:
身份证号:12345
姓名:12345
年龄:100
性别:男

我想在第行加个政治面貌
还想更改第三行的姓名:54321
请问如何实现,谢谢各位高手

afan 发表于 2013-5-8 15:54:02

猜测第行是指第2行,即姓名上一行Local $sZZMM = '神仙', $sReName = '54321'
Local $Str = _
                '身份证号:12345' & @CRLF & _
                '姓名:12345' & @CRLF & _
                '年龄:100' & @CRLF & _
                '性别:男' & @CRLF
MsgBox(0, '原字符串', $Str)
Local $sRE = StringRegExpReplace($str, '(姓名:)\V+', '政治面貌:' & $sZZMM & @CRLF & '${1}' & $sReName)
MsgBox(0, '替换结果', $sRE)

sv0002 发表于 2013-5-9 09:11:54

本帖最后由 sv0002 于 2013-5-9 09:15 编辑

文本文件只有一条记录?还是有多条?
文件不大的话,把文件读到一个数组(按行拆分),修改对应“姓名”行的值,再写回去
#include <array.au3>

Local $aArray = StringSplit(FileRead("test.txt"),'\n')
_ArrayDisplay($aArray)

Local $of=FileOpen("tmp.txt",2)

Local $oldName="12345"
Local $newName="54321"

For $line In $aArray
        If StringStripWS(StringLeft($line)) ="姓名:" & $oldName Then
                FileWriteLine($of,"姓名:" & $newName)
                FileWriteLine($of,"政治面貌:")
        Else
                FileWriteLine($of,$line)
        EndIf
       
Next
FileClose($of)
页: [1]
查看完整版本: 请问修改文本文件的问题