Solved

# removing items from an array

Posted on 2004-09-03
215 Views
How do I do the following:

I have a dynamic array: ItemList() and it contains the following 7 items of data:

Bob
Anne
Jane
Mary
Tim
Jack
John

along the way, items are tagged as no longer availible and I've replaced them with [REMOVED] so my list of 7 items now reads:

Bob
Anne
[REMOVED]
Mary
Tim
[REMOVED]
John

whats the best way to take away the [REMOVED] items so i am left with an array of 5 items:

Bob
Anne
Mary
Tim
John

Cheers,

`Andy
0
Question by:xizor
• 2

LVL 18

Accepted Solution

JR2003 earned 125 total points
ID: 11972932
This should do the trick:

Private Sub Command1_Click()
Dim MyArray() As String
ReDim MyArray(1 To 5)
MyArray(1) = "qwe"
MyArray(2) = "[REMOVED]"
MyArray(3) = "qwe"
MyArray(4) = "[REMOVED]"
MyArray(5) = "qwe"
Dim i As Long
Dim j As Long
j = 0 'Initialise
For i = LBound(MyArray) To UBound(MyArray)
If (i + j) > UBound(MyArray) Then Exit For
If MyArray(i + j) = "[REMOVED]" Then
j = j + 1
End If
If j <> 0 And (i + j) <= UBound(MyArray) Then
MyArray(i) = MyArray(i + j)
End If
Next i
If j <> 0 Then
ReDim Preserve MyArray(LBound(MyArray) To UBound(MyArray) - j)
End If
End Sub
0

LVL 2

Author Comment

ID: 11973073
Thanks!
0

LVL 18

Expert Comment

ID: 11973456
Ooops, I just realised there is a bug in the code I just geve you.
This version works
JR

Private Sub Command1_Click()
Dim MyArray() As String
ReDim MyArray(1 To 6)
MyArray(1) = "[REMOVED]"
MyArray(2) = "[REMOVED]"
MyArray(3) = "[REMOVED]"
MyArray(4) = "QWE4"
MyArray(5) = "[REMOVED]"
MyArray(6) = "[REMOVED]"
Dim i As Long
Dim j As Long
j = 0 'Initialise
For i = LBound(MyArray) To UBound(MyArray)
If i + j > UBound(MyArray) Then Exit For
MyArray(i) = MyArray(i + j)
While (MyArray(i) = "[REMOVED]") And (i + j) < UBound(MyArray)
j = j + 1
MyArray(i) = MyArray(i + j)
Wend
Next i
If j <> 0 Then
ReDim Preserve MyArray(LBound(MyArray) To UBound(MyArray) - j - LBound(MyArray))
End If
For i = LBound(MyArray) To UBound(MyArray)
Debug.Print MyArray(i)
Next i
End Sub

0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question