Quantcast
Channel: AutoIt v3 - General Help and Support
Viewing all articles
Browse latest Browse all 12506

Simplify this array code?

$
0
0

I have recently started using the AD.au3 file to do some work on AD. Works great, but I am having trouble simplifying my code.

 

So I want to look up a user and return there details (such as number, position, name) as variables to use later in my code.

 

The _AD_GetObjectProperties will return a 2d array with all the details I want, but I cant just use that array as row 1 = company, Row 2 = department Row 3 = displayname BECAUSE if the user doesn't have department filled in then Row 2 will = displayName

 

So depending on the users filled in details the array will always be different.

 

As you can see from my script below I create the array, search the array (returning row number), then use the row number to map to a variable.

If the search returns -1 (ie not found array) then the variable will just be blank.

 

However this seems really long, unnecicary and messy. What would be an easier, shorter way?

AutoIt         
;#AutoIt3Wrapper_AU3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 ;#AutoIt3Wrapper_AU3Check_Stop_OnWarning=Y #include <AD.au3> #include <Array.au3> ; Open Connection to the Active Directory _AD_Open() If @error Then Exit MsgBox(16, "Active Directory Example Skript", "Function _AD_Open encountered a problem. @error = " & @error & ", @extended = " & @extended) ;Set veriables Global $aProperties[1][2] $vUsername = InputBox ("","Username") ;Get properties $aProperties = _AD_GetObjectProperties($vUsername, "company,department,displayName,facsimileTelephoneNumber,givenname,info,mail,mobile,sn,telephoneNumber,Title,wWWHomePage") _ArrayDisplay($aProperties, "Active Directory Functions - Example 2 - Properties for user '" & @UserName & "'") ;Search array for details and return the row in array ;Row number will cange depeending on feilds user has filled out ;Returns -1 if user does not a feild filled out $arrCompany = _ArraySearch($aProperties, "company") $arrDepartment = _ArraySearch($aProperties, "department") $arrDisplayName = _ArraySearch($aProperties, "displayName") $arrFacsimileTelephoneNumber = _ArraySearch($aProperties, "facsimileTelephoneNumber") $arrGivenname = _ArraySearch($aProperties, "givenname") $arrInfo = _ArraySearch($aProperties, "info") $arrMail = _ArraySearch($aProperties, "mail") $arrSn = _ArraySearch($aProperties, "sn") $arrTelephoneNumber = _ArraySearch($aProperties, "telephoneNumber") $arrTitle = _ArraySearch($aProperties, "Title") $arrwWWHomePage = _ArraySearch($aProperties, "wWWHomePage") MsgBox (0,"", $arrCompany & @LF & $arrdepartment & @LF & $arrdisplayName & @lf & $arrfacsimileTelephoneNumber & @LF & $arrgivenname& @LF & $arrinfo& @LF & $arrmail & @LF &$arrsn& @LF & $arrtelephoneNumber& @LF & $arrTitle& @LF & $arrwWWHomePage) ;Uses line row umber to convert data to string If $arrCompany > 0 Then     $Company = $aProperties[$arrCompany][1] Else     $Company = "" Endif If $arrDepartment > 0 Then     $Department = $aProperties[$arrDepartment][1] Else     $Department = "" Endif If $arrDisplayName > 0 Then     $DisplayName = $aProperties[$arrDisplayName][1] Else     $DisplayName="" EndIf If $arrFacsimileTelephoneNumber > 0 Then     $FacsimileTelephoneNumber = $aProperties[$arrFacsimileTelephoneNumber][1] Else     $FacsimileTelephoneNumber = "" EndIf If $arrGivenname > 0 Then     $Givenname = $aProperties[$arrGivenname][1] Else     $Givenname = "" EndIf If $arrInfo > 0 Then     $Info = $aProperties[$arrInfo][1] Else     $Info = "" EndIf If $arrMail > 0 Then     $Mail = $aProperties[$arrMail][1] Else     $Mail = "" EndIf If $arrSn > 0 Then     $Sn = $aProperties[$arrSn][1] Else     $Sn = "" EndIf If $arrTelephoneNumber > 0 Then     $TelephoneNumber = $aProperties[$arrTelephoneNumber][1] Else     $TelephoneNumber = "" EndIf If $arrTitle > 0 Then     $Title = $aProperties[$arrTitle][1] Else     $Title = "" EndIf If $arrwWWHomePage > 0 Then     $wWWHomePage = $aProperties[$arrwWWHomePage][1] Else     $wWWHomePage = "" EndIf MsgBox (0,"", $Company & @LF & $department & @LF & $displayName & @lf & $facsimileTelephoneNumber & @LF & $givenname& @LF & $info& @LF & $mail & @LF &$sn& @LF & $telephoneNumber& @LF & $Title& @LF & $wWWHomePage) _AD_Close()

 

 

 

 


Viewing all articles
Browse latest Browse all 12506

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>