Página 1 de 1

Pesquisa com looop em array

Enviado: 14 Mar 2014 20:15
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.

Pesquisa com looop em array

Enviado: 15 Mar 2014 11:52
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        

Pesquisa com looop em array

Enviado: 15 Mar 2014 14:55
por fladimir
Poderia ser feito talvez com AEVAL tb ou não?

Pesquisa com looop em array

Enviado: 15 Mar 2014 20:30
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.)})


Pesquisa com looop em array

Enviado: 16 Mar 2014 09:36
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

Pesquisa com looop em array

Enviado: 17 Mar 2014 19:31
por gilsonpaulo
Vou testar aqui, e já posto o resultado.

Obrigado pela ajuda.