Jump to content
Sign in to follow this  
Centrally

Deleting single line of txt file

Recommended Posts

Centrally

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?

Share this post


Link to post
Share on other sites
guinness

Did you search? I did >>

  • Like 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 parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
Jos

Use the filename in _FileWriteToLine() and forget the Fileopen() as it serves no purpose here other than keeping the file locked.

Edited by Jos
updated explanation

Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites
Centrally

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.

Share this post


Link to post
Share on other sites
guinness

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 parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites
Centrally

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?

Share this post


Link to post
Share on other sites
Jos

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

  • Like 1

Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites
Jos

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


Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites
Centrally

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.

Share this post


Link to post
Share on other sites
Jos

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. ;)

Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites
Centrally

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 by Centrally

Share this post


Link to post
Share on other sites
BrewManNH

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 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 Gude
How 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

Share this post


Link to post
Share on other sites
JailDoctor

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

Share this post


Link to post
Share on other sites
Jos

Works fine here with your input lines and script.

Anything special with the input file like CR/LF/CRLF mixing or something?

Jos


Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites
jdelaney

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 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.

Share this post


Link to post
Share on other sites
Jos

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 :)


Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites
JailDoctor

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?

Share this post


Link to post
Share on other sites
jdelaney

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 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.

Share this post


Link to post
Share on other sites
Jos

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


Visit the SciTE4AutoIt3 Download page for the latest versions  - Beta files                                How to post scriptsource        Forum Rules
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

Share this post


Link to post
Share on other sites
JailDoctor

Its a really small file.

Test.txt

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×