FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Function ADEPURA al estilo AEVAL
Posts: 492
Joined: Wed Nov 16, 2005 12:03 PM
Function ADEPURA al estilo AEVAL
Posted: Thu May 07, 2015 10:22 PM
Saludos cordiales

En mi aplicacion utilizo XBROWSE con arreglos obtenido de consultas SQL. En algunas ocasiones debo remover lineas segun condiciones de la misma, utilizo estas funciones que deseo compartirlas.

Code (fw): Select all Collapse
/*
// Remueve elementos de un arreglo al estilo AEVAL
//
*/ 
FUNCTION ADEPURA(aArray,bBlq)
   LOCAL nAt

   IF Len(aArray)>0 .AND. LEN(aArray[1])>1

     DEFAULT bBlq:={|a,n| Empty(a[1])}

   ELSE

     DEFAULT bBlq:={|a,n| Empty(a)}

   ENDIF

   WHILE .T.

      nAt:=ASCAN(aArray,bBlq)

      IF nAt=0
         EXIT
      ENDIF

      ARREDUCE(aArray,nAt)

   ENDDO

RETURN aArray

/*
// Reduce el Arreglo
*/
FUNCTION ARREDUCE(aArray,nAt)

   ADEL(aArray,nAt)
   ASIZE(aArray,Len(aArray)-1)

RETURN aArray
Posts: 492
Joined: Wed Nov 16, 2005 12:03 PM
Re: Function ADEPURA al estilo AEVAL
Posted: Thu May 07, 2015 10:24 PM
Olvide ejemplo

LOCA aData:={}

AADD(aData,{"1","a"})
AADD(aData,{"2","b"})
AADD(aData,{"" ,"c"})
AADD(aData,{"4","d"})

ADEPURA(aData,{|a,n| Empty(a[1]) })

Queda:
{"1","a"}
{"2","b"}
{"4","d"}

jnavas wrote:Saludos cordiales

En mi aplicacion utilizo XBROWSE con arreglos obtenido de consultas SQL. En algunas ocasiones debo remover lineas segun condiciones de la misma, utilizo estas funciones que deseo compartirlas.

Code (fw): Select all Collapse
/*
// Remueve elementos de un arreglo al estilo AEVAL
//
*/ 
FUNCTION ADEPURA(aArray,bBlq)
   LOCAL nAt

   IF Len(aArray)>0 .AND. LEN(aArray[1])>1

     DEFAULT bBlq:={|a,n| Empty(a[1])}

   ELSE

     DEFAULT bBlq:={|a,n| Empty(a)}

   ENDIF

   WHILE .T.

      nAt:=ASCAN(aArray,bBlq)

      IF nAt=0
         EXIT
      ENDIF

      ARREDUCE(aArray,nAt)

   ENDDO

RETURN aArray

/*
// Reduce el Arreglo
*/
FUNCTION ARREDUCE(aArray,nAt)

   ADEL(aArray,nAt)
   ASIZE(aArray,Len(aArray)-1)

RETURN aArray

Continue the discussion