millisys Posted May 7, 2011 Posted May 7, 2011 Hello, I am trying to write a script that will retrieve lines from a text file so that I may select one, and then remove that item from the text list. If there were originally 20 lines in the text file, there would then be only 19, and so forth. What I have so far is really clunky and does not remove the line. I am hoping there is something more elegant that this: #include <Array.au3> $foldernames = fileread("c:\foldernames.txt") $array = StringSplit($foldernames, @lf) _ArrayDisplay($array) $label = clipget() $label = stringtrimleft($label, StringInStr($label, '|')) $text = StringRegExpReplace($foldernames, $label,"") Thank you for your help
stampy Posted May 8, 2011 Posted May 8, 2011 To read the file to an array you can use _FileReadToArray. Once the lines are in the array you can edit/delete as needed. Then you can write back to the file with _FileWriteFromArray.
wakillon Posted May 8, 2011 Posted May 8, 2011 Try this #Include <Array.au3> #Include <File.au3> Global $_Array $_ItemToRemove = 'Item' $_TxtFilePath = 'c:\foldernames.txt' _FileReadToArray ( $_TxtFilePath, $_Array ) $_Array = _DeleteArrayElementWithStringInstr ( $_Array, $_ItemToRemove ) _FileWriteFromArray ( $_TxtFilePath, $_Array, 1 ) ShellExecute ( $_TxtFilePath ) Func _DeleteArrayElementWithStringInstr ( $_Array, $_String ) Local $_Item For $_Element In $_Array If StringInStr ( $_Element, $_String ) <> 0 Then _ArrayDelete ( $_Array, $_Item ) Else $_Item+=1 EndIf Next Return ( $_Array ) EndFunc ;==> _DeleteArrayElementWithStringInstr ( ) AutoIt 3.3.14.2 X86 - SciTE 3.6.0 - WIN 8.1 X64 - Other Example Scripts
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