Only one more hint: if you want access hashes with : like oHash:cName,
you need compile Harbour with:
set HB_USER_CFLAGS=-DHB_HASH_MSG_ITEMS
Instead of recompiling whole Harbour code I suggest to simply create
custom HASH class with such functionality, f.e.:
#include "hbclass.ch"
PROC MAIN()
LOCAL hValue
ASSOCIATE CLASS _Hash WITH TYPE Hash
hValue := {=>}
hValue:VAR1 := 123.45
hValue:VAR2 := DATE()
? hValue:VAR1, hValue:VAR2
RETURN
CREATE CLASS Hash INHERIT __HBHash FUNCTION _Hash
ON ERROR FUNCTION XHB_HASHERROR()
ENDCLASS
Hi,
or if you do not want to pollute functionality of all hashes, you can
use HashObject() below for one hash that needs object functionality:
#include "hbclass.ch"
PROC MAIN()
LOCAL hValue := HashObject()
hValue:VAR1 := 123.45
hValue:VAR2 := DATE()
? hValue:VAR1, hValue:VAR2
RETURN
CREATE CLASS HashObject
VAR __hash INIT {=>}
ERROR HANDLER OnError()
ENDCLASS
METHOD OnError( xValue ) CLASS HashObject
LOCAL cMessage := __GETMESSAGE()
IF PCOUNT() == 1 .AND. LEFT( cMessage, 1 ) == "_"
RETURN QSELF():__hash[ SUBSTR( cMessage, 2 ) ] := xValue
ENDIF
RETURN QSELF():__hash[ cMessage ]
Regards,
Mindaugas
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour