Alguém sabe como faço para excluir elementos de um array permanentemente?
Estou tentando fazer assim:
Do while Len(aArray) > 0
ADEL(aArray,1)
EndDo
e já tentei fazer assim:
nCampos = Len(aArray)
For V = 1 to nCampos
ADEL(aArray, V)
Next
Só que ambos os métodos não excluem os elementos do Array. Se excluiem, deixam um espaço em branco porque, por exemplo, o Do While fica sendo executado eternamente e, quando eu uso o comando Len(aArray) após o For Next ele me dá o mesmo número de elementos que tinha antes. Deveria ter menos ou nenhum elemento (que é o que eu quero fazer!)
O ADEL apaga o valor da posição solicitada, move os elementos posteriores e coloca um Nil na última posição.
Vc deve dar um ASIZE para acertar o tamanho.
[MARCELOG]
Não conheço o terceiro parâmetro do ADEL. Não aparece na documentação que eu tenho. Para quê é?
ADel()
Deletes an element from an array.
Syntax
ADel( <aArray>, <nElement>, [<lShrink>] ) --> aArray
Arguments
<aArray>
A variable holding the array to delete an element from.
<nElement>
This is a numeric expression indicating the ordinal position of the array element to delete. It must be in the range between 1 and Len(<aArray>).
<lShrink>
Optionally, a logical value can be specified. If .T. (true) is passed, the length of the array is reduced by one element. The default value is .F. (false) leaving the number of elements in <aArray> unchanged. Return
The return value is a reference to <aArray>.
Description
The array function ADel() deletes the element at position <nElement> from the array <aArray>. All subsequent elements are shifted up by one position so that the last element contains the value NIL when the function returns. This default behaviour leaves the number of elements in the array unchanged.
If the third parameter <lShrink> is specified as .T. (true), the last element is removed from the array and the number of elements is reduced by 1.
Mas Asize() resolve ('inda' bem né?).
MarceloG
Água mole em pedra dura tanto bate que até espirra!
Mas ADel() tem um terceiro parâmetro? Não seria apenas um erro de digitação?
[]'s
Maligno
--- Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
--- Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
[]'s
Maligno
--- Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
--- Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!