billmez Posted January 5, 2006 Share Posted January 5, 2006 Hello All, Code: Dim $INIfile = @ScriptDir & "\dnsedit.ini" Dim $IP, $i, IPcount $IPcount = IniRead ($INIfile, "IPADDRESS", "IPcount", "" ) For $i = 1 To $IPcount $IP$i = IniRead ($INIfile, "IPADDRESS", "IP" & $i, "" ) MsgBox(4096, "", $IP$i) Next What I'm trying to do here is read a count variable from an ini file, and create dynamic variables with results as such: $IP1 = IniRead ($INIfile, "IPADDRESS", "IP1", "" ) $IP2 = IniRead ($INIfile, "IPADDRESS", "IP2", "" ) Etc. I have tried some of the possible solutions with Eval and Assign that I found in other posts, and can't seem to find any joy. It seems to me that this shouldn't be that hard to do. I have used loops as above in PERL before. Any help is appreciated billmez Link to comment Share on other sites More sharing options...
Oxin8 Posted January 5, 2006 Share Posted January 5, 2006 http://www.autoitscript.com/forum/index.php?showtopic=19767quite a few things are covered there. if those don't work, you might want to explain what you're trying to do a little better. ~My Scripts~ *********_XInput UDF for Xbox 360 ControllerSprayPaint_MouseMovePlus Link to comment Share on other sites More sharing options...
billmez Posted January 5, 2006 Author Share Posted January 5, 2006 http://www.autoitscript.com/forum/index.php?showtopic=19767quite a few things are covered there. if those don't work, you might want to explain what you're trying to do a little better.I have tried that post but was unable to get the solutions to work;>What I'm trying to do here is read a count variable from an ini file, and create dynamic variables with >results as such:>$IP1 = IniRead ($INIfile, "IPADDRESS", "IP1", "" )>$IP2 = IniRead ($INIfile, "IPADDRESS", "IP2", "" )>Etc.I am trying to dynamically create static variables based on a loop count and assign them a value contained in an ini file, also based on the loop count.I know I can do it with case or if statements but that seems so inefficient compared to using a loop.I'll equate each statement below to what I'm looking for it to evaluate to:For $i = 1 To $IPcount = For $i = 1 to 2$IP$i = IniRead ($INIfile, "IPADDRESS", "IP" & $i, "" ) = $IP1 = IniRead ($INIfile, "IPADDRESS", "IP1", "" )MsgBox(4096, "", $IP1)Next$IP$i = IniRead ($INIfile, "IPADDRESS", "IP" & $i, "" ) = $IP2 = IniRead ($INIfile, "IPADDRESS", "IP2", "" )MsgBox(4096, "", $IP2)Is this a little clearer?Thanks Link to comment Share on other sites More sharing options...
Oxin8 Posted January 5, 2006 Share Posted January 5, 2006 you should be able to just read the ini with the IP and current number just like you posted: IniRead ($INIfile, "IPADDRESS", "IP" & $i, "" ) as for the dynamic variables, i don't see why you'd need them unless you're using them all later somehow... can't you use an array or a temp variable and handle them like that? if the code you posted is what you're trying to achieve, you can just do: For $i = 1 To $IPcount $temp = IniRead ($INIfile, "IPADDRESS", "IP" & $i, "" ) MsgBox(4096, "", $temp) Next or even just eliminate the temp variable For $i = 1 To $IPcount MsgBox(4096, "", IniRead ($INIfile, "IPADDRESS", "IP" & $i, "" )) Next although i'm guessing the real purpose is much more complicated... ~My Scripts~ *********_XInput UDF for Xbox 360 ControllerSprayPaint_MouseMovePlus Link to comment Share on other sites More sharing options...
w0uter Posted January 5, 2006 Share Posted January 5, 2006 array seems best IMO. My UDF's:;mem stuff_Mem;ftp stuff_FTP ( OLD );inet stuff_INetGetSource ( OLD )_INetGetImage _INetBrowse ( Collection )_EncodeUrl_NetStat_Google;random stuff_iPixelSearch_DiceRoll Link to comment Share on other sites More sharing options...
billmez Posted January 6, 2006 Author Share Posted January 6, 2006 (edited) array seems best IMO. I can place each pair that does not have a set number and can be added to in its own section in the ini and then build an array out of the section, and I know that will work. I was hoping to keep some of these items in the sections they are in for logic reasons, and that would work if I could dynamically assign a variable and value based on the count. Although I guess I could build an array from the for loop results since $temp[$i] = IniRead ($INIfile, "IPADDRESS", "IP" & $i, "" ) should work. Edit: it does work as long as the $temp variable is Dim'd as a array using the count from the ini file. The [0] element can also be set to the count and passed on later in the script that way. Just reading the line from the ini file won't work as I will be using the variable later on, and the count to set the number and position of input controls. So you were right about the more complicated purpose w0uter. Basically what I am doing is building a GUI app to add populate and zone files from a template and place an entry in the primary.conf file for new domain setup in BIND DNS on Win Server. Since there is no way of knowing before hand how many entries for several sections will be part of th configuration since it will be used on different servers, I will allow as many entries into the ini file as needed. In the instance of the IP addresses , they will all be read from the ini and populated into a combo box. There is a section for required CNAME entries that is also dynamic and has to read a values like CN1name = name CN1value = value for as many entries as the particular server dns setup requires, and write input controls for each set, dynamically calculating the position of each in the GUI. So I know there are other ways than a dynamic variable assignment to accomplish it, but I was hoping to find a way to make the variable assignment work since it is also a technique I've used in PERL for years. I will post the finished script if anyone is interested into the Scripts and Scraps forum. Any and all input is appreciated. billmez Edited January 6, 2006 by billmez 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