Jump to content

# Delete column from 2d array

## Recommended Posts

I have searched and searched and there doesn't seem to be a method for deleting a column from a 2 dimensional array,

Is this possible? Please help.

#### Share this post

##### Share on other sites

I have searched and searched and there doesn't seem to be a method for deleting a column from a 2 dimensional array,

Is this possible? Please help.

Can you make a small example to duplicate your problem?

#### Share this post

##### Share on other sites

I have searched and searched and there doesn't seem to be a method for deleting a column from a 2 dimensional array,

Is this possible? Please help.

Sounded useful, so I gave it a shot:
```#include <Array.au3>

Global \$avArray[4][4]

For \$r = 0 To UBound(\$avArray) - 1
For \$c = 0 To UBound(\$avArray, 2) - 1
\$avArray[\$r][\$c] = \$r & " - " & \$c
Next
Next

_ArrayDisplay(\$avArray, "Before")
_ArrayDeleteCol(\$avArray, UBound(\$avArray, 2) - 2)
_ArrayDisplay(\$avArray, "After")

Func _ArrayDeleteCol(ByRef \$avWork, \$iCol)
If Not IsArray(\$avWork) Then Return SetError(1, 0, 0); Not an array
If UBound(\$avWork, 0) <> 2 Then Return SetError(1, 1, 0); Not a 2D array
If (\$iCol < 0) Or (\$iCol > (UBound(\$avWork, 2) - 1)) Then Return SetError(1, 2, 0); \$iCol out of range
If \$iCol < UBound(\$avWork, 2) - 1 Then
For \$c = \$iCol To UBound(\$avWork, 2) - 2
For \$r = 0 To UBound(\$avWork) - 1
\$avWork[\$r][\$c] = \$avWork[\$r][\$c + 1]
Next
Next
EndIf
ReDim \$avWork[UBound(\$avWork)][UBound(\$avWork, 2) - 1]
Return 1
EndFunc```

I'll bet if you search the forum, something like this has been posted before...

Edit: Fixed bug per Malkey below.

Edited by PsaltyDS

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

#### Share this post

##### Share on other sites

I'll bet if you search the forum, something like this has been posted before...

I did search and all I found was people asking if it could be done. I like your solution very simple and concise

#### Share this post

##### Share on other sites

What I can do if I have to delete first column in my array?

I use _ExcelReadSheetToArray function which create array where column 0 and row 0 are empty.

I can delete row 0 _ArrayDelete, but ReDim delete only last column and I want delete the first one.

#### Share this post

##### Share on other sites

PsaltyDS that's a nice bit to add to my array.au3 file along with an add column function that got worked out a little while back that I have referenced in my signature. Which unfortunately isn't my work, but now there's a way to do both operations.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

#### Share this post

##### Share on other sites

PsaltyDS

It's never too late to fix a mistake, if you change this

```;ReDim \$avWork[UBound(\$avWork)][UBound(\$avWork) - 1]
ReDim \$avWork[UBound(\$avWork)][UBound(\$avWork, 2) - 1] ; <--- Change to this.```

in a couple of years - no rush.

#### Share this post

##### Share on other sites

PsaltyDS

It's never too late to fix a mistake, if you change this

```;ReDim \$avWork[UBound(\$avWork)][UBound(\$avWork) - 1]
ReDim \$avWork[UBound(\$avWork)][UBound(\$avWork, 2) - 1] ; <--- Change to this.```

in a couple of years - no rush.

You're correct. The original demo only worked be cause the number of rows/cols happened to match in the example.

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

#### Share this post

##### Share on other sites

You discuss

but I still do not see any answer for my question

Is it possible to delete first column in array?

#### Share this post

##### Share on other sites

Take Psalty's function, change the _ArrayDeleteCol(\$avArray, UBound(\$avArray, 2) - 2) line accordingly (here's a hint the second parameter is the column number to delete, and the columns start at zero), and use it in your script.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

#### Share this post

##### Share on other sites

The demo was a little too cute with the parameters. Deleting the first column would just be _ArrayDeleteCol(\$avArray, 0).

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

#### Share this post

##### Share on other sites

thank you this was very useful

#### Share this post

##### Share on other sites

Wow, that was quick gcue. Just a bit more than 2 years after the last post

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

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

×

• Wiki

• Back

• Git

## Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.