vulcan4d Posted December 19, 2020 Share Posted December 19, 2020 (edited) EDIT: this has been solved and was an issue with the negative character. See the reply below. I'm having an issue with AutoIT unable to make proper calculations when extracting the numbers from a text file. Granted these come in as string but I thought using the Number() command would resolve it. I'll paste the script code that is relevant but here is what I'm doing: -Two text files exist (filecurrent, fileprevious), they have the same information in the exact same place however the value amounts can be different. -All I need to figure out is whether each value increases or decreases. So far the outcome is all over the place and is only valid when the numbers are positive. If they are negative it is either inverse or tells me the values are the same when they are actually not. The code below simply imports both files into arrays called $cArray and $pArray FileOpen($filecurrent, 0) _FileReadToArray($filecurrent,$cArray) FileClose($filecurrent) FileOpen($fileprevious, 0) _FileReadToArray($fileprevious,$pArray) FileClose($fileprevious) The code below calls the function to extract the value from the Array. I'll spare you the function but it looks for a word and extracts the numbers that follow after. I've confirmed that this exacts the numbers correctly (no spaces or extra characters). Numbers can be either negative or positive. Global $find_price = searcharray($price,$cArray); Global $pfind_price = searcharray($price,$pArray); Global $pricedir = calcdir(Number($pfind_price),Number($find_price)); Then I run it through a simple calculation to determine the direction, up or down Func calcdir($previous,$current) If $previous > $current Then Local $updown = "down"; ElseIf $previous < $current Then Local $updown = "up"; ElseIf $previous = $current Then Local $updown = "steady"; Else Local $updown = "n/a"; EndIf Return $updown; EndFunc The result for $pricedir is not what I expected. When the numbers are positive everything works great however when they are negative it is either inverse result or it tells me the values are the same (in this case I call it "steady"). As an example it may say that coming from -0.5 to -0.3 is down or steady as an example when it's clearly an increase in value. Any help is greatly appreciated. I'm sure it's something simple that I'm missing. Edited December 19, 2020 by vulcan4d Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 19, 2020 Moderators Share Posted December 19, 2020 vulcan4d, I have just tested your function using Number to convert some trial positive and negative strings and everything works as expected. Could you please post the files concerned so we can take a look at exactly what you are extracting - I know you say the contents extract correctly, but there must be something which is leading to an incorrect conversion. M23 vulcan4d 1 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...
GokAy Posted December 19, 2020 Share Posted December 19, 2020 Maybe decimal symbol issue? , vs . vulcan4d 1 Link to comment Share on other sites More sharing options...
vulcan4d Posted December 19, 2020 Author Share Posted December 19, 2020 Here I am bashing my head why the code doesn't work and it ends up being a character issue. The files generated are using the wrong negative character. I realized it when pasting into Scite. Typically a - symbol shows up as red however when I pasted the negative number it was black. This indicated right away that it was not a negative character but something else even though it looks exactly the same in Notepad. As you can see below the top number I took from the file and the below number is after I changed the - character to what it should be. It's all working now after I get the script to swap the character. I appreciate the helping hand! −25.00 -25.00 Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 19, 2020 Moderators Share Posted December 19, 2020 vulcan4d, Glad you found the problem. 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...
JockoDundee Posted December 19, 2020 Share Posted December 19, 2020 3 hours ago, Melba23 said: Number Is there some hidden meaning to the infixed italic isolani? Code hard, but don’t hard code... Link to comment Share on other sites More sharing options...
jchd Posted December 19, 2020 Share Posted December 19, 2020 (edited) @vulcan4d, Your − sign is the Unicode codepoint U+2212 (Minus sign) and, as you found by yourself, isn't recognized in AutoIt which uses the more common - U+002D (Hyphen-Minus) just like many softwares and languages. − use should be limited to smart math presentation. Similar issue exists with, for example, ∕ U+2215 (Division slash) vs. / U+002F (Solidus) or ∗ U+2217 (Asterisk operator) vs. "usual" * U+002A (Asterisk). EDIT: previous post is an error but a bug and I can't edit it for some unknown reason. Edited December 19, 2020 by Melba23 Previous post deleted This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe hereRegExp tutorial: enough to get startedPCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta. SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt) Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 19, 2020 Moderators Share Posted December 19, 2020 JockoDundee, No. 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...
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