>dimension TestArray(2) >TestArray(1) = "ELEMENT A" >TestArray(2) = "ELEMENT B" > >? TestArray(1, 1) >? TestArray(2, 1) >? TestArray(3, 1) >? TestArray(4, 1) >>
>ELEMENT A >ELEMENT A >ELEMENT A >ELEMENT A >>
dimension TestArray(R,C)
when you execute a TestArray(x,y)subscript = 1 + (x-1)*C+ (y-1)- then check for a array subscript overflow
IF subscript > AL_ELEMENTS * FIRE A ERROR ENDIFTHE BUG:
CLEAR * dimension TestArray(R,C) dimension TestArray(6) && = TestArray(6,0) 1 row: zero columns !!! TestArray(1) = "ELEMENT 1" TestArray(2) = "ELEMENT 2" TestArray(3) = "ELEMENT 3" TestArray(4) = "ELEMENT 4" TestArray(5) = "ELEMENT 5" TestArray(6) = "ELEMENT 6" * TestArray(x, y) = TestArray(1 + (x-1)*C+ (y-1)) = TestArray( (x-1)*C+ y ) ? TestArray(1, 1),TestArray(1+ (1-1)*0+ (1-1)) ? TestArray(2, 1),TestArray(1+ (2-1)*0+ (1-1)) ? TestArray(3, 1),TestArray(1+ (3-1)*0+ (1-1)) ? TestArray(4, 1),TestArray(1+ (4-1)*0+ (1-1)) ? '*' dimension TestArray(6,1) && this change the array coefficient, but not touch the array's data ? TestArray(1, 1),TestArray(1+(1-1)*1+ (1-1)) ? TestArray(2, 1),TestArray(1+(2-1)*1+ (1-1)) ? TestArray(3, 1),TestArray(1+(3-1)*1+ (1-1)) ? '*' dimension TestArray(3,2) && this change the array coefficient, but not touch the array's data ? TestArray(1, 1),TestArray(1+(1-1)*2+ (1-1)) ? TestArray(2, 2),TestArray(1+(2-1)*2+ (2-1)) ? TestArray(3, 2),TestArray(1+(3-1)*2+ (2-1)) ? TestArray(2, 3),TestArray(1+(2-1)*2+ (3-1)) && <== !!!! this is a bug * another bug: next don't fire a error and use only the first value ? TestArray(3, 2, 999, 500, 70000, 9000) && parser stop analisy after the first subscriptFabio