FUNCTION FillArray lparam arefArray,cArrayString,cSeparator local cTemp,i *---------------------------- * store values in arefArray * the array must be passed by ref (@arrayname) * and must be of the right dimension or bigger * * cArrayString must be a character string * type conversion was made by EVAL() * ex: ["a", 2, .T., "b", "c", 3] * attention, no validations! * * sample call : * DIMENSION aTest[3,2] * FillArray(@atest,["a", 2, .T., {^2001/11/22}, "c", 3]) *--------------------------- IF EMPTY(cSeparator) cSeparator="," ENDIF nElements=OCCURS(cSeparator,cArrayString)+1 FOR i=1 TO nElements DO CASE CASE i=1 cTemp=SUBSTR(cArrayString,1,AT(cSeparator,cArrayString,i)-1) CASE i=nElements cTemp=SUBSTR(cArrayString,AT(cSeparator,cArrayString,i-1)+1) OTHERWISE cTemp=SUBSTR(cArrayString,AT(cSeparator,cArrayString,i-1)+1,; AT(cSeparator,cArrayString,i)-AT(cSeparator,cArrayString,i-1)-1) ENDCASE arefArray[i]=EVAL(cTemp) ENDFOR RETURNHTH :-)