xlcwxl 发表于 2010-8-15 12:21:24

[已解决] 如何替换指定行?

本帖最后由 xlcwxl 于 2010-8-15 20:33 编辑

有一文本,其中第1、4、7、11行中的内容是一致,可以通过什么方法把他们分别替换成不一样的内容?

答案在:
11#afan
12# 3mile

感谢afan、3mile的热心帮助

ajian55 发表于 2010-8-15 13:08:07

文本替换,一次替换一个,做四次完成,每次替换的结果不同~

afan 发表于 2010-8-15 13:15:48

ini文件?关键字相同?

xlcwxl 发表于 2010-8-15 15:52:51

回复 3# afan


谢谢afan,文本文件

afan 发表于 2010-8-15 15:53:48

回复 4# xlcwxl


   举例说明吧,范本及期望结果

xlcwxl 发表于 2010-8-15 16:07:03

回复 5# afan

==================================================
编号=03
用户名=张三
密码=123456
==================================================

==================================================
编号=03
用户名=李四
密码=654321
==================================================

==================================================
编号=03
用户名=王五
密码=123
==================================================

想替换成以下格式


编号=03
用户名=张三
密码=123456



编号=03
用户名=李四
密码=654321



编号=03
用户名=王五
密码=123



afan 发表于 2010-8-15 16:12:45

“==================================================”这东西也有?
另外你这个范本只有重复的,没有不重复的? 还要新增加字段名? 字段名数字递加? 太多不解

xlcwxl 发表于 2010-8-15 16:20:09

回复 7# afan

呵呵,基本格式就是这样,没有其它变化,只有重复
至于字段名数字递加这个无所谓,随便叫什么都可以

谢谢afan我想下能否通过其它方法解决。

afan 发表于 2010-8-15 16:24:58

所有的都是 “编号=03”?

xlcwxl 发表于 2010-8-15 16:34:59

本帖最后由 xlcwxl 于 2010-8-15 17:08 编辑

回复 9# afan

不一样,测试的时候搞忘改了{:face (303):}

afan 发表于 2010-8-15 17:21:15

$Str = _
                '==================================================' & @CRLF & _
                '编号=03' & @CRLF & _
                '用户名=张三' & @CRLF & _
                '密码=123456' & @CRLF & _
                '==================================================' & @CRLF & _
                '' & @CRLF & _
                '==================================================' & @CRLF & _
                '编号=03' & @CRLF & _
                '用户名=李四' & @CRLF & _
                '密码=654321' & @CRLF & _
                '==================================================' & @CRLF & _
                '' & @CRLF & _
                '==================================================' & @CRLF & _
                '编号=03' & @CRLF & _
                '用户名=王五' & @CRLF & _
                '密码=123' & @CRLF & _
                '=================================================='
MsgBox(0, '原字符串', $Str)
Local $i = 1, $bj
While 1
        If Not $bj Then
                $Str = StringRegExpReplace($Str, '==+', '[' & StringFormat('%03d', $i) & ']', 1)
                $bj = True
                $i += 1
        Else
                $Str = StringRegExpReplace($Str, '==+(\r\n|$)', '', 1)
                $bj = False
        EndIf
        If @extended = 0 Then ExitLoop
WEnd
MsgBox(0, '替换后', $Str)

3mile 发表于 2010-8-15 20:03:14

$Str = _
                '==================================================' & @CRLF & _
                '编号=03' & @CRLF & _
                '用户名=张三' & @CRLF & _
                '密码=123456' & @CRLF & _
                '==================================================' & @CRLF & _
                '' & @CRLF & _
                '==================================================' & @CRLF & _
                '编号=03' & @CRLF & _
                '用户名=李四' & @CRLF & _
                '密码=654321' & @CRLF & _
                '==================================================' & @CRLF & _
                '' & @CRLF & _
                '==================================================' & @CRLF & _
                '编号=03' & @CRLF & _
                '用户名=王五' & @CRLF & _
                '密码=123' & @CRLF & _
                '=================================================='
MsgBox(0, '原字符串', $Str)
$obj=StringRegExp($str,'(?ms)={2,}(.*?)={2,}',3)
$str=''
For $i=0 To UBound($obj)-1
        $str&='['&StringFormat('%03d',$i+1)&']'&$obj[$i]&@CRLF
Next
MsgBox(0,'替换后',$str)
页: [1]
查看完整版本: [已解决] 如何替换指定行?