Página 1 de 1

Array de novo

Enviado: 15 Jul 2004 22:21
por negrao
Pessoal, qndo uso o adel , a posicao que é eliminada fica como NIL.
Tem algum modo, de nao aparecer o NIL tb, ou seja, se tenho um array com 3 posicoes e elimino 1 , ficar apenas 2 elementos.
Obs.: Eu poderia fazer um loop e jogar os dados para outro array, menos os nIL, mas nao é isso que to querendo.

Obrigado

Enviado: 15 Jul 2004 22:57
por Jorge Adourian
Negrão, use ASIZE() para mudar o tamanho da Matriz.

Enviado: 15 Jul 2004 23:07
por Toledo
Negrão,

Você não disse para que está usando a matriz (array), então vou dar um exemplo que pode ser que resolva o seu problema...

Quando você elimina um elemento da matriz utilizando o ADEL(), todos os elementos que vem depois daquele que foi eliminado desce uma posição, ficando o último elemento como NIL (indefinido).
Desta maneira, você pode usar a função VALTYPE() para encontrar qual o elemento que foi eliminado, veja exemplo:

Código: Selecionar todos

aMat:={"MARIA","JOSE","JESUS"}
ADEL(aMat,2)
FOR i=1 TO LEN(aMat)
  IF VALTYPE(aMat[i])<>"U"
    ? aMat[i]
  ENDIF
NEXT
Espero que este exemplo sirva!

Abraços,