Autor Tópico: Identificar valores em uma lista  (Lida 2784 vezes)

ajritta

  • Full Member
  • ***
  • Mensagens: 202
  • Karma: +0/-0
  • A Paz do Eu
Identificar valores em uma lista
« Online: Abril 30, 2009, 10:38:36 am »
Salve amigos!

Tenho o seguinte cenário:
Possuo uma lista com os valores "1,2,3,4,5,6", por exemplo.

A questão é o seguinte: esses valores são carregados de um banco de dados (a lista não está linkada diretamente ao banco, apenas lê os valores), se, por exemplo, eu remover o número "4" da lista, quando eu for salvar os dados, necessito que a lista seja percorrida até o final, e, se no final não encontrar o número "4", aí sim, excluir esse valor do banco, ou seja, preciso pegar um elemento e percorrer toda a lista, e depois, somente depois, se esse elemento não for encontrado é que então ele deverá ser excluído do banco.

Gostaria de saber como faço esse processo, pois não quero comparar elemento por elemento, mas sim percorrer a lista até o final e me certificar que determinado elemento não existe para depois excluí-lo.

Desde já, agradeço a atenção de todos.

ajritta

  • Full Member
  • ***
  • Mensagens: 202
  • Karma: +0/-0
  • A Paz do Eu
Re: Identificar valores em uma lista
« Responder #1 Online: Maio 06, 2009, 10:20:01 am »
Olá amigos.

Consegui resolver o meu problema da seguinte forma:

   HExecuteQuery(QRY_Unidades_Acesso)
   HReadFirst(QRY_Unidades_Acesso)
   WHILE NOT HOut()
      IF QRY_Unidades_Acesso.ID_Usuarios = nCodigo THEN
         ListAdd(LIST_Acessos,QRY_Unidades_Acesso.Siglas)
      END   
      HReadNext(QRY_Unidades_Acesso)
   END   
   FOR i = 1 TO ListCount(LIST_Acessos)
      s = 1
      WHILE s <= ListCount(LIST_Unidades)
         IF LIST_Unidades[ s ] = LIST_Acessos[ i ] THEN
            ListDelete(LIST_Unidades,s)
         ELSE
            s++
         END
      END
   END