home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / database / dbstruct.zip / DBDOC1.TXT < prev   
Text File  |  1990-12-06  |  3KB  |  116 lines

  1. Description of SmartwareII .DB files.
  2. -------------------------------------
  3.  
  4.    BYTES           DESCRIPTION
  5. -------------      ------------------------------------------------------
  6.  2064 - 2067       Number Of Records. X1+(256*X2)+(256^2*X3)+(256^3*X4).
  7.  2080 - 2081       Number Of fields.  X1+(256*X2).
  8. For i = 1 to Number Of Fields. (Starting at 2104)
  9.    2 Bytes         Field Length.  X1+(256*X2).
  10.    2 Bytes         Field Offset   X1+(256*X2).
  11.    1 Bytes         Field Type
  12.                      1=Inverted
  13.                      2=Alpha
  14.                      3=Numeric
  15.                      4=Counter
  16.                      5=Date
  17.                      6=Time
  18.    1 Bytes         Key Field
  19.                      0=Non-KeyField.
  20.                      1=KeyField.
  21.   22 Bytes         Field Name     X1+(256*X2).
  22. End For
  23.  
  24. (2104+
  25. (98*NumOfFields))  Start reading data.
  26.  
  27.  
  28. ----------------------------------------------------------------------------
  29. Global   FieldNames[100]
  30. Global   FieldTypes[100]
  31. Global   FieldLengths[100]
  32.  
  33. Global DbFields()
  34. Global FileName
  35.  
  36. FileName = Upper(Ask("Enter FileName:"))
  37. quiet off
  38. DbFields()
  39.  
  40. Function DbFields()
  41.  Local NumOfFields Ctr
  42.  Local BinHeader BinNumOfFields BinDummy
  43.  Local  BinFieldLength   BinFieldOffset   BinFieldType   BinFieldName
  44.  Local  FieldLength   FieldOffset   FieldType   FieldName
  45.  Local mydata BinData locat
  46.  Local BinRecNum
  47.  Local Recs[4]
  48.  Local TotalRecs
  49.  
  50.   BUFFER BinRecNum         SIZE 1
  51.   BUFFER BinHeader         SIZE 2080
  52.   BUFFER BinNumOfFields    SIZE 2
  53.   BUFFER BinDummy          SIZE 22
  54.   BUFFER BinData           SIZE 22
  55.  
  56.   BUFFER BinFieldLength    SIZE 2
  57.   BUFFER BinFieldOffset    Size 2
  58.   BUFFER BinFieldType      Size 2
  59.  
  60.   BUFFER BinFieldName      Size 22
  61.  
  62. clear recs[]
  63.  
  64. Fopen FileName as 1
  65.  
  66.     Fseek 1 2064
  67.     For Ctr = 1 to 4
  68.       Fread 1 Binary 1 Into BinRecNum
  69.       UnPack BinRecNum "B" Recs[Ctr]
  70.     End For
  71.     TotalRecs = Recs[1] + (256*Recs[2]) + (256^2*Recs[3]) + (256^3*Recs[4])
  72.  
  73.     Fseek 1 2080
  74.     Fread 1 Binary 2 Into BinNumOfFields
  75.     UnPack BinNumOfFields "B" NumOfFields
  76.     Fread 1 Binary 22 Into BinDummy
  77.  
  78. For Ctr = 1 to NumOfFields
  79.     Fread 1 Binary 2 Into BinFieldLength
  80.     UnPack BinFieldLength "B" FieldLengths[Ctr]
  81.     Fread 1 Binary 2 Into BinFieldOffset
  82.     UnPack BinFieldLength "B" FieldOffset
  83.     Fread 1 Binary 2 Into BinFieldType
  84.     UnPack BinFieldType "B" FieldTypes[Ctr]
  85.     Fread 1 Binary 22 Into BinFieldName
  86.     UnPack BinFieldName "S" FieldNames[Ctr]
  87. '    All = All & fieldname
  88. End For
  89.  
  90.   locat = (2104+(98*NumOfFields))
  91.   Fseek 1 locat+4+NumOfFields
  92. For Ctr = 1 to TotalRecs
  93.   Fread 1 Binary FieldLengths[1] Into BinData
  94.   UnPack BinData "S" MyData
  95.   message mydata
  96.   Fread 1 Binary FieldLengths[2] Into BinData
  97.   UnPack BinData "B" MyData
  98.   Fread 1 Binary 6 Into BinData
  99. '  message FieldLengths[Ctr]
  100.  
  101. End For
  102.  
  103. fclose 1
  104.  
  105. End Function
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.