EmptySpace Posted February 27, 2013 Posted February 27, 2013 I never worked with arrays so I need some help. I need to read whole .txt file exmaple: text2:text13 text2:text14 tex2t:text15 tex2t:text16 text2:text17 text2:text18 I mean I need to read every line of file and split text into arrays. So I could easy get whole only text2 list or text13/14/15... Ahh, cant explain in english.. What I tried: include Global $pw = FileOpen("location",0) For $i = 1 To 1 Step -1 $hash = FileReadline($pw) $pw = StringSplit($hash,":") _ArrayDisplay($pw) Next So it splits first string. After it splited then I want script to write it in new .txt file. Repeat it 6000 times.
FireFox Posted February 27, 2013 Posted February 27, 2013 Hi, There is a function for this : _FileReadToArray Br, FireFox.
lavascript Posted February 27, 2013 Posted February 27, 2013 (edited) I'm not fully understanding what you're trying to do, but if you need to read a file and have each line from the file as an array element, try: #include <File.au3> _FileReadToArray("location", ByRef $hash) Edited February 27, 2013 by lavascript
PhoenixXL Posted February 27, 2013 Posted February 27, 2013 Check this out#include <Array.au3> $String = _ "text2:text13" & @CRLF & _ "text2:text14" & @CRLF & _ "tex2t:text15" & @CRLF & _ "tex2t:text16" & @CRLF & _ "text2:text17" & @CRLF & _ "text2:text18" Local $aRet = StringRegExp( $String, "[^:\v]+", 3 ) For $i = 0 To UBound($aRet ) -1 Step 2 ConsoleWrite( StringFormat( "First:%s\tSecond:%s\n", $aRet[$i], $aRet[$i+1] ) ) Next My code: PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners. MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.
BrewManNH Posted February 27, 2013 Posted February 27, 2013 (edited) Or, using native functions, you can do it this way. #include <FileConstants.au3> Global $pw = FileOpen("location") Global $hOutPutFile = FileOpen("newfile.txt", $FO_OVERWRITE) While 1 $hash = FileReadLine($pw) If @error = $EOF Then ExitLoop $aSplit = StringSplit($hash, ":") If $aSplit[0] > 1 Then For $i = 1 To $aSplit[0] FileWriteLine($hOutPutFile, $aSplit[$i]) Next EndIf WEnd FileClose($pw) FileClose($hOutPutFile) Your main problem was because you reused the variable $pw from the FileOpen line in your StringSplit line, so it wouldn't read the next line of the file after that. Edited February 27, 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
EmptySpace Posted February 27, 2013 Author Posted February 27, 2013 Thanks for help guys. Every code works fine. BrewManNH your script looks best but also I need to put strings in different output txts
FireFox Posted February 27, 2013 Posted February 27, 2013 (edited) I'm not fully understanding what you're trying to do, but if you need to read a file and have each line from the file as an array element, try: #include <File.au3> _FileReadToArray("location", ByRef $hash) No. This is the correct version : #include <File.au3> #include <Array.au3> Local $hash _FileReadToArray("toto.txt", $hash) _ArrayDisplay($hash) I let you see why you can use the keyword ByRef here thanks to the helpfile. Edited February 27, 2013 by FireFox
EmptySpace Posted February 27, 2013 Author Posted February 27, 2013 (edited) Cant understand how it works. FileWriteLine($hOutPutFile, $aSplit[$i]) If I want only write second string? $aSplit[$i][2] or something? Edited February 27, 2013 by EdgarT
BrewManNH Posted February 27, 2013 Posted February 27, 2013 (edited) You'd need to use $aSplit[2] for the third item in the array. It's a 1D array so your line would cause an error. The first element in the array is the count. Edited February 27, 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
lavascript Posted February 27, 2013 Posted February 27, 2013 No. This is the correct version : #include <File.au3> #include <Array.au3> Local $hash _FileReadToArray("toto.txt", $hash) _ArrayDisplay($hash) I let you see why you can use the keyword ByRef here thanks to the helpfile. Sorry... I was just copying from the Help file, I've never actually used ByRef. But thanks! Now I see what it's for!
guinness Posted February 27, 2013 Posted February 27, 2013 ByRef is fundamentally important to coding. 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
FireFox Posted February 27, 2013 Posted February 27, 2013 Plus, you don't have to apologize, you did nothing wrong. We are all here to help each other in AutoIt scripting.
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