home *** CD-ROM | disk | FTP | other *** search
- ********************
-
- FUNCTION Arrayrest
-
- * Contributed by Joe Booth / Modified by Steve Straley
-
- PARAMETER _warray, _fname
-
- IF PCOUNT() != 2
- RETURN(.F.)
- ELSEIF TYPE("_warray") + TYPE("_fname") != "AC"
- RETURN(.F.)
- ENDIF
-
- PRIVATE _retval,_fn,_hw,_fid,_t1,_t2,_tmp1,_tmp2,_k,_tmp3,_t0, _wtype, _wsize
-
- _retval = .F.
- IF FILE(_fname)
- _fn = FOPEN(_fname,0)
- IF _fn >=0
- _fid = SPACE(33)
- _hw = FREAD(_fn,@_fid,33)
- IF _hw = 33
- * read rest of file
- IF LEFT(_fid,3) = "SJS"
- _t0 = VAL(SUBSTR(_fid,4,10))
- _t1 = VAL(SUBSTR(_fid,14,10))
- _t2 = VAL(SUBSTR(_fid,24,10))
- _tmp1 = SPACE(_t1)
- _tmp2 = SPACE(_t2)
- _hw = FREAD(_fn,@_tmp1,_t1)
- IF _hw = _t1
- _hw = FREAD(_fn,@_tmp2,_t2)
- IF _t2 = _hw
- _retval = .T.
- _hw = LEN(_tmp1)/6
- FOR _k = 1 TO MIN( _hw,LEN(_warray) )
- _wtype = LEFT(_tmp1,1)
- _wsize = VAL( SUBSTR(_tmp1,2,5) )
- _tmp1 = SUBSTR(_tmp1,7)
- _tmp3 = LEFT(_tmp2,_wsize)
- _tmp2 = SUBSTR(_tmp2,_wsize+1)
- DO CASE
- CASE _wtype = "C"
- _warray[_k]=_tmp3
- CASE _wtype = "N"
- _warray[_k]=VAL(_tmp3)
- CASE _wtype = "D"
- _warray[_k]=CTOD(_tmp3)
- CASE _wtype = "L"
- _warray[_k]=IF(_tmp3="T",.T.,.F.)
- ENDCASE
- NEXT
- ENDIF
- ENDIF
- ENDIF
- ENDIF
- FCLOSE(_fn)
- ENDIF
- ENDIF
- RETURN(_retval)
-
- * End of File