lunes, noviembre 30, 2009

Harbour VS xHarbour, Las diferencias verdaderas (Parte 15)

Interface de POO para Arreglos Hash.

xHarbour permite acceder a los elementos de un arreglo hash usando una interfaz de POO. hVal["ABC"] := 100 puede ser también expresada como hVal:ABC := 100.

Usar la interfaz POO es mas lento que usar el operador [] pero trabaja para todos los índices los cuales son identificadores válidos en mayúsculas para [x]Harbour.

Por default el núcleo de Harbour no soporta esta funcionalidad, sin embargo tiene un API de POO suficientemente robusto para soportar la implementación de esta funcionalidad sin tocar el código del núcleo aún a nivel .PRG. Esta característica está implementada en XHB.LIB.

Este código puede ser compilado y ejecutado por ambos compiladores:
      #ifndef __XHARBOUR__
#include "xhb.ch"
#endif
proc main()
local hVal := {=>}
hVal["ABC"] := 100
hVal:QWE := 200
hVal:ZXC := 300
hVal:QWE += 50
? hVal:ABC, hVal:QWE, hVal:ZXC
? hVal["ABC"], hVal["QWE"], hVal["ZXC"]
return
Algunos usuarios de Harbour suelen compilar el código del núcleo de Harbour con la macro HB_HASH_MSG_ITEMS la cual activa esta funcionalidad directametne en el código del núcleo, pero esto no es necesario con el código actual y existe solo por razones históricas.

Es posible que en un futuro el soporte para esa macro sea quitado o reemplazado por una opción de runtime la cual pueda ser habilitada o quitada para cada arreglo hash por separado.

Continuará....

2 comentarios:

Anónimo dijo...

Hola, buen trabajo el que ha realizado en la traducción de este artículo.

Como indica, Harbour ha implementado nuevas funciones, hasta tal punto que, en ese aspecto no tiene nada que envidiar a xHarbour. Pues bien, yo no encuentro por ningún sitio esas nuevas funciones y seguramente estarán en inglés. Yo le ruego que publique un manual de referencia de todas las órdenes y funciones en español. Muchos se lo agradeceremos.

Un saludo
Rafael Pérez

Lautaro Moreira dijo...

Rene,

Te comento que harbour tiene una diferencia mas, le agregaron la posibilidad de RPC.

Saludos,
Lautaro Moreira

PD: Te escribi un email con algunas consultas sobre facturacion electronica, ¿ Lo recibiste ?