Titolo: Cancellazioni da un array
Categoria: Stile |
|
Ultimo Aggiornamento: 11/06/04 |
Il comando DELETE ELEMENT permette di cancellare l'elemento di un array. Per usare questo comando all'interno di un ciclo For bisogna fare attenzione, perchè cancellando un elemento ovviamente diminuisce la dimensione dell'array e cambia anche la posizione degli elementi successivi.
Prendiamo come esempio la necessità di cancellare da un array i valori duplicati. Un approccio potrebbe essere:
C_TEXT($valore)
C_LONGINT($size_L;$i)
If (Size of array(MioArray)>0)
$size_L:=Size of array(MioArray)
SORT ARRAY(MioArray)
$valore:=MioArray{1}
For ($i;2;$size_L)
If ($valore=MioArray{$i})
MioArray{$i}:=""
Else $valore:=MioArray{$i}
End if End for SORT ARRAY(MioArray)
For ($i;1;$size_L)
If ((MioArray{1})="")
DELETE ELEMENT(MioArray;1)
End if End for End if Ma così ho dovuto scorrere due volte il mio array: per scorrerlo solo una volta devo effettuare le cancellazioni durante il primo ciclo, ma con qualche piccolo accorgimento. Infatti, senza usare la variabile $valore e con un solo ciclo for ma che scorra l'array al contrario possiamo ottenere lo stesso risultato:
C_LONGINT($size_L;$i)
If (Size of array(MioArray)>0)
$size_L:=Size of array(MioArray)
SORT ARRAY(MioArray)
For ($i;$size_L;2;-1)
If (MioArray{$i}=MioArray{$i-1})
DELETE ELEMENT(MioArray;$i)
End if End forEnd if
Inviato da: PierPaolo Sichera |
|
Visite: 14486 |
Se accedi con utente e password, puoi aggiungere dei commenti.