找回密码
 加入
搜索
查看: 2591|回复: 12

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

  [复制链接]
发表于 2017-12-11 17:14:21 | 显示全部楼层 |阅读模式
本帖最后由 cool8 于 2017-12-21 19:07 编辑

INi文件内容  
[User]
Duser=feng.2

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

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

希望告知
发表于 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)[0],$str1)
MsgBox(0,"忧伤的注释",$str2)
 楼主| 发表于 2017-12-13 13:40:22 | 显示全部楼层
回复 2# yamakawa


    变量知道   替换写入到文本还是没搞懂   ......
发表于 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)
发表于 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)[0],$ReplaceString)

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

FileClose($file)


   
 楼主| 发表于 2017-12-14 01:00:09 | 显示全部楼层
回复 4# afan


    谢谢
 楼主| 发表于 2017-12-14 01:00:16 | 显示全部楼层
回复 5# yamakawa


    谢谢
发表于 2017-12-16 20:01:38 | 显示全部楼层
解决了麽? 问题~
发表于 2017-12-18 13:07:32 | 显示全部楼层
回复 6# cool8


    问题解决了就修改一下标题
 楼主| 发表于 2017-12-20 21:35:43 | 显示全部楼层
回复 5# yamakawa


    文件替换后  就变空白了 都没了
 楼主| 发表于 2017-12-20 21:37:28 | 显示全部楼层
回复 4# 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)
 楼主| 发表于 2017-12-21 19:06:37 | 显示全部楼层
回复 12# afan


    非常感谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 21:54 , Processed in 0.111558 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表