helebek Posted July 10, 2012 Share Posted July 10, 2012 Hi, I have script that reads and array of values from an Excel Worksheet. I live in Turkey and in Turkish decimal separator is "," (comma). In my Excel all my data use "," as a decimal separator. However, when I read these values with AutoIt and then output it (at different place, stdout, msgbox, set IE form values etc.) I always get a "." (period) for the decimal separator. I tried assigning the data to string and then do a stringreplace, but that didn't succeed either. Any idea how to play with the decimal separator character? Maybe it is an internal AutoIt option? BTW: All my local settings in windows point to the local regional settings ("," as decimal separator). Many Thanks. Link to comment Share on other sites More sharing options...
Bert Posted July 10, 2012 Share Posted July 10, 2012 post your code. I suspect your stringreplace needs tweaking The Vollatran project My blog: http://www.vollysinterestingshit.com/ Link to comment Share on other sites More sharing options...
helebek Posted July 10, 2012 Author Share Posted July 10, 2012 post your code. I suspect your stringreplace needs tweaking Local $value = String(Round($data_values[$i],2)) StringReplace($value, ".", ",") Does the "." and "," need some kind of escape character? Thx. Link to comment Share on other sites More sharing options...
Moderators JLogan3o13 Posted July 10, 2012 Moderators Share Posted July 10, 2012 Your StringReplace works fine if a simple string is inputted as $value. Can you post the whole script, or a short reproducer, so we can see how you're defining the array? "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum! Link to comment Share on other sites More sharing options...
helebek Posted July 10, 2012 Author Share Posted July 10, 2012 (edited) expandcollapse popup#include <IE.au3> #include <Excel.au3> #include <Array.au3> Opt("WinTitleMatchMode", 2) Local $oExcel = _ExcelBookAttach("my_excel_file.xls", "FileName") Local $aArray1 = _ExcelReadSheetToArray($oExcel, 2, 5,60, 11) Local $num_rows = UBound($aArray1) - 1 If not WinExists("Sample") Then MsgBox(0, "", "Window does not exists") Exit EndIf WinActivate("Sample") WinWaitActive("Sample") MouseClick("left", 113, 240, 1, 0) Sleep(10000) Local $oIE = _IEAttach("Sample") For $i = 1 To $num_rows Step 1 ConsoleWrite("i = "& $i & Chr(13)) ;Get the frame! Local $oFrame = _IEFrameGetObjByName($oIE, "Frame") Local $oForm = _IEFormGetObjByName($oFrame, "Form") Local $oText = _IEFormElementGetObjByName($oForm, "ID") _IEFormElementSetValue($oText, $aArray1[$i][1]) Local $oSelect = _IEFormElementGetObjByName($oForm, "Name") _IEFormElementOptionSelect($oSelect, "X1", 1, "byText") Sleep(2000) Local $oSelect = _IEFormElementGetObjByName($oForm, "Coast") _IEFormElementOptionSelect($oSelect, "X2", 1, "byText") Local $oSelect = _IEFormElementGetObjByName($oForm, "Type") _IEFormElementOptionSelect($oSelect, $aArray1[$i][2], 1, "byText") Local $oText = _IEFormElementGetObjByName($oForm, "latDeg") _IEFormElementSetValue($oText, $aArray1[$i][5]) Local $oText = _IEFormElementGetObjByName($oForm, "latMin") _IEFormElementSetValue($oText, $aArray1[$i][6]) Local $oText = _IEFormElementGetObjByName($oForm, "latSec") _IEFormElementSetValue($oText, $aArray1[$i][7]) Local $oText = _IEFormElementGetObjByName($oForm, "latHemis") _IEFormElementSetValue($oText, "N") Local $oText = _IEFormElementGetObjByName($oForm, "lonDeg") _IEFormElementSetValue($oText, $aArray1[$i][9]) Local $oText = _IEFormElementGetObjByName($oForm, "lonMin") _IEFormElementSetValue($oText, $aArray1[$i][10]) Local $oText = _IEFormElementGetObjByName($oForm, "lonSec") Local $value = String(Round($aArray1[$i][11], 2)) StringReplace($value, ".", ",") _IEFormElementSetValue($oText, $value) Local $oSubmit = _IEFormElementGetObjByName($oForm, "submit") _IEAction($oSubmit, "click") _IELoadWait($oIE) Sleep(10000) Next My Excel file for the given columns basically includes this data (columns 5, 6, 7, 9, 10, 11) 27 53 18,42 E 40 56 24,84 Edited July 10, 2012 by helebek Link to comment Share on other sites More sharing options...
helebek Posted July 12, 2012 Author Share Posted July 12, 2012 I am not sure what was wrong, but eventually I exported my excel table to a tab separated text file and proceeded with the text file without any problem. I suspect it was a conversion problem while AutoIt was reading the excel cells. Thx. Link to comment Share on other sites More sharing options...
Juvigy Posted July 16, 2012 Share Posted July 16, 2012 Autoit converts on the fly when possible whithout complaining, so if you want to make sure something is String or a Number use the functions String() or Number(). 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