Sobiech Posted July 12, 2010 Posted July 12, 2010 (edited) Func _atts() $aAtt[20] $l = 13 For $i = 0 To 8 $aAtt[$i] = StringTrimLeft(FileReadLine($INI, $l), 5) $l = $l + 1 Next $l = 14 For $i = 9 To 19 $aAtt[$i] = StringTrimLeft(FileReadLine($INI, $l), 6) $l = $l + 1 Next EndFunc This will declare Array, but how to use this array in If StringInStr(_GetAtt(), $aAtt) Then HMmm any ideas? Edited July 12, 2010 by Sobiech This world is crazy
Moderators Melba23 Posted July 12, 2010 Moderators Posted July 12, 2010 Sobiech,How about explaining in a bit more detail what on earth you are trying to do because at the moment I have not the slightest idea! For example:If StringInStr(_GetAtt(), $aAtt) Then- What does function _GetAtt return?- Do you want to check if a single element of $aAtt is present or do you need to know if there are several?- The $aAtt array is declared within your _atts function - is it Local to that function or Global in scope?Give us a bit more to work on please! M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
Mison Posted July 12, 2010 Posted July 12, 2010 How about explaining in a bit more detail what on earth you are trying to do Agree. Maybe this could give you something to start with: Local $array1[3] = ["one", "two", "three"] Local $array2[3] = ["1","2","3"] Local $search = "five" SearchArray() Func SearchArray() For $i = 0 To 2 For $j = 0 To 2 If StringInStr($array1[$j],$search) Then MsgBox(0,"",$search&"="&$array2[$j]) Exit EndIf Next Next MsgBox(0,"",$search&"=Not found.") EndFunc Hi ;)
Sobiech Posted July 12, 2010 Author Posted July 12, 2010 (edited) Maybe i show this on code Dim $line[4] $line[0] = IniRead($INI, "SomeSec", "att0", "") $line[1] = IniRead($INI, "SomeSec", "att1", "") $line[2] = IniRead($INI, "SomeSec", "att2", "") $line[3] = IniRead($INI, "SomeSec", "att3", "") If $line[0] = "x" Then ; Do sth EndIf If $line[1] = "x" Then ; Do sth EndIf If $line[2] = "x" Then ; Do sth EndIf If $line[3] = "x" Then ; Do sth EndIf This code is too long... I need sth like this Dim $line[4] $line[0] = IniRead($INI, "SomeSec", "att0", "") $line[1] = IniRead($INI, "SomeSec", "att1", "") $line[2] = IniRead($INI, "SomeSec", "att2", "") $line[3] = IniRead($INI, "SomeSec", "att3", "") If <one element of $line array> = "x" Then ; Do Sth EndIf Just to do not create XX IFs How to write all elements in one variable? Just not $line[2], sth like $line[all] Edited July 12, 2010 by Sobiech This world is crazy
Moderators Melba23 Posted July 12, 2010 Moderators Posted July 12, 2010 Sobiech,You cannot compare all the elements in one variable - you must use a loop. What I would do is add another section to the Ini file listing function names to call if that particular att? variable is "x". Then you could run your loop like this:For $i = 1 To 4 If IniRead($INI, "SomeSec", "att" & $i, "") = "x" Then Call(IniRead($INI, "SomeFunc", "att" & $i, "") Nextusing an Ini file that looked like this:[SomeSec] att1=x ; or whatever else it might be att2=x att3=x att4=x [SomeFunc] att1=Func_1 ; code to run if att1 = "x" att2=Func_2 att3=Func_3 att4=Func_4It also has the advantage of keeping the code to run for each att? in a single function for easy maintenance. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
GEOSoft Posted July 12, 2010 Posted July 12, 2010 Something like this maybe? For $i = 1 To Ubound($aArray) -1 If $aArray[$i] = "x" Then Switch $i Case 1 ;Do Something Case 2 ;Do Something Else EndSwitch EndIf Next You could also look in the Array.au3 UDF for _ArraySearch() and _ArrayFindAll(). Those are a couple of functions that could probably save you a lot of code in the long run. George Question about decompiling code? Read the decompiling FAQ and don't bother posting the question in the forums.Be sure to read and follow the forum rules. -AKA the AutoIt Reading and Comprehension Skills test.*** The PCRE (Regular Expression) ToolKit for AutoIT - (Updated Oct 20, 2011 ver:3.0.1.13) - Please update your current version before filing any bug reports. The installer now includes both 32 and 64 bit versions. No change in version number. Visit my Blog .. currently not active but it will soon be resplendent with news and views. Also please remove any links you may have to my website. it is soon to be closed and replaced with something else. "Old age and treachery will always overcome youth and skill!"
Sobiech Posted July 12, 2010 Author Posted July 12, 2010 You cannot compare all the elements in one variable - you must use a loop. ^^So many posts, and this is the best answer Thx for all I will use a Loop This world is crazy
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