home *** CD-ROM | disk | FTP | other *** search
- MODULE STRUCTURE;
-
- (*
- Written by Dexter (Chip) Orange October, 1989.
-
- I'm afraid this is a rather hastily thrown together demo to give you
- some assistance in using the dBASE module of the TurboFile system. What it
- does is to print out the structure of a dBASE database.
-
-
- *)
-
-
- FROM dBASE IMPORT
- dBASEHeaderRec, Use, DataRecordPtr;
- FROM RandomIO IMPORT
- RandomFile, CloseRandomFile, RandomFileMode;
- FROM InOut IMPORT
- Write, WriteString, WriteLn, ReadString, WriteCard;
-
-
-
- VAR
- FN: ARRAY [0..80] OF CHAR;
- F: RandomFile;
- I,N, RL, TOTAL: CARDINAL;
- H: dBASEHeaderRec;
- DR: DataRecordPtr;
-
-
-
- BEGIN
- TOTAL := 0;
- WriteString('enter dBASE file name');
- ReadString(FN);
- WriteLn;
- DR := DataRecordPtr(1);
- (* KEEP USE FROM ALLOCATING ONE *)
- IF (Use(FN, H, F, ReadOnly, N, RL, 0, DR)) THEN
- WriteString(' record size is ');
- WriteCard(RL, 3);
- WriteLn;
- FOR I := 1 TO N DO
- WITH H DO
- WITH FieldList[I] DO
- WriteCard(I, 2);
- Write(' ');
- WriteString(FieldName);
- Write(' ');
- Write(FieldType);
- Write(' ');
- WriteCard(CARDINAL(FieldLength), 3);
- Write(' ');
- WriteLn;
- TOTAL := TOTAL+CARDINAL(FieldLength);
- END;
- (* WITH FIELDLIST *)
- END;
- (* WITH H *)
- END;
- (* FOR *)
- WriteString(' ** total ** ');
- WriteCard(TOTAL,3);
- WriteLn;
- CloseRandomFile(F);
- END;
- (* IF *)
- END STRUCTURE.
-