Pesquisa com looop em array

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

gilsonpaulo
Usuário Nível 3
Usuário Nível 3
Mensagens: 135
Registrado em: 02 Fev 2008 11:30
Localização: Quatro Barras

Pesquisa com looop em array

Mensagem por gilsonpaulo »

Boa noite a todos, tenho uma simples duvida com relação a pesquisa em array. Verificar se um código existe, se não existir, uso ele.

Com dbf faço assim:

Código: Selecionar todos

        bus := 0
        DO WHILE .T.
                bus++
                SELECT CLI
                GO TOP
                SEEK STRZERO(bus,4,0)
                IF .NOT. FOUND()
                        EXIT
                ENDIF
        ENDDO
Mas preciso fazer isto em array

Desde ja agradeço a compreensão e ajuda de todos.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Pesquisa com looop em array

Mensagem por asimoes »

Acho que é isso.

Código: Selecionar todos

aCli:={}
 FOR I:=1 TO 10
    AADD(aCli,StrZero(i,4,0)
 NEXT

 bus := 0
  
 DO WHILE .T.
    bus++
    IF ASCAN(aCli,STRZERO(bus,4,0)) = 0
       EXIT
    ENDIF
 ENDDO        
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Pesquisa com looop em array

Mensagem por fladimir »

Poderia ser feito talvez com AEVAL tb ou não?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Pesquisa com looop em array

Mensagem por asimoes »

Com AEval dá pra fazer assim:

Código: Selecionar todos

 
  lAchou:=.F.
  cNumero:=StrZero(10,4,0)
  
  AEval(aCli, {|| lAchou:=IF(ASCAN(aCli,cNumero)=0,.F.,.T.)})

►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Pesquisa com looop em array

Mensagem por asimoes »

Pode fazer também desta forma.

Código: Selecionar todos

nBus:=1
DO WHILE ASCAN(aCli,STRZERO(nBus,4,0)) # 0
   nBus++
ENDDO
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
gilsonpaulo
Usuário Nível 3
Usuário Nível 3
Mensagens: 135
Registrado em: 02 Fev 2008 11:30
Localização: Quatro Barras

Pesquisa com looop em array

Mensagem por gilsonpaulo »

Vou testar aqui, e já posto o resultado.

Obrigado pela ajuda.
Responder