Centrally Posted February 3, 2013 Share Posted February 3, 2013 I want to delete single line of text from a .txt file and cannot get it to work. First I use $lineDelete = FileOpen("test.txt", 1) And than _FileWriteToLine($lineDelete, 2,"", 1) This does nothing, and if I change 2nd flag in FileOpen to 2 than it erase entire text from file. Any ideas or suggestions? Link to comment Share on other sites More sharing options...
guinness Posted February 3, 2013 Share Posted February 3, 2013 Did you search? I did >> Centrally 1 UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Developers Jos Posted February 3, 2013 Developers Share Posted February 3, 2013 (edited) Use the filename in _FileWriteToLine() and forget the Fileopen() as it serves no purpose here other than keeping the file locked. Edited February 3, 2013 by Jos updated explanation SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
Centrally Posted February 3, 2013 Author Share Posted February 3, 2013 Did you search? I did >> Did you even read my question you would see that I already found topic you are refering to and that my code is exactly same like solution one. Link to comment Share on other sites More sharing options...
guinness Posted February 3, 2013 Share Posted February 3, 2013 Did you even read my question you would see that I already found topic you are refering to and that my code is exactly same like solution one.I did, no mention of that topic I'm afraid nor of searching. Did you read Jos' response? UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Centrally Posted February 3, 2013 Author Share Posted February 3, 2013 I did, no mention of that topic I'm afraid nor of searching. Did you read Jos' response? Yes and using it was he posted entire text get deleted. _FileWriteToLine("test.txt", 2,"", 1) And I always try to find solutions online before opening topics or posting questions. Any more ideas why my entire file get deleted instead of just line number 2? Link to comment Share on other sites More sharing options...
Developers Jos Posted February 3, 2013 Developers Share Posted February 3, 2013 Yes and using it was he posted entire text get deleted. _FileWriteToLine("test.txt", 2,"", 1) And I always try to find solutions online before opening topics or posting questions. Any more ideas why my entire file get deleted instead of just line number 2? This statement will only delete line 2 ... not the whole file! You must have done something wrong somewhere. Jos Centrally 1 SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
Developers Jos Posted February 3, 2013 Developers Share Posted February 3, 2013 run this for testing: #include<file.au3> ; fill file $Filename = "testfile.txt" $hF = FileOpen($Filename,2) FileWriteLine($hF,"line 1") FileWriteLine($hF,"line 2") FileWriteLine($hF,"line 3") FileWriteLine($hF,"line 4") FileWriteLine($hF,"line 5") FileClose($hF) ;remove line 2 _FileWriteToLine($Filename, 2,"", 1) ShellExecute($Filename) Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
Centrally Posted February 3, 2013 Author Share Posted February 3, 2013 run this for testing: #include<file.au3> ; fill file $Filename = "testfile.txt" $hF = FileOpen($Filename,2) FileWriteLine($hF,"line 1") FileWriteLine($hF,"line 2") FileWriteLine($hF,"line 3") FileWriteLine($hF,"line 4") FileWriteLine($hF,"line 5") FileClose($hF) ;remove line 2 _FileWriteToLine($Filename, 2,"", 1) ShellExecute($Filename) Jos Well I manage to make it work in single form of what you posted but in my code which is quite big I couldn't get it to work via function. Because I had to delete 2nd line on multiple occasions during script conditions. However if I use this with function it will delete entire text which is really strange, and if I use it directly it's works. Anyway thanks for your quick responses and ideas. Link to comment Share on other sites More sharing options...
Developers Jos Posted February 3, 2013 Developers Share Posted February 3, 2013 However if I use this with function it will delete entire text which is really strange, and if I use it directly it's works.Don't think so. SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
Centrally Posted February 3, 2013 Author Share Posted February 3, 2013 (edited) Don't think so. Well I know that error must lie somwhere inside my code but it's less effort just doing hacky way since it would take unnecessary much amount of time to debug it.(~7k lines of code) Edited February 3, 2013 by Centrally Link to comment Share on other sites More sharing options...
BrewManNH Posted February 3, 2013 Share Posted February 3, 2013 (edited) Is there such a thing as unnecessary debugging time? EDIT: I meant unecessary debugging time when there's an error in the script causing unwanted actions being performed. In case that wasn't clear what I wrote. Edited February 3, 2013 by BrewManNH If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
JailDoctor Posted May 7, 2013 Share Posted May 7, 2013 I get an error with this method: Here is my code: #include <File.au3> _FileWriteToLine("C:\temp\" & "Test.txt",1,"",1) ; overwrite the first line with nothing Here is my original Test.txt data: 1 Line to delete 2 Do not delete 3 Do not delete 3 Do not delete 4 Do not delete 5 Do not delete 6 Do not delete Obviously I just want to delete the first line, but the code deletes the first two lines. See output file data: 3 Do not delete 3 Do not delete 4 Do not delete 5 Do not delete 6 Do not delete Link to comment Share on other sites More sharing options...
Developers Jos Posted May 7, 2013 Developers Share Posted May 7, 2013 Works fine here with your input lines and script. Anything special with the input file like CR/LF/CRLF mixing or something? Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
jdelaney Posted May 7, 2013 Share Posted May 7, 2013 (edited) Interesting...this works: #include <File.au3> $sFile = @DesktopDir & "/test.txt" _FileCreate($sFile) $sFileText ="1 Line to delete" & @CRLF & _ "2 Do not delete" & @CRLF & _ "3 Do not delete" & @CRLF & _ "3 Do not delete" & @CRLF & _ "4 Do not delete" & @CRLF & _ "5 Do not delete" & @CRLF & _ "6 Do not delete" FileWrite($sFile, $sFileText) _FileWriteToLine($sFile,1,"",1) ConsoleWrite(FileRead($sFile) & @CRLF) 2 Do not delete 3 Do not delete 3 Do not delete 4 Do not delete 5 Do not delete 6 Do not delete mixing cr/lf's does not: #include <File.au3> $sFile = @DesktopDir & "/test.txt" _FileCreate($sFile) $sFileText ="1 Line to delete" & @CR & _ "2 Do not delete" & @LF & _ "3 Do not delete" & @CRLF & _ "3 Do not delete" & @CRLF & _ "4 Do not delete" & @CRLF & _ "5 Do not delete" & @CRLF & _ "6 Do not delete" FileWrite($sFile, $sFileText) _FileWriteToLine($sFile,1,"",1) ConsoleWrite(FileRead($sFile) & @CRLF) 3 Do not delete 3 Do not delete 4 Do not delete 5 Do not delete 6 Do not delete fixed: #include <File.au3> $sFile = @DesktopDir & "/test.txt" _FileCreate($sFile) $sFileText ="1 Line to delete" & @CR & _ "2 Do not delete" & @LF & _ "3 Do not delete" & @CRLF & _ "3 Do not delete" & @CRLF & _ "4 Do not delete" & @CRLF & _ "5 Do not delete" & @CRLF & _ "6 Do not delete" $sFileText = StringRegExpReplace($sFileText, "[\r\n]+", @CRLF) FileWrite($sFile, $sFileText) _FileWriteToLine($sFile,1,"",1) ConsoleWrite(FileRead($sFile) & @CRLF) 2 Do not delete 3 Do not delete 3 Do not delete 4 Do not delete 5 Do not delete 6 Do not delete "Issue" is with this line in _fileWriteToLine: Local $aSplit_File = StringSplit(StringStripCR($sRead_File), @LF) If using @cr, those "lines" are killed Edited May 7, 2013 by jdelaney IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window. Link to comment Share on other sites More sharing options...
Developers Jos Posted May 7, 2013 Developers Share Posted May 7, 2013 Isn't that surprising when looking at the UDF code where it is assumes that there is always a LF at the end of each records: Local $aSplit_File = StringSplit(StringStripCR($sRead_File), @LF) Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
JailDoctor Posted May 7, 2013 Share Posted May 7, 2013 But my lines end with @CRLF Jos, I'm confused now . How do I fix this. Should I open the UDF and change the LF to CRLF? Link to comment Share on other sites More sharing options...
jdelaney Posted May 7, 2013 Share Posted May 7, 2013 (edited) This works well, and preserves blank lines: #include <File.au3> $sFile = @DesktopDir & "/test.txt" _FileCreate($sFile) $sFileText ="1 Line to delete" & @CR & @LF & @CR & @CR & @LF & _ "2 Do not delete" & @LF & @CRLF & _ "3 Do not delete" & @CRLF & @CRLF & _ "3 Do not delete" & @CRLF & _ "4 Do not delete" & @CRLF & _ "5 Do not delete" & @CRLF & _ "6 Do not delete" $sFileText = StringRegExpReplace($sFileText, "\r+?[\n+?]?", @CRLF) FileWrite($sFile, $sFileText) _FileWriteToLine($sFile,1,"",1) ConsoleWrite(FileRead($sFile) & @CRLF) Edited May 7, 2013 by jdelaney IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window. Link to comment Share on other sites More sharing options...
Developers Jos Posted May 7, 2013 Developers Share Posted May 7, 2013 But my lines end with @CRLF When that is the case it should work fine.How do I fix this.Should I open the UDF and change the LF to CRLF?Nope, there must be something wrong with the file. ZIP it and attach it to a post or PM so I can have a look.Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
JailDoctor Posted May 7, 2013 Share Posted May 7, 2013 Its a really small file.Test.txt 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