Lee Bussy 0 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. Share this post Link to post Share on other sites
gruntydatsun 12 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 Share this post Link to post Share on other sites
water 2,388 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 2020-10-10 - Version 1.5.2.1) - Download - General Help & Support - Example Scripts - WikiOutlookEX (NEW 2020-12-15 - Version 1.6.3.1) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2020-06-27 - Version 1.3.2.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsPowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & SupportExcel - Example Scripts - WikiWord - WikiTask Scheduler (2019-12-03 - Version 1.5.1.0) - Download - General Help & Support - WikiTutorials:ADO - Wiki, WebDriver - Wiki Share this post Link to post Share on other sites
Melba23 3,456 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 Share this post Link to post Share on other sites
gruntydatsun 12 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. Share this post Link to post Share on other sites
water 2,388 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 2020-10-10 - Version 1.5.2.1) - Download - General Help & Support - Example Scripts - WikiOutlookEX (NEW 2020-12-15 - Version 1.6.3.1) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2020-06-27 - Version 1.3.2.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsPowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & SupportExcel - Example Scripts - WikiWord - WikiTask Scheduler (2019-12-03 - Version 1.5.1.0) - Download - General Help & Support - WikiTutorials:ADO - Wiki, WebDriver - Wiki Share this post Link to post Share on other sites
water 2,388 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 2020-10-10 - Version 1.5.2.1) - Download - General Help & Support - Example Scripts - WikiOutlookEX (NEW 2020-12-15 - Version 1.6.3.1) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2020-06-27 - Version 1.3.2.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsPowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & SupportExcel - Example Scripts - WikiWord - WikiTask Scheduler (2019-12-03 - Version 1.5.1.0) - Download - General Help & Support - WikiTutorials:ADO - Wiki, WebDriver - Wiki Share this post Link to post Share on other sites
gruntydatsun 12 Posted November 19, 2011 So this statement works unbracketed because AND has higher precedence than OR Share this post Link to post Share on other sites
water 2,388 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 2020-10-10 - Version 1.5.2.1) - Download - General Help & Support - Example Scripts - WikiOutlookEX (NEW 2020-12-15 - Version 1.6.3.1) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2020-06-27 - Version 1.3.2.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsPowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & SupportExcel - Example Scripts - WikiWord - WikiTask Scheduler (2019-12-03 - Version 1.5.1.0) - Download - General Help & Support - WikiTutorials:ADO - Wiki, WebDriver - Wiki Share this post Link to post Share on other sites
gruntydatsun 12 Posted November 19, 2011 Hooray for coincidence! Share this post Link to post Share on other sites
Lee Bussy 0 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. Share this post Link to post Share on other sites