Hi Fernando,

Perhaps you can use hbmemio. I think that hbmemio
has been created for this purpose...

Guy

Fernando Athayde a écrit :
ASORT(::aArrayResumo, {|a,b| str(a[1],11)+str(a[3],11)+dtoc(a[5])+a[7] > str(b[1],11)+str(b[3],11)+dtoc(b[5])+b[7] } )

//Normal way (Slow for more than 100 registers)
nPosicaoArray := ASCAN(::aArrayResumo, ;
                 {|a| str(a[1],11)+str(a[3],11)+dtoc(a[5])+a[7] ==;
STR( ::oQueryRelatorioPrincipal:fieldGet('idgrupo_centro_custo'),11)+; STR(::oQueryRelatorioPrincipal:fieldGet('idcentro_custo'),11 )+; DTOC(oDB:Mysql2Date (::oQueryRelatorioPrincipal:fieldGet('data_emissao') ) )+cSiglaMoeda} )

//Weighted search (Is very fast)
nPosicaoArray := 0
nArraySize := LEN( ::aArrayResumo )
nJump := nArraySize - 1
nPosition := 1
DO WHILE .T.
   nPosition += nJump
   IF nPosition > nArraySize
      nJump := 0
      nPosition := nArraySize
   ENDIF
IF str(::aArrayResumo[nPosition,1],11)+str(::aArrayResumo[nPosition,3],11); +dtoc(::aArrayResumo[nPosition,5])+::aArrayResumo[nPosition,7] >; STR( ::oQueryRelatorioPrincipal:fieldGet('idgrupo_centro_custo'),11 ); +STR( ::oQueryRelatorioPrincipal:fieldGet('idcentro_custo'),11 ); +DTOC(oDB:Mysql2Date (::oQueryRelatorioPrincipal:fieldGet('data_emissao') ) )+cSiglaMoeda

      nPosition -= nJump
      nJump := INT(nJump/2)
   ENDIF
IF str(::aArrayResumo[nPosition,1],11)+str(::aArrayResumo[nPosition,3],11); +dtoc(::aArrayResumo[nPosition,5])+::aArrayResumo[nPosition,7] == STR( ::oQueryRelatorioPrincipal:fieldGet('idgrupo_centro_custo'),11 ); +STR( ::oQueryRelatorioPrincipal:fieldGet('idcentro_custo'),11 ); +DTOC(oDB:Mysql2Date (::oQueryRelatorioPrincipal:fieldGet('data_emissao') ) )+cSiglaMoeda
      nPosicaoArray := nPosition
      EXIT
   ENDIF
   IF nJump<1
      EXIT
   ENDIF
ENDDO

my proposal is made a ASCANEX sending a block how parameter
but i don´t know how to use eval and blocks

Thanks,
Fernando Athayde

_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to