Array de novo

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

negrao
Usuário Nível 3
Usuário Nível 3
Mensagens: 186
Registrado em: 06 Jul 2004 08:38

Array de novo

Mensagem 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
Jorge Adourian
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 05 Jul 2004 23:38
Localização: São Paulo-SP-Brasil
Contato:

Mensagem por Jorge Adourian »

Negrão, use ASIZE() para mudar o tamanho da Matriz.
Até...
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder