Jump to content

Organizing an array


Go to solution Solved by kylomas,

Recommended Posts

Also I can't understand why you want to delete items, probably only for displaying the array. Am I right?

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

  • Solution

This will write a file if the first column (USERNAME) is empty.

#include <Constants.au3>
#include <Array.au3>
#include <File.au3>

Local $aArray[51][2], $sid, $sUser, $sVenv, $cClient

For $i = 1 To 50
    $sID = RegEnumKey("HKEY_USERS\", $i)
    $len = StringLen($sID)
    If $len > 9 and $len < 51 then
        $sVenv = RegEnumKey("HKEY_USERS\" & $sID & "\" & "Volatile Environment\", 1)
        $aarray[$i][0] = RegRead("HKEY_USERS\" & $sID & "\" & "Volatile Environment", "USERNAME")
        $aArray[$i][1] = RegRead("HKEY_USERS\" & $sID & "\" & "Volatile Environment\" & $sVenv, "CLIENTNAME")
    EndIf
Next

; will write file if username (first column in each row) is not blank

local $flname = @scriptdir & '\User_List_' & @YEAR & '_' & @MON & '_' & @MDAY & '_' & @HOUR & '_' & @MIN & '_' & @SEC & '.txt'
local $hfl = fileopen($flname,2)

if $hfl = -1 then
    msgbox($mb_ok,'*** File open Error ***','File=' & $flname)
    exit
endif

for $1 = 0 to ubound($aArray) - 1
    if $aArray[$1][0] = '' then
    Else
        filewrite($hfl,$aArray[$1][0] & ',' & $aArray[$1][1] & @crlf)
    EndIf
next

fileclose($hfl)
shellexecute($flname)

The file name has a DT stamp for ease of identification. You can change the file open to "append" if you want to add to an existing file. If you want to test for all/any column veing empty just change the "if" statement in the for loop.

kylomas

edit: #$%^%^&^%#$ editor...

Edited by kylomas

Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Link to comment
Share on other sites

Code is working! Added a few modifiers here and there. Now just working on a way to get things to line up correctly! Depending on how long the user name is, the client name doesn't always line up underneath the "Client Name" text. Other than that, I think we are good.

Link to comment
Share on other sites

AllSystemsGo,

Stringformat is great for stuff like that as...

#include <Constants.au3>
#include <Array.au3>
#include <File.au3>

Local $aArray[51][2], $sid, $sUser, $sVenv, $cClient

For $i = 1 To 50
    $sID = RegEnumKey("HKEY_USERS\", $i)
    $len = StringLen($sID)
    If $len > 9 and $len < 51 then
        $sVenv = RegEnumKey("HKEY_USERS\" & $sID & "\" & "Volatile Environment\", 1)
        $aarray[$i][0] = RegRead("HKEY_USERS\" & $sID & "\" & "Volatile Environment", "USERNAME")
        $aArray[$i][1] = RegRead("HKEY_USERS\" & $sID & "\" & "Volatile Environment\" & $sVenv, "CLIENTNAME")
    EndIf
Next

; will write file if username (first column in each row) is not blank

local $flname = @scriptdir & '\User_List_' & @YEAR & '_' & @MON & '_' & @MDAY & '_' & @HOUR & '_' & @MIN & '_' & @SEC & '.txt'
local $hfl = fileopen($flname,2)

if $hfl = -1 then
    msgbox($mb_ok,'*** File open Error ***','File=' & $flname)
    exit
endif

filewrite($hfl,stringformat('%-20s  %-20s','Username','ClientName') & @crlf)   ; <------- added

for $1 = 0 to ubound($aArray) - 1
    if $aArray[$1][0] = '' then
    Else
        filewrite($hfl,stringformat('%-20s  %-20s',$aArray[$1][0],$aArray[$1][1]) & @crlf) ; <------ changed
    EndIf
next

fileclose($hfl)
shellexecute($flname)

kylomas

Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...