1007236046 发表于 2013-8-29 19:20:20

求带{}配置文件的查询和修改[已解决]

本帖最后由 1007236046 于 2013-9-1 20:05 编辑

{
   "browser": {
      "clear_lso_data_enabled": true,
      "pepper_flash_settings_enabled": true,
      "window_placement": {
         "bottom": 560,
         "left": 10,
         "maximized": false,
         "right": 790,
         "top": 10,
         "work_area_bottom": 570,
         "work_area_left": 0,
         "work_area_right": 800,
         "work_area_top": 0
      }
   },
   "cloud_print": {
      "email": ""
   },
   "sync": {
      "suppress_start": true
   }
}上面是配置文件里的内容,怎么修改cloud_print后面的{}里email的值呢;有这方面的udf吗?

user3000 发表于 2013-8-29 20:10:05

回复 1# 1007236046
你自己做一个,就有UDF了.

这属于文本与字符串的处理问题.
如果    "email": ""    这行值是固定的,直接 StringReplace 吧.
当然你还可以学一学正则.

1007236046 发表于 2013-8-30 11:06:27

回复 2# user3000


    udf我肯定是写不出的啊
正则也不会,不过这个用正则也很难的吧,比如修改“browser“下”window_placement"下的“bottom”值为100,怎么用正则写啊

afan 发表于 2013-8-30 12:41:35

Local $Str = _
                '{' & @CRLF & _
                '   "browser": {' & @CRLF & _
                '      "clear_lso_data_enabled": true,' & @CRLF & _
                '      "pepper_flash_settings_enabled": true,' & @CRLF & _
                '      "window_placement": {' & @CRLF & _
                '         "bottom": 560,' & @CRLF & _
                '         "left": 10,' & @CRLF & _
                '         "maximized": false,' & @CRLF & _
                '         "right": 790,' & @CRLF & _
                '         "top": 10,' & @CRLF & _
                '         "work_area_bottom": 570,' & @CRLF & _
                '         "work_area_left": 0,' & @CRLF & _
                '         "work_area_right": 800,' & @CRLF & _
                '         "work_area_top": 0' & @CRLF & _
                '      }' & @CRLF & _
                '   },' & @CRLF & _
                '   "cloud_print": {' & @CRLF & _
                '      "email": ""' & @CRLF & _
                '   },' & @CRLF & _
                '   "sync": {' & @CRLF & _
                '      "suppress_start": true' & @CRLF & _
                '   }' & @CRLF & _
                '}'
MsgBox(0, '原字符串', $Str)
MsgBox(0, '替换结果', _Replace('window_placement', 'bottom', 100))
MsgBox(0, '替换结果', _Replace('cloud_print', 'email', 'av@av.com'))

Func _Replace($s1, $s2, $sR = '')
        Return StringRegExpReplace($str, '(?si)("' & $s1 & '"[^}]*?"' & $s2 & '":\h*"?)[^,"]*', '${1}' & $sR)
EndFunc;==>_Replace

1007236046 发表于 2013-8-30 17:53:47

版主的回答可以解决我的问题了,我就替换2个字符串,不过还是希望有人能写出udf,这样又多了种数据存储方式,无形中也算加密了吧
页: [1]
查看完整版本: 求带{}配置文件的查询和修改[已解决]