Hello forum
I continue testing in 2.6a until new advice. I know that the xsharp team is working in 2.8 to resolve arrays problems and this example try to expose in a little Probe of Concept the FoxPro capability. Please, see the comments
thanks
Juan
PRIVATE mvec1, mvec2, mvecnew
DIMENSION mvec (1,2)
DO AssignValueToVector WITH "mvec", 1,2, "hello world!!!"
? mvec(1,2)
STORE .f. TO mvecnew && all private variables must be inicialized to exist after the next line. The first value define de procedure or function owner of the variable. If you do not put this line the variable is created and disposed inside AssignValueToVector procedure
? AssignValueToVector ("mvecnew",3,2, 1234)
? mvecnew(3,2)
AssignValueToVector ( @mvec, 2 , 2, "hello" ) && function default is by val. It need @ before ref param
? mvec(2,2)
*!* DO AssignValueToVector WITH @mvecnew, 1 , 2, "VFP compiler syntax error in VFP!!!"
maux= CREATEOBJECT("myclass")
maux.methodToAssignValue(1,2,"hello")
? maux.arrayproperty(1,2)
WAIT
RETURN
****************************
PROCEDURE AssignValueToVector
PARAMETERS pvec, prow, pcol, pvalue && pvec Array passed by ref or passed name of Array defined before
if type("&pvec.(3,1)")="U" && to detects if the array is not declared correctli
IF TYPE("pvec")="C"
dimension &pvec.(3,2) && An array could change dimensions without lost the values. Pay atention: "you can use macros too"
ENDIF
ENDIF
IF TYPE("&pvec.(1,1)")<> "U"
&pvec.(prow,pcol)= pvalue && Pay atention: "you can use macros too"
ELSE
pvec(prow,pcol)= pvalue
ENDIF
RETURN
**************************************
DEFINE CLASS MYCLASS AS Custom
DIMENSION ARRAYPROPERTY (2,2)
PROCEDURE methodToAssignValue (prow,pcol,pvalue)
this. arrayproperty(prow,pcol)= pvalue
ENDDEFINE
Arrays in FoxPro
Arrays in FoxPro
Juan, thanks for the sample, I see that some of those issues still exist in the 2.8 compiler and I have added this sample to our test suite. Not sure if Robert needs any clarifications on some aspects..
Chris Pyrgas
XSharp Development Team
chris(at)xsharp.eu
XSharp Development Team
chris(at)xsharp.eu