aDel e Array multidimensionali

Moderator: Enrico Maria Giordano

aDel e Array multidimensionali

Postby Marco Turco » Mon Mar 23, 2009 7:58 pm

Salve a tutti,
ho un problema nel cancellare una serie di elementi di un array mulidimensionale.

Immaginiamo di avere un array del tipo

aArray:={}
aadd(aArray,{1,"pippo"})
aadd(aArray,{2,"pluto"})
aadd(aArray,{1,"topolino"})
aadd(aArray,{2,"paperino"})

Vorrei cancellare dall'array i nomi che hanno valore 1 nel primo elemento

ho provato con

for i:=1 to len(aArray)
if aArray[i,1]=1
adel(aArray,i)
endif
next

ma credo sia incorretto in quanto mi cambia la struttura dell'array

Qualche idea a riguardo ?

Grazie in anticipo
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Re: aDel e Array multidimensionali

Postby Enrico Maria Giordano » Mon Mar 23, 2009 9:12 pm

Code: Select all  Expand view
#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL aArray := {}

    LOCAL i

    AADD( aArray, {1, "pippo"} )
    AADD( aArray, {2, "pluto"} )
    AADD( aArray, {1, "topolino"} )
    AADD( aArray, {2, "paperino"} )

    FOR i = 1 TO LEN( aArray )
        ? aArray[ i, 1 ], aArray[ i, 2 ]
    NEXT

    FOR i = 1 TO LEN( aArray )
        IF aArray[ i, 1 ] = 1
            ADEL( aArray, i )
            ASIZE( aArray, LEN( aArray ) - 1 )
        ENDIF
    NEXT

    FOR i = 1 TO LEN( aArray )
        ? aArray[ i, 1 ], aArray[ i, 2 ]
    NEXT

    RETURN NIL


EMG
User avatar
Enrico Maria Giordano
 
Posts: 8243
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: aDel e Array multidimensionali

Postby Marco Turco » Mon Mar 23, 2009 11:13 pm

Funziona. Grazie.
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Re: aDel e Array multidimensionali

Postby César E. Lozada » Thu Apr 23, 2009 10:06 pm

xHarbour:

ADEL( aArray, i ); ASIZE( aArray, LEN( aArray ) - 1 ) => aDel(aArray,i,.T.) //Third parameter stretchs the array.

aSize(aArray,Len(aArray)+1); aIns(aArray,i); aArray[i]:=xIns => aIns(aArray,i,xIns,.T.) //Four parameter expands the array.

Regards
User avatar
César E. Lozada
 
Posts: 128
Joined: Wed Oct 26, 2005 12:18 pm
Location: Los Teques, Miranda, Venezuela


Return to All products support

Who is online

Users browsing this forum: No registered users and 6 guests