DELETE DISK_USE_RECORD;1; REDEFINE RECORD DISK_USE_RECORD OPTIMIZE 01 DISK_USE_REC. ! ! Bart Z. Lederman (so long ago I don't remember the date) ! ! The first byte is a record type. ! 10 TYPE USAGE BYTE. ! ! This "covers" all of the data. The reason is that if this wasn't ! here an you just did a "PRINT" or "LIST" of the domain, at least ! some of the records would return errors. ! 10 COVERUP. 20 FILLER PIC X(255). ! ! There is a record that has volume information. ! 10 IDENTIFICATION REDEFINES COVERUP. 20 SERIAL_NUMBER USAGE LONG. 20 STRUCTURE_NAME PIC X(12). 20 VOLUME_NAME PIC X(12). 20 OWNER_NAME PIC X(12). 20 FORMAT PIC X(12). 20 CREATION_DATE USAGE DATE. 20 CREATION_TIME COMPUTED BY FN$TIME(CREATION_DATE). ! ! This is the major portion of the data: one record per file on the volume. ! 10 FILE_RECORD REDEFINES COVERUP. 20 FILEOWNER USAGE LONG. ! ! If you have added the FN$FAO function to Datatrieve, the following ! fields make the file owner easier to read. ! !! 20 NUMERIC COMPUTED BY FN$FAO("!%U", FILEOWNER, 0,0,0,0,0,0,0) !! EDIT_STRING X(24). !! 20 IDENTIFIER COMPUTED BY FN$FAO("!%I", FILEOWNER, 0,0,0,0,0,0,0) !! EDIT_STRING X(24). 20 ALLOCATED USAGE LONG EDIT_STRING ZZ,ZZZ,ZZ9. 20 ALLOC COMPUTED BY ALLOCATED - 1 EDIT_STRING ZZ,ZZZ,ZZ9. 20 USED USAGE LONG EDIT_STRING ZZ,ZZZ,ZZ9. 20 DIR_LEN USAGE WORD. 20 SPEC_LEN USAGE WORD. 20 FILESPEC PIC X(96) EDIT_STRING T(76). ! ! The following separate the directory and file portions of ! the file specification. ! 20 DIRECTORY COMPUTED BY FORMAT FN$STR_EXTRACT(FILESPEC, 1, DIR_LEN) USING X(64) EDIT_STRING T(64). 20 FILE_SPEC COMPUTED BY FORMAT FN$STR_EXTRACT(FILESPEC, (DIR_LEN + 1), SPEC_LEN) USING X(64) EDIT_STRING T(40). ; DELETE DISK_USE_REPORT; REDEFINE PROCEDURE DISK_USE_REPORT REPORT DISK_USE WITH TYPE = 2 SORTED BY FILESPEC ON *."file name" AT BOTTOM OF DIRECTORY PRINT COL 1, TOTAL(ALLOCATED) USING ZZZ,ZZ9, SPACE 1, DIRECTORY USING T(64) AT BOTTOM OF REPORT PRINT SKIP, TOTAL(ALLOCATED) USING ZZZ,ZZ9 END_REPORT END_PROCEDURE