home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / turbopas / tp / utl2 / dbase2.pzs / DBASE2.PAS
Pascal/Delphi Source File  |  1994-07-23  |  3KB  |  90 lines

  1.  Program Read_Dbase2;
  2.    (*  This program will switch a DBase2 file to Pascal
  3.             To use the program it will be required to change
  4.             the    1)  Record description,
  5.                    2)  File Names,
  6.                    3)  DbaseSize  constant,   and
  7.                    4)  Copy statements at the end of the program.
  8.  
  9.         Written by:
  10.            Jerry Kevorkian   IBM Connection  VA Beach
  11.                              (804) 481-1824
  12.                              CompuServe  75236,711       *)
  13.  
  14.  Const
  15.    DbaseSize  = 99;                (* Size of the Dbase Records *)
  16.    InName     = 'TESTFILE.DBF';    (* Name of the Dbase2 File here *)
  17.    OutName    = 'CLIENT.FIL';      (* Name of the Pascal File here *)
  18.  Type
  19.        (* The Record Description for Pascal must be
  20.                           1
  21.          Character Shorter than the Dbase2 Definition of that record.
  22.  
  23.          The following record was defined in DBase2 as:
  24.  
  25.                FLD       NAME      TYPE WIDTH   DEC
  26.                001     FNAME        C    020
  27.                002     LNAME        C    015
  28.                003     ADDRESS      C    035
  29.                004     CITY         C    020
  30.                005     STATE        C    002
  31.                006     ZIP:CODE     C    005
  32.                007     SITE         C    001
  33.                ** TOTAL **             00099                *)
  34.  
  35.  
  36.    Dbase2Rec = Record
  37.                  FirstName : String[20];
  38.                  LastName  : String[15];
  39.                  Address   : String[35];
  40.                  City      : String[20];
  41.                  State     : String[2];
  42.                  ZipCode   : String[5];
  43.                  Site      : String[1];
  44.                end;
  45.  
  46.  Var
  47.   Drec         : Dbase2Rec;
  48.   Infile       : Text;
  49.   Outfile      : File of Dbase2Rec;
  50.   Inbuf        : String[DbaseSize];
  51.   I            : integer;
  52.   Ch           : Char;
  53.  
  54. Begin
  55.  Assign(Infile,InName);
  56.  Reset(Infile);
  57.  Assign(Outfile,OutName);
  58.  Rewrite(Outfile);
  59.  For I := 1 to 522 do             (* Despose of Dbase2 Header Record *)
  60.  Begin
  61.    Read(Infile,Ch);
  62.  end;
  63.  I := 0;                          (* Keep Track of Record Count *)
  64.  TextMode(BW80);                  (* Force Black/White..Fair for all *)
  65.  Gotoxy(30,12);
  66.  Write('RECORD COUNT');
  67.  While Not Eof(Infile) do         (* Read all the Remaining as DATA *)
  68.  Begin
  69.    Read(Infile,Inbuf);            (* Read Records in now and write them out *)
  70.    With Drec do
  71.    Begin
  72.          (* Be sure to count the Depth into Inbuf Correct!
  73.                     ****  Be Sure to Change These for your  *****
  74.                     ****  Record Description                ***** *)
  75.      FirstName := Copy(Inbuf,01,20);    (*Move Field*)
  76.      LastName  := Copy(Inbuf,21,15);    (*Move Field*)
  77.      Address   := Copy(Inbuf,36,35);    (*Move Field*)
  78.      City      := Copy(Inbuf,71,20);    (*Move Field*)
  79.      State     := Copy(Inbuf,91,02);    (*Move Field*)
  80.      ZipCode   := Copy(Inbuf,93,05);    (*Move Field*)
  81.      Site      := Copy(Inbuf,98,01);    (*Move Field*)
  82.    End;  (* of Mass Move *)
  83.    Write(Outfile,Drec);            (* Write Pascal Record out now *)
  84.    I := I + 1;
  85.    Gotoxy(40,13);
  86.    Write(I:8);                     (* Let the caller Know how many Written *)
  87.  end;
  88.  Close(Infile);
  89.  Close(Outfile);
  90. end.