DmitriyM Posted November 30, 2022 Share Posted November 30, 2022 In the second line I change the fifth character. In file 1.txt aaaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaa $hWrite = FileOpen("1.txt", 512); $sLine20 = FileReadLine($hWrite, 2); $sText = StringReplace($sLine20, 5, "W") _FileWriteToLine('1.txt', 2, $sText, 1); FileClose($hWrite) Exit Link to comment Share on other sites More sharing options...
Zedna Posted November 30, 2022 Share Posted November 30, 2022 (edited) Create copy of _FileWriteToLine() from "C:\Program Files (x86)\AutoIt3\Include\File.au3" and modify FileOpen(...,2) to FileOpen(...,2+512) $FO_OVERWRITE (2) + $FO_ANSI (512) expandcollapse popup#include <File.au3> $hWrite = FileOpen("1.txt", 512); $sLine20 = FileReadLine($hWrite, 2); $sText = StringReplace($sLine20, 5, "W") _FileWriteToLineAnsi('1.txt', 2, $sText, 1); FileClose($hWrite) Func _FileWriteToLineAnsi($sFile, $iLine, $sText, $fOverWrite = 0) If $iLine <= 0 Then Return SetError(4, 0, 0) If Not IsString($sText) Then Return SetError(6, 0, 0) If $fOverWrite <> 0 And $fOverWrite <> 1 Then Return SetError(5, 0, 0) If Not FileExists($sFile) Then Return SetError(2, 0, 0) Local $filtxt = FileRead($sFile, FileGetSize($sFile)) $filtxt = StringSplit($filtxt, @CRLF, 1) If UBound($filtxt, 1) < $iLine Then Return SetError(1, 0, 0) Local $fil = FileOpen($sFile, 2+512) ; --> modified by Zedna: $FO_OVERWRITE (2) + $FO_ANSI (512) If $fil = -1 Then Return SetError(3, 0, 0) For $i = 1 To UBound($filtxt) - 1 If $i = $iLine Then If $fOverWrite = 1 Then If $sText <> '' Then FileWrite($fil, $sText & @CRLF) Else FileWrite($fil, $sText) EndIf EndIf If $fOverWrite = 0 Then FileWrite($fil, $sText & @CRLF) FileWrite($fil, $filtxt[$i] & @CRLF) EndIf ElseIf $i < UBound($filtxt, 1) - 1 Then FileWrite($fil, $filtxt[$i] & @CRLF) ElseIf $i = UBound($filtxt, 1) - 1 Then FileWrite($fil, $filtxt[$i]) EndIf Next FileClose($fil) Return 1 EndFunc ;==>_FileWriteToLineAnsi Note: this my function is copy from old AutoIt 3.2.12.1 which i my main version! So make your own modified copy from your actual version of AutoIt ... Edited November 30, 2022 by Zedna Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
DmitriyM Posted November 30, 2022 Author Share Posted November 30, 2022 Zedna,thanks for the answer. $hWrite = FileOpen("firefox.exe", 512); $sLine20 = FileReadLine($hWrite, 704); line 704, character 104 $sText = StringReplace($sLine20, 104, "8") _FileWriteToLine('firefox.exe', 704, $sText, 1); FileClose($hWrite) For some reason the file flies. firefox.zip Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now