home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a075 / 1.img / TOOLKIT1.EXE / SST127.PRG < prev    next >
Encoding:
Text File  |  1989-08-16  |  1.5 KB  |  66 lines

  1. *******************
  2.  
  3. FUNCTION Array_size
  4.  
  5.    PARAMETERS _arraya, _arrayb, _arrayc
  6.  
  7.    * _arraya is the name of the file or select area
  8.    * _arrayb is the name of the field or the field number
  9.    * _arrayc is the number of fields to calculate for
  10.  
  11.    PRIVATE _retto, _start, _bfields, _arraynumb, _qaz
  12.  
  13.    IF EMPTY(PCOUNT())
  14.       _arraya = ""
  15.    ENDIF
  16.  
  17.    _start = 1
  18.  
  19.    IF !EMPTY(_arraya)
  20.       _retto = SELECT()
  21.       IF LEN(_arraya) = 1
  22.          SELECT &_arraya.
  23.       ELSE
  24.          SELECT 0
  25.          IF !FILE(_arraya)
  26.             SELECT (_retto)
  27.             RETURN(0)
  28.          ENDIF
  29.          USE (_arraya)
  30.       ENDIF
  31.    ENDIF
  32.    
  33.    _arraynumb = 1
  34.    DO CASE
  35.    CASE PCOUNT() = 1 .OR. PCOUNT() = 0   && Only the file area/name
  36.       _arraynumb = FCOUNT() 
  37.    CASE PCOUNT() = 3
  38.       _arraynumb = _arrayc
  39.    OTHERWISE
  40.       IF TYPE("_arrayb") = "C"    && IF a field name ELSE a field number
  41.          _bfields = ""
  42.          FOR _qaz = 1 TO FCOUNT()
  43.             _bfields = _bfields + Fill_out(FIELDNAME(_qaz), 10)
  44.          NEXT
  45.          _start = (AT(UPPER(Fill_out(_arrayb, 10)), _bfields) + 9) / 10
  46.          IF _start <= 1
  47.             _start = 1
  48.          ENDIF
  49.       ELSE
  50.          _start = _arrayb
  51.       ENDIF
  52.  
  53.       _arraynumb = FCOUNT() - _start + 1
  54.  
  55.    ENDCASE
  56.  
  57.    IF !EMPTY(_arraya)
  58.       IF LEN(_arraya) > 1
  59.          CLOSE DATABASE
  60.       ENDIF
  61.       SELECT (_retto)
  62.    ENDIF
  63.    RETURN(_arraynumb)
  64.  
  65. * End of File
  66.