; @Musashi : 2019-09-11 / 10:50 #include #include #include #include Global $sReplaceFile, $sFileRead, $sReplaceFileName, $sReplaceFileExt, $sReplaceFileNew Global $aReplaceArr, $sFilePathReplaceArr Global $iError, $iReplacements, $iFileEncoding, $bValueChanged = False ; [optional] : Globals are for time measurement only : Global $hTimer, $fTimerDiff, $iTimerHours = 0, $iTimerMins = 0, $iTimerSecs = 0, $iTimerMilliSecs = 0 $sReplaceFileName = "Testtext01-EN" $sReplaceFileExt = ".txt" $sReplaceFile = @ScriptDir & "\" & $sReplaceFileName & $sReplaceFileExt $sReplaceFileNew = @ScriptDir & "\" & $sReplaceFileName & "_New" & $sReplaceFileExt If Not FileExists($sReplaceFile) Then ConsoleWrite('! ---> File : ' & $sReplaceFile & ' not found -> EXIT' & @CRLF) Exit EndIf ; Array with ' Search & Replace' values : ; Delimiter = #|# ; Row 0 = search value ; Row 1 = replace value ; Row 2 = if semicolon (;) -> do not replace element (= commented out) $sFilePathReplaceArr = @ScriptDir & "\ReplaceArr01-EN.txt" _FileReadToArray($sFilePathReplaceArr, $aReplaceArr, BitOR($FRTA_COUNT, $FRTA_ENTIRESPLIT) , "#|#") _ArrayDisplay($aReplaceArr, "Replace Array") ; *** for display only ; [optional] : start timer $hTimer = TimerInit() $sFileRead = FileRead($sReplaceFile) If @error Then ConsoleWrite('! ---> File : ' & $sReplaceFile & ' not open -> EXIT' & @CRLF) Exit EndIf For $i = 1 To $aReplaceArr[0][0] ; If a semicolon occurs in column 2 ==> do not modify If Not StringInStr($aReplaceArr[$i][2], ';') Then ConsoleWrite('+ ===> Row <' & $i & '> : Replace <' & $aReplaceArr[$i][0] & '> with <' & $aReplaceArr[$i][1] & '>' & @CRLF) $sFileRead = StringRegExpReplace($sFileRead, '(?i)' & $aReplaceArr[$i][0], $aReplaceArr[$i][1]) $iError = @error $iReplacements = @extended If Not $iError Then $bValueChanged = True ConsoleWrite('< -----> <' & $aReplaceArr[$i][0] & '> ' & $iReplacements & ' times replaced with <' & $aReplaceArr[$i][1] & '>' & @CRLF) EndIf Else ConsoleWrite('> ===> Row <' & $i & '> commented out !' & @CRLF) EndIf Next If $bValueChanged Then Local $iFileEncoding = FileGetEncoding($sReplaceFile) Local $hFileOpen = FileOpen($sReplaceFileNew, BitOR($iFileEncoding, $FO_OVERWRITE)) FileWrite($hFileOpen, $sFileRead) FileClose($hFileOpen) EndIf ; [optional] : end timer $fTimerDiff = TimerDiff($hTimer) $iTimerMilliSecs = Int(Mod($fTimerDiff, 1000)) _TicksToTime(Int($fTimerDiff), $iTimerHours, $iTimerMins, $iTimerSecs) $sString = StringFormat("%02d:%02d:%02d.%03d (Std:Min:Sek.Millisek)", $iTimerHours, $iTimerMins, $iTimerSecs, $iTimerMilliSecs) ConsoleWrite("Duration = " & $sString & @CRLF)