home *** CD-ROM | disk | FTP | other *** search
- *******************
-
- FUNCTION O_file
-
- PARAMETERS _f, _ftog
-
- IF EMPTY(PCOUNT())
- RETURN(-1)
- ELSEIF TYPE("_f") != "A"
- RETURN(-1)
- ENDIF
-
- _ftog = IF((TYPE("_ftog") != "L"), .F., _ftog)
-
- IF _ftog
- _area = SELECT()
- SELECT 0
- CREATE Template
- USE Template
- FOR _qaz = 2 TO LEN(_f)
- IF EMPTY(AT(";", _f[_qaz])) && I'm at the index file, stop
- EXIT && creating field information
- ENDIF
- _t = _f[_qaz]
- _t1 = Parsing(@_t, ";")
- _t2 = UPPER(LTRIM(TRIM(Parsing(@_t, ";"))))
- _t3 = VAL(LTRIM(TRIM(Parsing(@_t, ";"))))
- _t4 = IF(EMPTY(_t), 0, VAL(_t))
- Ap_it(_t1, _t2, _t3, _t4)
- NEXT
- USE
- CREATE (_f[1]) FROM Template
- ERASE Template.dbf
- USE (_f[1])
- FOR _qwert = _qaz TO LEN(_f) STEP 2
- _express = _f[_qwert + 1]
- IF TYPE(_express) $ "CLDN"
- INDEX ON &_express. TO (_f[_qwert])
- ENDIF
- NEXT
- USE
- SELECT (_area)
- RETURN (1)
- ELSE
- IF !FILE(Extention(_f[1], "DBF")) && This means that the database has not been created yet.
- RETURN(0) && means file NOT opened
- ENDIF
- _area = SELECT() && Find the select work area to open this in
- SELECT 0
- USE (_f[1])
- FOR _qaz = 2 TO LEN(_f)
- IF EMPTY(AT(";", _f[_qaz])) && Find the index file
- EXIT
- ENDIF
- NEXT
- IF _qaz < LEN(_f)
- _wsx = 0 && count the number of indexes....
- FOR _qwert = _qaz TO LEN(_f) STEP 2
- IF !FILE(Extention(_f[_qwert], "NTX")) && means that the index file has not been created yet
- EXIT
- ENDIF
- _wsx = _wsx + 1
- NEXT
- * now open up the proper number of indexes to the file
- IF EMPTY(_wsx)
- * no index
- ELSEIF _wsx = 1
- SET INDEX TO (_f[_qaz])
- ELSEIF _wsx = 2
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2])
- ELSEIF _wsx = 3
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2]), (_f[_qaz + 4])
- ELSEIF _wsx = 4
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2]), (_f[_qaz + 4]), (_f[_qaz + 6])
- ELSEIF _wsx = 5
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2]), (_f[_qaz + 4]), (_f[_qaz + 6]), (_f[_qaz + 8])
- ELSEIF _wsx = 6
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2]), (_f[_qaz + 4]), (_f[_qaz + 6]), (_f[_qaz + 8]), (_f[_qaz + 10])
- ELSEIF _wsx = 7
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2]), (_f[_qaz + 4]), (_f[_qaz + 6]), (_f[_qaz + 8]), (_f[_qaz + 10]), (_f[_qaz + 12])
- ELSEIF _wsx = 8
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2]), (_f[_qaz + 4]), (_f[_qaz + 6]), (_f[_qaz + 8]), (_f[_qaz + 10]), (_f[_qaz + 12]), (_f[_qaz + 14])
- ELSEIF _wsx = 9
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2]), (_f[_qaz + 4]), (_f[_qaz + 6]), (_f[_qaz + 8]), (_f[_qaz + 10]), (_f[_qaz + 12]), (_f[_qaz + 14]), (_f[_qaz + 16])
- ELSEIF _wsx = 10
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2]), (_f[_qaz + 4]), (_f[_qaz + 6]), (_f[_qaz + 8]), (_f[_qaz + 10]), (_f[_qaz + 12]), (_f[_qaz + 14]), (_f[_qaz + 16]), (_f[_qaz + 18])
- ELSEIF _wsx = 11
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2]), (_f[_qaz + 4]), (_f[_qaz + 6]), (_f[_qaz + 8]), (_f[_qaz + 10]), (_f[_qaz + 12]), (_f[_qaz + 14]), (_f[_qaz + 16]), (_f[_qaz + 18]), (_f[_qaz + 20])
- ELSEIF _wsx = 12
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2]), (_f[_qaz + 4]), (_f[_qaz + 6]), (_f[_qaz + 8]), (_f[_qaz + 10]), (_f[_qaz + 12]), (_f[_qaz + 14]), (_f[_qaz + 16]), (_f[_qaz + 18]), (_f[_qaz + 20]), (_f[_qaz + 22])
- ELSEIF _wsx = 13
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2]), (_f[_qaz + 4]), (_f[_qaz + 6]), (_f[_qaz + 8]), (_f[_qaz + 10]), (_f[_qaz + 12]), (_f[_qaz + 14]), (_f[_qaz + 16]), (_f[_qaz + 18]), (_f[_qaz + 20]), (_f[_qaz + 22]), (_f[_qaz + 24])
- ELSEIF _wsx = 14
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2]), (_f[_qaz + 4]), (_f[_qaz + 6]), (_f[_qaz + 8]), (_f[_qaz + 10]), (_f[_qaz + 12]), (_f[_qaz + 14]), (_f[_qaz + 16]), (_f[_qaz + 18]), (_f[_qaz + 20]), (_f[_qaz + 22]), (_f[_qaz + 24]), (_f[_qaz + 26])
- ELSEIF _wsx = 15
- SET INDEX TO (_f[_qaz]), (_f[_qaz + 2]), (_f[_qaz + 4]), ;
- (_f[_qaz + 6]), (_f[_qaz + 8]), (_f[_qaz + 10]), ;
- (_f[_qaz + 12]), (_f[_qaz + 14]), (_f[_qaz + 16]), ;
- (_f[_qaz + 18]), (_f[_qaz + 20]), (_f[_qaz + 22]), ;
- (_f[_qaz + 24]), (_f[_qaz + 26]), (_f[_qaz + 28])
- ENDIF
- ENDIF
- SELECT (_area)
- RETURN (_area) && means file is open in this work area.
- ENDIF
-
- * End of File
-