[futurebasic] Re: [FB] Removing element from dynamic array

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : February 2006 : Group Archive : Group : All Groups

From: Bernie <fb.list@...>
Date: Sat, 25 Feb 2006 13:59:28 +0000
I said:

> what we really need is: DynamiteRemoveItems


This mod to Alain's function "seems" to work:

'----------
local mode
local fn DynamicRemoveItems( @dyn as ptr, firstItem as long, numItems  
as long )
'~'1
dim as long  itemCount, itemSize

if ( dyn == _nil ) or ( firstItem < 0 ) or ( numItems < 1 ) then exit fn
itemSize = ( fn malloc_size( dyn.AutoXREFPtr& ) \\ dyn.AutoXREFMax& )
if ( itemSize == 0 ) then exit fn
itemCount = dyn.autoXREFCurr&
long if ( firstItem < itemCount )
if ( ( firstItem + numItems ) > itemCount ) then numItems = itemCount  
- firstItem
BlockMove( [dyn.AutoXREFHndl&] + ( itemSize * ( firstItem +  
numItems ) ), [dyn.AutoXREFHndl&] + ( itemSize * firstItem ),  
( itemCount - firstItem ) * itemSize )
dyn.autoXREFCurr& = dyn.autoXREFCurr& - numItems
dyn.AutoXREFMax& = dyn.AutoXREFCurr&
end if
end fn
'----------

No apologies for missing OS 9 code.

Bernie