Jump to content

how to delete a specific value from an array?


kor
 Share

Recommended Posts

I am using _FileListToArray to get a list of all folders in a directory (lets say C: drive)

I am then _ArrayDelete to trim the first value from the array to remove the folder count

I am then taking that list of folders and running the script, however before I start the loops I want to look in the array and delete specific folders such as "System" "$Recycle.bin" and a few other folders.

However the directory count changes, so the system folders and such will never be in the same place in the array. How do I delete by only knowing the name of the folder?

I have searched and come across _ArraySearch but I'm not sure the structure of the code that is needed to search the array for a list of specific folder names, then remove them from the array.

Link to comment
Share on other sites

  • Moderators

kor,

Where is the code have you tried so far? :(

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Im still a little scared baby when it comes to fiddling with arrays so always work around it :(

Maybe you dont need to delete them, just ignore them

Global $array[6] = ["Documents","System","Files","Recycle","Nothing","Something"]
For $n = 0 To UBound($array) -1
    If $array[$n] <> "System" And $array[$n] <> "Recycle" Then
        ConsoleWrite($array[$n] & @CRLF)
    EndIf
Next

Im certain there are swankier ways though.

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Link to comment
Share on other sites

here is a way to delete elements only by knowing there name :(

Global $array[6] = ["Documents","System","Files","Recycle","Nothing","Something"]
Global $folderstodeletefromarray[2] = ["System","Windows"]

For $n = 0 To UBound($folderstodeletefromarray) -1
    $iIndex = _ArraySearch($array, folderstodeletefromarray[$n], 0)
If @error Then
    MsgBox(0, "Not Found", '"' & folderstodeletefromarray[n] & '" in array of files ')
Else
    ;here we will delete it from primary array
_ArrayDelete($array, $iIndex)
EndIf

Next

I hope it helps you
Link to comment
Share on other sites

Global $exclusions[3] = ["$RECYCLE.BIN", "$AVG", "System Volume Information"]

Exclusions()

Func Exclusions()
    For $n = 0 To UBound($exclusions) -1
        $index = _ArraySearch($folders, $exclusions[$n], 0)
        If @error Then
        Else
            _ArrayDelete($folders, $index)
        EndIf
    Next
EndFunc

Works great. Thanks!

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...