home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / TABUG.ZIP / BUILD.PAS next >
Encoding:
Pascal/Delphi Source File  |  1988-03-18  |  1.8 KB  |  67 lines

  1. program build; {build index files using tacess}
  2.  
  3. uses
  4. dos,crt,taccess,printer;
  5.  
  6. TYPE
  7. ketstr = string[1];
  8. IP_rec = record                    {test data generated by TESTDATA.PAS}
  9.   state     : byte;
  10.   dummmy    : array[1..3] of char;
  11.   items   : longint;
  12.   crlf    : array[1..2] of char;
  13.   end;{IP_rec}
  14.  
  15. DataRec = record                   {data rec for TACESS datafile}
  16.   RecStatus : longint;
  17.   dstate     : byte;
  18.   unused     : array[1..3] of byte;
  19.   dcount     : longint;
  20.   ddummy     : integer;
  21.   end;{DataRec}
  22.  
  23. MaxDataType = DataRec;             {these were used}
  24. MaxKeyType  = ketstr;              {with TABUILD}
  25.  
  26. VAR
  27. IP       : file of IP_rec;
  28. Ibuff    : IP_rec;
  29. Obuff    : DataRec;
  30. TestFile : DataFile;
  31. StateIdx : IndexFile;
  32. recnum   : longint;
  33. newkey   : string[1];
  34. total    : array[0..52] of longint;
  35. c        : byte;
  36.  
  37. {***************************
  38.          main
  39. ***************************}
  40. BEGIN
  41. newkey := ' ';
  42. fillchar(total,sizeof(total),0);
  43. assign(IP,'testdata.new'); reset(IP);
  44. MakeFile(TestFile,'tatest.dat',sizeof(DataRec));
  45. MakeIndex(StateIdx,'state.idx',1,duplicates);     {dupes allowed}
  46.  
  47. while not eof(IP) do begin
  48.   read(IP,ibuff);
  49.   with Ibuff do begin            {put IP data into new data rec}
  50.     Obuff.RecStatus := 0;
  51.     Obuff.dstate    := state;
  52.     Obuff.dcount    := items;
  53.     total[state] := total[state] + items;
  54.     end;{with}
  55.   AddRec(TestFile,recnum,Obuff);    {add to datafile}
  56.   newkey[1] := char(Obuff.dstate);  {put key in string}
  57.   AddKey(StateIdx,recnum,newkey);   {add to index}
  58.   end;{while}
  59. close(IP);
  60. flushfile(TestFile);
  61. closefile(TestFile);
  62. flushindex(StateIdx);
  63. closeindex(StateIdx);
  64. for c := 0 to 52 do                 {dump totals}
  65.   writeln(lst,'state ',c,' total is ',total[c]:8);
  66. END.
  67.