10 posts in this topic
My esteemed Autoits I need your help once again.
I'm trying to figure out how to create a loop that gets 1 value from an array and repeats until each value from the array has been used. I have never used arrays before and I know once I learn more things should get easier for me.
Here is what Im trying to do:
-Have an array of values that determine what application i log into. ex: app1, app2, app3, app4 etc.
-Have a loop that repeats a process sequentially using each value in the array to finish the process for each app1, app2, app 3 and so forth. I have 30 apps that I need to update on a regular basis and getting this sorted out is what I perceive to be the best way to do it.
Here is my feeble attempt that obviously fails:
local $array = ["10", "11", "12",etc etc]
;;Local $site = InputBox("ERx Site","What site do you want to login as?","","")
Local $userid = InputBox("ERx Login", "What is your username?", "", "")
Local $Passwd = InputBox("Security Check", "Enter your UAT password.", "", "*")
for $1 = 1 to 30(I need to do the same steps in 30 different apps)
Send (Sequential ARRAY VALUE HERE)
your help is greatly appreciated.
Thanks for your time
I am fairly new to AutoIT and I am still trying to learn, I have been using _FileListToArray to list all the files with a particular extension in an array and then loop through it for operation ( For $i = 1 To UBound($FileArray) - 1).
So far this has been working fine. But I am not able to figure out a problem that I have; what if I have 50 files but I only want to loop through first 10 files and then next ten and so on? Or rather I should say, how I can I only feed max 10 files to the array at a time when I do _FileListToArray regardless of the total number of files in the folder?
Any insight/help will be much appreciated
Edit: Just realised this was posted in the wrong forum! I guess the Mods will move it to either "AutoIt General Help and Support" or "AutoIt Technical Discussion".
Do you use type checking? Or do you choose not to type check?
I was trying to think of the simplest way to do a type check without typing arguments more than once and I came up with:
Func displayPerson($firstName, $lastName, $age) ; -- TYPE CHECK -- Local $typeCheck = ("" _ & IsString($firstName) _ & IsString($lastName) _ & IsNumber($age) _ ) If (StringInStr($typeCheck, "0")) Then MsgBox(16, "Type Error: displayPerson()", $typeCheck) ; -- FUNCTION -- MsgBox(0, "", $firstName & " " & $lastName & " (" & $age & ")") EndFunc The only catch with this method is that it produces a very simplistic error message. Even still, the fact that you only have to type out arguments once makes it a reasonable approach, in my opinion. The same logic can also be used for making function contracts (for example: $firstName mustn't be an empty string etc...).
What do you think? How do you go about such things?
Hey, just wondering if anyone has ever encountered intermittent COM Object Errors with Microsoft.XMLDOM pulling node values. I'm currently getting "Bad Variable Type" intermittently, and simply running the script again would allow it to get further in the parsing loop, only to encounter the error again. The data is persistent, and it is always a string.
Here's a snippet of where the error event occurs
$Target = "Item001" $SearchItem = $oXML.SelectNodes("//Items/Name[. = """&$Target&"""]") If $SearchItem.Length==1 Then AddToLog("XML: Found a match for """&$Target&""", Gathering details...") $TargetItem = $SearchItem.Item(0).ParentNode $ItemSKU = XMLGetValue($TargetItem, "SKU") Endif and here's the snip of my XMLGetValue function where the error is always triggered on the $Value = ...
Func XMLGetValue($Node="", $ValueName="", $NestLevel=0) ... If $Node.GetElementsByTagName($ValueName).Item(0).ChildNodes.Length==1 Then $Value = $Node.GetElementsByTagName(String($ValueName)).Item(0).ChildNodes(0).NodeValue Else ...Tell me there are more than one result for the target Endif ... EndFunc I added the string() as a counter measure but that doesnt fix the error. The XML file contains standard data with no attributes or anything funky.
The weird thing is that if i reboot my workstation it might get all the way through, and then if i run it again it may burp some where throughout the loop process (For each item, get SKU, Add SKU to array, Do stuff with array contents afterwards).
I have added sleep timers to my loops to try and pace the XML requests in case it was a sort of buffer underrun issue but im not certain whats going on.
Again, i could run the script and it would work perfectly and then fail another time. I've read up about readyState, but i dont know how to incorporate it in my script.
Has anyone seen this before? Thanks in advance for your help.
I'm trying to get an array from a website so that I can just get the url, but I am not sure how. I read a bit of arrays but I have a feeling I'd have to be writing a lot more than what I should be. I will include the script I have so far and the API url for what I want.
API: https://api.fast.com/netflix/speedtest?https=true&token=YXNkZmFzZGxmbnNkYWZoYXNkZmhrYWxm&urlCount=1 (I want the 'url' array that contains the url)
#include <MsgBoxConstants.au3> #include <Inet.au3> #include <Array.au3> $site = _INetGetSource('http://api.fast.com/netflix/speedtest?https=true&token=YXNkZmFzZGxmbnNkYWZoYXNkZmhrYWxm&urlCount=1') MsgBox($MB_SYSTEMMODAL, "Title", $site)