Search the Community
Showing results for tags 'call array'.
-
I have a question. I'm piecing together a small script that will read a computer's name and break it apart to determine computers exact location within a school district. This will help us with deploying software that needs to be specifically tweaked on a wide-scale without manually doing it per each classroom. With that in mind and knowing very little on storing data into arrays, I've decided to take on this challenge. The naming convention works like this: ###-#####-#### <12 is Max # of characters in name as well. Campus Abbreviation - Room Location - System Type - Count So, if I were at Rodney King Highschool in room 402 at a teachers computer, it would read: RHS-00402-DT01 (DT = Desktop Teacher) 01= number of system, if there were 2 teachers, there might be DT02 in the room as well. Anyways, with this naming convention in mind, this is the script broken down: #include <Array.au3> #include <CampusVariables.au3> Global $Computer = "MHS-0B234-DT22" Global $CampusLocation = _IsArrayItemInString ( $CAMPUS, $Computer ) Global $TrimABVR = StringLen($CAMPUS[$CampusLocation]) Global $RoomLocation = _IsArrayItemInString ( $CAMPUS_SELECTOR[$CampusLocation], StringTrimLeft($Computer, $TrimABVR + 1)) Global $SystemTypeCheck = _IsArrayItemInString ($SystemType, StringRight($Computer, 4)) ConsoleWrite ( "Campus Array : " & $CAMPUS[$CampusLocation] & @CRLF) ConsoleWrite ( "Room Array : " & $CAMPUS_SELECTOR[$CampusLocation[$RoomLocation]] & @CRLF) ConsoleWrite ( "System Type : " & $SystemType[$SystemTypeCheck] & @CRLF) Func _IsArrayItemInString ( $_Array, $_Item ) For $_A = 1 To UBound ( $_Array ) - 1 If $_Array[$_A] <> '' And StringInStr ( $_Item, $_Array[$_A], 2, 1, 1, StringLen($_Array[$_A])) <> 0 Then Return $_A ;Return ($_A & " and the value for this item is: " & $CAMPUS[$_A]) Next Return "This system is either not named properly or is not a system needing LanSchool configured. LanSchool will not be installed." EndFunc ;==> _IsArrayItemInString ( ) CampusVariables.au3 ;Workstation Type Variables Dim $SystemType[6] = ["DT","DA","DL","DS","MS"] Dim $AHS[21] = ["0A107","0A108","0A202","0B206","CM129","CM157","CM158","CM171","CM229","000F1","FA107","FA108","FA112","FA116","FA117","FA118","0V100","0V200","0V204","0V205","0V207"] Dim $MHS[25] = ["0A120","0A160","0A161","0A170","0A228","0A229","0A232","0A236","0A242","0A244","0B101","0B134","0B205","0B210","0B217","0B234","0C133","0C138","0C243","0C244","0C248","0D106","0D113","0D122","D158B"] Dim $ALC[4] = ["00118","00142","00218","00220"] Dim $AJH[2] = ["00209","00400"] Dim $FJH[2] = ["0A208","0B125"] Dim $HJH[3] = ["00116","00211","00223"] Dim $MJH[2] = ["00308","00406"] Dim $RJH[2] = ["0A124","0B125"] Dim $AES[2] = ["00403","00404"] Dim $APS[1] = ["00210"] Dim $DJE[3] = ["00119","00502","00703"] Dim $ECM[2] = ["0210A","0210B"] Dim $GYE[1] = ["00303"] Dim $HCE[2] = ["00300","00301"] Dim $LFE[2] = ["00418","00528"] Dim $LIW[2] = ["00106","00302"] Dim $MME[2] = ["00119","00501"] Dim $MTP[2] = ["00015","00016"] Dim $PME[2] = ["00501","00502"] Dim $RLS[2] = ["00108","00401"] Dim $SLE[2] = ["00106","00302"] Dim $WDE[2] = ["00CL1","00MR3"] Dim $TSD[2] = ["0LABA","0LABB"] ;Campus Name Variables Dim $CAMPUS[23] = ["AES","APS","DJE","ECM","GYE","HCE","LFE","MME","MTP","PME","RLS","SLE","WDE","LIW","AJH","FJH","HJH","MJH","RJH","AHS","MHS","ALC","TSD"] ;Campus Variables using the same array range as $CAMPUS. Dim $CAMPUS_SELECTOR[23] = [$AES,$APS,$DJE,$ECM,$GYE,$HCE,$LFE,$MME,$MTP,$PME,$RLS,$SLE,$WDE,$LIW,$AJH,$FJH,$HJH,$MJH,$RJH,$AHS,$MHS,$ALC,$TSD] Everything works except for one thing - I am trying to call the appropriate campus variable by what is returned for $CAMPUS when reading the name. Whenever $CAMPUS returns a number, I then call $CAMPUS_SELECTOR[$CampusLocation[$RoomLocation]] in an effort to call the appropriate variable and the corrosponding array number. Apparently I don't fully understand how this links together because it errors out: DevelopmentSrv1DevelopmentSoftwareLanSchool DeploymentInstall LanSchool.au3 (14) : ==> Campus Array : MHS Subscript used with non-Array variable.: ConsoleWrite ( "Room Array : " & $CAMPUS_SELECTOR[$CampusLocation[$RoomLocation]] & @CRLF) ConsoleWrite ( "Room Array : " & $CAMPUS_SELECTOR[$CampusLocation^ ERROR >Exit code: 1 Time: 0.214 Does anyone have insight on a better way to do this or perhaps point out material that would help me? I don't expect anyone to re-write my code, just give me a hint. I am trying hard to learn but I'm hitting my head.