Page 1 of 1

erase two element of an array

Posted: Mon Mar 23, 2020 11:16 pm
by Silvio.Falconi
I have an array


1
1
2
2
3 <------------------ I wish erase this
3 <------------------I wish erase this
4
4
5
5

and I wish erase only the lines having the number 3

I not understood why the procedure erase only one line having the number 3






the test

Code: Select all

#include "Fivewin.ch"

Function test()
   local aItemsRows:={}
   local n,d
local nNumber:=3

// create an array
For n= 1 to 5
      aadd(aItemsRows, {n} )
      aadd(aItemsRows, {n} )
next n


xbrowser aItemsRows

//now I wish erase only some records all numbers 3

For d =1 to Len(aItemsRows)

           IF aItemsRows[d][1]=nNumber
                 adel( aItemsRows,d,.f.)
                //   asize( aItemsRows, len( aItemsRows))
              ENDIF

           next d

xbrowser aItemsRows
return nil

Re: erase two element of an array

Posted: Tue Mar 24, 2020 1:23 am
by karinha

Re: erase two element of an array

Posted: Tue Mar 24, 2020 4:04 am
by nageswaragunupudi

Code: Select all

For n= 1 to 5
      aadd(aItemsRows, {n} )
      aadd(aItemsRows, {n} )
next n

xbrowser aItemsRows

n := 1
do while n < Len( aItemsRows )
   if aItemsRows[ n, 1 ] == 3
      ADel( aItemsRows, n, .t. )
   else
      n++
   endif
enddo

xbrowser aItemsRows

 

Re: erase two element of an array

Posted: Tue Mar 24, 2020 11:05 am
by Silvio.Falconi
thanks