annelinn Posted December 18, 2009 Share Posted December 18, 2009 Forgive a very stupid question... If 0 = "hello" Then MsgBox(1, "0 is true") EndIf I always understood that 0 has the boolean value of false, and strings have the boolean value of true? Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 18, 2009 Moderators Share Posted December 18, 2009 annelinn,0 is a number - all variables begin with $ - so 0 = "hello" changes nothing and means nothing."0 is true" is a literal string, so of course the MsgBox will display it just as it would display any other obviously untrue statement such as "Tony Blair did NOT lie to get the British to go to war in Iraq". Or at least it would if you got the MsgBox syntax right. In fact the whole code is complete garbage. 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...
annelinn Posted December 18, 2009 Author Share Posted December 18, 2009 (edited) Ah, but my problem is in this situation, where $variable might be a string, or an integer: If $variable = "hello" Then MsgBox(1, "found", "hello") EndIf Since AutoIt uses the same label for strings and integers ($variable), and since I can't necessarily control the data type of $variable, I would have expected that... If $variable = "hello" Then ...would be true if $variable is the string "hello", and FALSE when $variable is the integer 0. But clearly not. Edited December 18, 2009 by annelinn Link to comment Share on other sites More sharing options...
spudw2k Posted December 18, 2009 Share Posted December 18, 2009 use == instead of = Spoiler Things I've Made: Always On Top Tool ◊ AU History ◊ Deck of Cards ◊ HideIt ◊ ICU ◊ Icon Freezer ◊ Ipod Ejector ◊ Junos Configuration Explorer ◊ Link Downloader ◊ MD5 Folder Enumerator ◊ PassGen ◊ Ping Tool ◊ Quick NIC ◊ Read OCR ◊ RemoteIT ◊ SchTasksGui ◊ SpyCam ◊ System Scan Report Tool ◊ System UpTime ◊ Transparency Machine ◊ VMWare ESX BuilderMisc Code Snippets: ADODB Example ◊ CheckHover ◊ Detect SafeMode ◊ DynEnumArray ◊ GetNetStatData ◊ HashArray ◊ IsBetweenDates ◊ Local Admins ◊ Make Choice ◊ Recursive File List ◊ Remove Sizebox Style ◊ Retrieve PNPDeviceID ◊ Retreive SysListView32 Contents ◊ Set IE Homepage ◊ Tickle Expired Password ◊ Transpose ArrayProjects: Drive Space Usage GUI ◊ LEDkIT ◊ Plasma_kIt ◊ Scan Engine Builder ◊ SpeeDBurner ◊ SubnetCalcCool Stuff: AutoItObject UDF ◊ Extract Icon From Proc ◊ GuiCtrlFontRotate ◊ Hex Edit Funcs ◊ Run binary ◊ Service_UDF Link to comment Share on other sites More sharing options...
PsaltyDS Posted December 18, 2009 Share Posted December 18, 2009 The native AutoIt functions generally try to auto-retype the variables to match the function requirements. A string like "123" will be converted to an integer 123. A sting like "1.23" will be converted to a float. Non-number strings like "hello" convert to 0. Try it with Number() function. Because of this, 0 = "hello" is true because in trying to convert "hello" to a numeric, it becomes 0. You got the right answer from spudw2k, use == vice =. See "Operators" and "Variables" in the help file. Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
annelinn Posted December 18, 2009 Author Share Posted December 18, 2009 Thank you, all. I had read the Datatypes help file, but I didn't spot == in the Operators help file. Merry Xmas! 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