miércoles, 13 de mayo de 2015

Quitando elementos de un array

Desde los inicios de Clipper, para quitar un elemento de un array utilizabamos la función aDel(), cuyo uso tenía un efecto un poco extraño: no disminuía el tamaño del array, sino que desplazaba una posición todos los elementos posteriores al eliminado. Esto obliga a utilizar la función aSize( ) para rectificar la situación.

Gracias a la experiencia y lucidez de los desarrolladores de Harbour esto ya es un inconveniente del que nos podemos olvidar. Ahora la función aDel tiene un tercer parámetro, lShink, que hace la tarea obvia de disminuir el tamaño.

aDel( aArray, nElement <, lShrink> )

Por defecto lShrink es .F., por lo que sigue siendo compatible con el código existente.

LOCAL aTest:= { 1, 2, 3, 4, 5 }

? Len( aTest ) // -> 5

aDel( aTest, 3 )
? Len( aTest ) // -> 5


aDel( aTest, 3, .T.  )
? Len( aTest ) // -> 4 !

Tantas veces hemos tenido que ajustar el array debido al comportamiento particular de aDel() que no podía dejarlo pasar.

1 comentario:

Gustavo Morán Chacón dijo...

No tiene que ver con lo de quitar elementos de un array es por una respuesta que distes aqui:
http://forums.fivetechsupport.com/viewtopic.php?f=6&t=22654&start=0&hilit=hb+curl

El caso es que me encuentro ahora mismo realizando el mismo trabajo pero esta vez para:
http://www.agenciatributaria.es/AEAT.internet/Inicio/Ayuda/Modelos__Procedimientos_y_Servicios/Ayuda_P_G417____IVA__Llevanza_de_libros_registro__SII_/Ayuda_tecnica/Informacion_tecnica_SII/WSDL_de_los_servicios_web/WSDL_de_los_servicios_web.shtml

Estoy usando el cURL bajo PHP, pero no tengo forma humana de enviar el certificado electronico .pfx para que me valide, tenemos el XML y nos falta la comunicación entre nuestro servidor y el de hacienda.

Si me puedes ayudar te estaría eternamente agradecido.

(Siento comentar sin tener nada que ver con el asunto).