cool8 发表于 2017-12-11 17:14:21

求助读取INI文件内容 替换到其他文本的指定行 已解决

本帖最后由 cool8 于 2017-12-21 19:07 编辑

INi文件内容

Duser=feng.2

文本文件内容
{
        "user" : "qwe.1",
        "pass" : "x",
}

怎么才能将读取的duser数值直接替换到文本文件中   用feng.2替换qwe.1

希望告知

yamakawa 发表于 2017-12-12 22:00:08

;假设你已读取ini文件,保存为$str1变量
$str1 = 'feng.2'
;假设你已读取文本信息,保存为$str2变量
$str2 =' { ' & @CRLF & _
      '"user" : "qwe.1",' & @CRLF & _
      '"pass" : "x",' & @CRLF & _
'}'

;突然不知道正则替换该怎么写。。。郁闷,,只能绕个弯了。。。。。。
$str2 = StringRegExpReplace($str2,StringRegExp($str2,'user\V+"(\V+)"',3),$str1)
MsgBox(0,"忧伤的注释",$str2)

cool8 发表于 2017-12-13 13:40:22

回复 2# yamakawa


    变量知道   替换写入到文本还是没搞懂   ......

afan 发表于 2017-12-13 14:11:56

Local $sSource = _
                '{' & @CRLF & _
                '      "user" : "qwe.1",' & @CRLF & _
                '      "pass" : "x",' & @CRLF & _
                '}'
;~MsgBox(0, '源字符串', $sSource)
Local $sRe = 'feng.2'
Local $sSRERe = StringRegExpReplace($sSource, '("user[" :]+)[^"]+', '${1}' & $sRe)
MsgBox(0, '替换结果', $sSRERe)

yamakawa 发表于 2017-12-13 21:30:17

回复 3# cool8


Local $file = FileOpen("目标文件",2)
Local $SourceString = FileRead($file)
Local $ReplaceString = 'feng.2'

Local $OutString = StringRegExpReplace($SourceString, '("user[" :]+)[^"]+', '${1}' & $ReplaceString)
;~ Local $OutString = StringRegExpReplace($SourceString,StringRegExp($SourceString,'user\V+"(\V+)"',3),$ReplaceString)

If FileWrite($file,$OutString) Then
        MsgBox(0,"","替换成功")
Else
        MsgBox(0,"","替换失败")
EndIf

FileClose($file)


   

cool8 发表于 2017-12-14 01:00:09

回复 4# afan


    谢谢

cool8 发表于 2017-12-14 01:00:16

回复 5# yamakawa


    谢谢

dncsk 发表于 2017-12-16 20:01:38

解决了麽? 问题~

austere 发表于 2017-12-18 13:07:32

回复 6# cool8


    问题解决了就修改一下标题

cool8 发表于 2017-12-20 21:35:43

回复 5# yamakawa


    文件替换后就变空白了 都没了

cool8 发表于 2017-12-20 21:37:28

回复 4# afan


怎么写入到文本文件中啊?

afan 发表于 2017-12-20 22:01:14

回复 11# cool8

Local $sSource = _
                '{' & @CRLF & _
                '      "user" : "qwe.1",' & @CRLF & _
                '      "pass" : "x",' & @CRLF & _
                '}'
;~MsgBox(0, '源字符串', $sSource)
Local $sRe = 'feng.2'
Local $sSRERe = StringRegExpReplace($sSource, '("user[" :]+)[^"]+', '${1}' & $sRe)
MsgBox(0, '替换结果', $sSRERe)
FileWrite('文本文件.txt', $sSRERe)

cool8 发表于 2017-12-21 19:06:37

回复 12# afan


    非常感谢
页: [1]
查看完整版本: 求助读取INI文件内容 替换到其他文本的指定行 已解决