Lee Bussy Posted November 19, 2011 Share Posted November 19, 2011 I'm sure there's a simple way to do this but so far I seem to be making it too hard I guess. Consider this line: If ($s_ConsolArc = "Archive" And $b_DoArchive = 1) Or $s_ConsolArc = "Consolidated" Then What I am trying to do is enter the subsequent code if either of these condtions are true: $s_ConsolArc = "Consolidated" or $s_ConsolArc = "Archive" And $b_DoArchive = 1 I assume I am making a mistake somewhere and that it is indeed possible to accomplish this, so a virtual beer for my foolishness to the person who helps. Link to comment Share on other sites More sharing options...
gruntydatsun Posted November 19, 2011 Share Posted November 19, 2011 (edited) If StringCompare($s_ConsolArc,"Archive") And $b_DoArchive = 1 OR $s_ConsolArc = "Consolidate" Then msgbox(1,"SUCCESS","SUCCESS") EndIf Edited November 19, 2011 by gruntydatsun Link to comment Share on other sites More sharing options...
water Posted November 19, 2011 Share Posted November 19, 2011 (edited) What do you think is wrong with the first code line in your post? I think the code does exactly what you describe below. Edited November 19, 2011 by water My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted November 19, 2011 Moderators Share Posted November 19, 2011 Lee Bussy,Are you saying that your posted If statement does not work? It looks fine to me both logically and syntactically - furthermore I have just tested it without problem. expandcollapse popup; False $s_ConsolArc = "Archive" $b_DoArchive = 0 If ($s_ConsolArc = "Archive" And $b_DoArchive = 1) Or $s_ConsolArc = "Consolidated" Then ConsoleWrite("True" & @CRLF) Else ConsoleWrite("False" & @CRLF) EndIf ; True $s_ConsolArc = "Archive" $b_DoArchive = 1 If ($s_ConsolArc = "Archive" And $b_DoArchive = 1) Or $s_ConsolArc = "Consolidated" Then ConsoleWrite("True" & @CRLF) Else ConsoleWrite("False" & @CRLF) EndIf ; false $s_ConsolArc = "" $b_DoArchive = 1 If ($s_ConsolArc = "Archive" And $b_DoArchive = 1) Or $s_ConsolArc = "Consolidated" Then ConsoleWrite("True" & @CRLF) Else ConsoleWrite("False" & @CRLF) EndIf ; True $s_ConsolArc = "Consolidated" $b_DoArchive = 1 If ($s_ConsolArc = "Archive" And $b_DoArchive = 1) Or $s_ConsolArc = "Consolidated" Then ConsoleWrite("True" & @CRLF) Else ConsoleWrite("False" & @CRLF) EndIf ; True $s_ConsolArc = "Consolidated" $b_DoArchive = 0 If ($s_ConsolArc = "Archive" And $b_DoArchive = 1) Or $s_ConsolArc = "Consolidated" Then ConsoleWrite("True" & @CRLF) Else ConsoleWrite("False" & @CRLF) EndIfDoes it work for you too? 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 Link to comment Share on other sites More sharing options...
gruntydatsun Posted November 19, 2011 Share Posted November 19, 2011 Thats odd, it faulted for me the first time using: If $s_ConsolArc = "Archive" And $b_DoArchive = 1 OR $s_ConsolArc = "Consolidate" Then msgbox(1,"SUCCESS","SUCCESS") Else msgbox(1,"FAIL","FAIL") EndIf And now it works. Maybe I typod. Link to comment Share on other sites More sharing options...
water Posted November 19, 2011 Share Posted November 19, 2011 If StringCompare($s_ConsolArc,"Archive") And $b_DoArchive = 1 OR $s_ConsolArc = "Consolidate" Then msgbox(1,"SUCCESS","SUCCESS") EndIfI think your code won't work because StringCompare only returns > 0 when "string1 is greater than string2". My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
water Posted November 19, 2011 Share Posted November 19, 2011 In such code the brackets can make the difference. Please check here to understand how a statement is evaluated by AutoIt (called operator precedence) My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
gruntydatsun Posted November 19, 2011 Share Posted November 19, 2011 So this statement works unbracketed because AND has higher precedence than OR Link to comment Share on other sites More sharing options...
water Posted November 19, 2011 Share Posted November 19, 2011 No. It's pure coincidence. AND and OR are one the same level and therefore the expression is evaluated from left to right.When more than one operator is used in an expression the order in which things happen is controlled by operator precedence. The precedence used in AutoIt is given below. Where two operators have the same precedence the expression is evaluated left to right.From highest precedence to lowest: NOT ^ * / + - & < > <= >= = <> == AND ORThat's how I understand it. My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
gruntydatsun Posted November 19, 2011 Share Posted November 19, 2011 Hooray for coincidence! Link to comment Share on other sites More sharing options...
Lee Bussy Posted November 19, 2011 Author Share Posted November 19, 2011 Wow ... well a long story short but my code works now. Honestly I'm noit sure what I was doing wrong at this point, but it's good to know I wasn't completely off my rocker. I don't know if anyone noticed the time I posted but I'm UTC (-05:00) so I think a distinct lack of sleep was my worst problem. Thanks to all who replied. Reminding me what I needed to know was called "operator precedence" was what got me to th section I was looking for as well. 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