woeiwoei 发表于 2010-5-25 13:48:12

请教正则替换的问题【已解决】

本帖最后由 woeiwoei 于 2010-5-25 14:44 编辑


如何将 ini文件中 【VS】下的 所有数据的前6位替换为 制定字符??
例如 B703A65780C5 替换为 0000005780C5
所有数据哦~大虾们帮帮忙~
:face (31):

dtooboss 发表于 2010-5-25 14:12:45

用不着正则吧StringReplace (FileReadLine('数据.ini',$i), StringLeft(FileReadLine('数据.ini',$i), 6), "000000" )

woeiwoei 发表于 2010-5-25 14:18:14

回复 2# dtooboss


    改不了。。。:face (30):

dtooboss 发表于 2010-5-25 14:29:22

本帖最后由 dtooboss 于 2010-5-25 14:30 编辑

回复dtooboss


    改不了。。。
woeiwoei 发表于 2010-5-25 14:18 http://www.autoitx.com/images/common/back.gif$ini =_IniReadSection( '数据.ini','vs')
For $n = 1 To $ini Step 1
        IniWrite('新数据.ini','vs', StringReplace($ini[$n], StringLeft($ini[$n], 6), "000000" ),$ini[$n])
Next       



Func _IniReadSection($iFile, $Section, $mode = 0); afan 斑竹的udf
      Local $_Section, $s_Sec, $s_zl, $ii = 1, $i
      Local $o_File = FileOpen($iFile, $mode)
      Local $s_File = String(FileRead($o_File))
      FileClose($o_File)
      $_Section = StringRegExpReplace('[' & $Section & ']', '(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)', '\\$1')
      $s_Sec = StringRegExp($s_File & @CRLF & '[', '(?s)(?i)' & $_Section & '(.+?)\r\n\[', 3)
      If @error Then Return SetError(1, 0, 0)
      $s_zl = StringRegExp($s_Sec, '\n\s*([^=;\s][^=\r\n]*)\=(.*)', 3)
      If @error Then Return SetError(2, 0, 0)
      Local $2_array = []
      For $i = 0 To UBound($s_zl) - 1 Step 2
                $2_array[$ii] = $s_zl[$i]
                $2_array[$ii] = $s_zl[$i + 1]
                $ii += 1
      Next
      Return $2_array
EndFunc   ;==>_IniReadSection

lanfengc 发表于 2010-5-25 14:40:07

#Include <File.au3>
$FirstFile="data.ini"
$ResultFile="result.ini"
If FileExists($FirstFile) Then FileDelete($FirstFile)
IniWriteSection($FirstFile,"vs","")
If FileExists($ResultFile) Then FileDelete($ResultFile)
IniWriteSection($ResultFile,"vs","")
For $i=2 To 200 Step 1
        _FileWriteToLine($FirstFile,$i,Random(1000000000,9999999999,1),1)
Next
For $j=2 To _FileCountLines($FirstFile) Step 1
        $Line=FileReadLine($FirstFile,$j)
        $Line=StringReplace($Line,StringLeft($Line,6),"000000")
        _FileWriteToLine($ResultFile,$j,$Line,1)
Next
Run("notepad.exe "&$FirstFile)
Run("notepad.exe "&$ResultFile)

woeiwoei 发表于 2010-5-25 14:44:05


dtooboss 发表于 2010-5-25 14:29 http://www.autoitx.com/images/common/back.gif


    这个UDF 太强了。。非常感谢~~

woeiwoei 发表于 2010-5-25 14:44:25


lanfengc 发表于 2010-5-25 14:40 http://www.autoitx.com/images/common/back.gif


    非常感谢、:face (36):
页: [1]
查看完整版本: 请教正则替换的问题【已解决】