home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
clarion
/
brokcode.zip
/
READHD2.EXE
/
lha
/
READHDR.CLA
< prev
next >
Wrap
Text File
|
1989-04-13
|
9KB
|
230 lines
READHDR PROGRAM !READ CLARION FILE HEADER
OMIT('** ENDH **')
╔══════════════╦═══════════════════════════════════════════════════════════════╗
║ READHDR.CLA ║ Reads a CLARION file header and displays the Header info and ║
║ ║ the Record Descriptors. Also need file "FILEDEF.CPY" ║
║ Written By ║ Greg Wilder 8/11/88 ║
║ Revised ║ 8/15/88 by GSW - added ability to print ║
║ ║ 10/30/88 by Russ Eggen - now reports true start locations ║
╚══════════════╩═══════════════════════════════════════════════════════════════╝
** ENDH **
INCLUDE('FILEDEF.CPY'),LIST ! CLARION FILE HEADER DEFINITIONS
MAP
MODULE('READHDR1') ! PRINT A REPORT TO PRINTER
PROC(HEADLIST)
. .
F10_KEY EQUATE(2058) ! ALERT KEY FOR PRINT REPORT
FNAME STRING(25) ! Filename
BYPTR BYTE ! Misc Pointer
SAVE_PTR LONG ! TEMPORARY FILE POINTER STORAGE
BITARR STRING(1),DIM(8)
BITSTR STRING(8),OVER(BITARR)
MESSAGE STRING(30) ! GLOBAL MESSAGE AREA
SCREEN SCREEN PRE(SCR),HUE(7,1)
OMIT('**-END-**')
╔══════════════════════════ CLARION FILE HEADER INFO ═══════╦══════════════════╗
║ ║ F10-PRINT REPORT ║
║ ENTER FILENAME : ■■■■■■■■■■■■■■■■■■■■■■■■■ ╚══════════════════╣
╟──────────────────────────────────────────────────────────────────────────────╢
║ File Signature ##### Date of Last Change mm/dd/yy ║
║ File Attributes ■■■■■■■■ Time of Last Change hh:mmXM ║
║ Number of KEYS ## ║
║ Number of RECORDS <,<<<,<<# ║
║ Number of DELETES <,<<<,<<# ║
║ Number of FIELDS <,<<# FIELD DESCRIPTOR ║
║ Number of PICTURES <,<<# <<# of <<# ║
║ Number of ARRAYS <,<<# ──────────────────────────── ║
║ Record LENGTH <,<<# Name ■■■■■■■■■■■■■■■■ ║
║ Start of DATA <,<<<,<<# Type ■■■■■■■ ║
║ Logical EOF <,<<<,<<# Offset <,<<# ║
║ Logical BOF <,<<<,<<# Length <,<<# ║
║ 1st Usable FreeREC <,<<<,<<# Dec Sig <<# ║
║ RECORD Name ■■■■■■■■■■■■ No of Dec <<# ║
║ MEMO Name ■■■■■■■■■■■■ Array No. <,<<# ║
║ FILENAME Prefix ■■■ Pic No. <,<<# ║
║ RECORD Prefix ■■■ ║
║ Size of Memo <,<<# ║
║ Column WIDTH of Memo <,<<# ║
║ Press any Key ║
╚══════════════════════════════════════════════════════════════════════════════╝
**-END-**
ROW(5,30) PAINT(19,14),HUE(0,7)
ROW(7,44) PAINT(17,2),HUE(7,0)
ROW(24,32) PAINT(1,14),HUE(7,0)
ROW(5,44) PAINT(2,33),HUE(0,7)
ROW(7,46) PAINT(1,31),HUE(7,0)
ROW(6,77) PAINT(2,2),HUE(7,0)
ROW(9,49) PAINT(13,28),HUE(7,4)
ROW(10,77) PAINT(12,2),HUE(7,0)
ROW(22,51) PAINT(1,28),HUE(7,0)
ROW(10,54) PAINT(1,16),HUE(14,4)
ROW(1,1) STRING('╔═{26}<0{26}>═{7}╦═{18}╗')
ROW(2,1) STRING('║<0{59}>║<0{18}>║')
ROW(3,1) STRING('║<0{59}>╚═{18}╣')
ROW(4,1) STRING('╟─{78}╢')
ROW(5,1) REPEAT(20);STRING('║<0{78}>║') .
ROW(25,1) STRING('╚═{78}╝')
ROW(12,49) STRING('─{28}')
ROW(1,29) STRING('CLARION FILE HEADER INFO'),HUE(14,1)
ROW(2,19) STRING(' '),HUE(11,1)
COL(62) STRING(' F10-PRINT REPORT '),HUE(15,4)
ROW(5,6) STRING('File Signature'),HUE(11,1)
COL(47) STRING('Date of Last Change')
ROW(6,6) STRING('File Attributes'),HUE(11,1)
COL(47) STRING('Time of Last Change')
ROW(7,6) STRING('Number of KEYS'),HUE(11,1)
ROW(8,6) STRING('Number of RECORDS'),HUE(11,1)
ROW(9,6) STRING('Number of DELETES'),HUE(11,1)
ROW(10,6) STRING('Number of FIELDS'),HUE(11,1)
COL(54) STRING('FIELD DESCRIPTOR')
ROW(11,6) STRING('Number of PICTURES'),HUE(11,1)
COL(60) STRING('of')
ROW(12,6) STRING('Number of ARRAYS'),HUE(11,1)
ROW(13,6) STRING('Record LENGTH'),HUE(11,1)
COL(50) STRING('Name')
ROW(14,6) STRING('Start of DATA'),HUE(11,1)
COL(50) STRING('Type')
ROW(15,6) STRING('Logical EOF'),HUE(11,1)
COL(50) STRING('Offset')
ROW(16,6) STRING('Logical BOF'),HUE(11,1)
COL(50) STRING('Length')
ROW(17,6) STRING('1st Usable FreeREC'),HUE(11,1)
COL(50) STRING('Dec Sig')
ROW(18,6) STRING('RECORD Name'),HUE(11,1)
COL(50) STRING('No of Dec')
ROW(19,6) STRING('MEMO Name'),HUE(11,1)
COL(50) STRING('Array No.')
ROW(20,6) STRING('FILENAME Prefix'),HUE(11,1)
COL(50) STRING('Pic No.')
ROW(21,6) STRING('RECORD Prefix'),HUE(11,1)
ROW(22,6) STRING('Size of Memo'),HUE(11,1)
ROW(23,6) STRING('Column WIDTH of Memo'),HUE(11,1)
ROW(24,57) STRING(' Press any Key '),HUE(15,4)
ROW(3,3) STRING('ENTER FILENAME :'),HUE(11,1)
COL(20) ENTRY(@S25),USE(FNAME),SEL(15,0),INS,REQ,IMM,LFT
FILESIG ROW(5,35) STRING(@p#####p),HUE(0,7)
BITSTR ROW(6,33) STRING(8),HUE(0,7)
NUMBKEYS ROW(7,38) STRING(@p##p),HUE(0,7)
NUMRECS ROW(8,31) STRING(@N9),HUE(0,7)
NUMDELS ROW(9,31) STRING(@N9),HUE(0,7)
NUMFLDS ROW(10,35) STRING(@N5),HUE(0,7)
NUMPICS ROW(11,35) STRING(@N5),HUE(0,7)
NUMARRS ROW(12,35) STRING(@N5),HUE(0,7)
RECLEN ROW(13,35) STRING(@N5),HUE(0,7)
OFFSET ROW(14,31) STRING(@N9),HUE(0,7)
LOGEOF ROW(15,31) STRING(@N9),HUE(0,7)
LOGBOF ROW(16,31) STRING(@N9),HUE(0,7)
FREEREC ROW(17,31) STRING(@N9),HUE(0,7)
RECNAM ROW(18,31) STRING(12),HUE(0,7)
MEMNAM ROW(19,31) STRING(12),HUE(0,7)
FILPRE ROW(20,31) STRING(3),HUE(0,7)
RECPRE ROW(21,31) STRING(3),HUE(0,7)
MEMOLEN ROW(22,35) STRING(@N5),HUE(0,7)
MEMOWID ROW(23,35) STRING(@N5),HUE(0,7)
CHGDATE ROW(5,68) STRING(@D1),HUE(0,7)
CHGTIME ROW(6,69) STRING(@T3),HUE(0,7)
DESCNO ROW(11,56) STRING(@N3),HUE(0,7)
NUMFLDS1 COL(63) STRING(@N3),HUE(0,7)
FLDTYPE ROW(14,60) STRING(7),HUE(0,7)
FLDNAME ROW(13,60) STRING(16),HUE(0,7)
FOFFSET ROW(15,60) STRING(@N5),HUE(0,7)
LENGTH ROW(16,60) STRING(@N5),HUE(0,7)
DECSIG ROW(17,60) STRING(@N3),HUE(0,7)
DECDEC ROW(18,60) STRING(@N3),HUE(0,7)
ARRNUM ROW(19,60) STRING(@N5),HUE(0,7)
PICNUM ROW(20,60) STRING(@N5),HUE(0,7)
.
CODE
OPEN(SCREEN) ! Display screen
GETFNAME ! Get Clarion Filename
ACCEPT
OPEN(FILEHEAD) ! File NOT Found...
IF ERRORCODE()=2 THEN
BEEP
SELECT(1)
GOTO GETFNAME
.
GET(FILEHEAD,1) ! read header
SCR:FILESIG = FHE:FILESIG
SCR:NUMBKEYS = FHE:NUMBKEYS
SCR:NUMRECS = FHE:NUMRECS
SCR:NUMDELS = FHE:NUMDELS
SCR:NUMFLDS = FHE:NUMFLDS
SCR:NUMFLDS1 = FHE:NUMFLDS
SCR:NUMPICS = FHE:NUMPICS
SCR:NUMARRS = FHE:NUMARRS
SCR:RECLEN = FHE:RECLEN
SCR:OFFSET = FHE:OFFSET + 5 ! ADD 5 BYTES TO OFFSET
SCR:LOGEOF = FHE:LOGEOF
SCR:LOGBOF = FHE:LOGBOF
SCR:FREEREC = FHE:FREEREC
SCR:RECNAM = FHE:RECNAM
SCR:MEMNAM = FHE:MEMNAM
SCR:FILPRE = FHE:FILPRE
SCR:RECPRE = FHE:RECPRE
SCR:MEMOLEN = FHE:MEMOLEN
SCR:MEMOWID = FHE:MEMOWID
SCR:CHGDATE = FHE:CHGDATE
SCR:CHGTIME = FHE:CHGTIME
LOOP BYPTR = 1 TO 8 ! File Attributes
FHE:SFATR=BSHIFT(FHE:SFATR,-1)
IF BAND(FHE:SFATR,01H) THEN BITARR[BYPTR]='1'
ELSE BITARR[BYPTR]='0'.
.
SCR:BITSTR = BITSTR
CLOSE(FILEHEAD) ! Close Header Part
!══════════════════ NOW PROCESS THE RECORD DESCRIPTORS ═════════════════════════
OPEN(RECHEAD) ! open again for Rec Descript
SET(RECHEAD,86) ! Start at byte 86
BYPTR=1
ALERT(F10_KEY) ! Alert for Print Report
! Do for No. of Fields
LOOP FHE:NUMFLDS TIMES
NEXT(RECHEAD)
SCR:DESCNO = BYPTR
scr:fldname = rhe:fldname
scr:foffset = rhe:foffset + 1 ! ADD 1 BYTE TO REPORT TRUE
! OFFSET
scr:length = rhe:length
scr:decsig = rhe:decsig
scr:decdec = rhe:decdec
scr:arrnum = rhe:arrnum
scr:picnum = rhe:picnum
EXECUTE RHE:FLDTYPE ! Display Field Type of ...
SCR:FLDTYPE='LONG ' ! 1
SCR:FLDTYPE='REAL ' ! 2
SCR:FLDTYPE='STRING ' ! 3
SCR:FLDTYPE='PICTURE' ! 4
SCR:FLDTYPE='BYTE ' ! 5
SCR:FLDTYPE='SHORT ' ! 6
SCR:FLDTYPE='GROUP ' ! 7
SCR:FLDTYPE='DECIMAL' ! 8
.
ASK ! Pause Between Rec Descripts
IF KEYCODE()=F10_KEY THEN ! HOT KEY TO THE REPORT
SAVE_PTR=POINTER(RECHEAD) ! SAVE CURRENT LOCATION
HEADLIST ! PRINT THE REPORT
SET(RECHEAD,SAVE_PTR) ! RESTORE THE POINTER
NEXT(RECHEAD) ! POINT TO THE NEXT RECORD
ASK ! PAUSE
.
BYPTR+=1
.
RETURN