|
|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 2496 (0x9c0)
Types: TextFile
Notes: Mikados_K
Names: »ICLOSE.K«
└─⟦eb89399bc⟧ Bits:30008990 SOM ISFORIG, MEN KUN K-FILER
└─⟦this⟧ »ICLOSE.K«
PROCEDURE ICLOSE(VAR ZO:ISFHEAD;VAR F:ISF);
VAR I:INTEGER;
BEGIN
IER:=0;
WITH ZO DO
IF FILEOPEN THEN
BEGIN
IF NOT FILEINIT AND (RECINUSE>0) THEN
BEGIN
FILEINIT:=TRUE;
INITREC:=RECINUSE
END;
IF UPSTAT=SKRIV THEN
BEGIN
IF BLKCHG THEN
BEGIN
COPSEGS(Z,F,Z(BLT+(BLKINZONE-1)*ENTRYSIZE),BLKSIZE,BLK,SKRIV);
IF IER<>0 THEN EXIT(ICLOSE)
END;
IF BLTCHG THEN
BEGIN
COPSEGS(Z,F,Z(BUT+(BUCINZONE-1)*ENTRYSIZE),BLTSIZE,BLT,SKRIV);
IF IER<>0 THEN EXIT(ICLOSE)
END;
IF BUTCHG THEN
BEGIN
COPSEGS(Z,F,2,BUTSIZE,BUT,SKRIV);
IF IER<>0 THEN EXIT(ICLOSE)
END;
FILEOPEN:=FALSE;
F^(1):=NBUC;
F^(2):=NBLK;
F^(3):=NREC;
F^(4):=BLKPRBUC;
F^(5):=RECPRBUC;
F^(6):=RECPRBLK;
F^(7):=KEYFLDS;
F^(8):=FLHSIZE;
F^(9):=BUTSIZE;
F^(10):=BLTSIZE;
F^(11):=BLKSIZE;
F^(12):=RECSIZE;
F^(13):=KEYSIZE;
F^(14):=SEGINFLH;
F^(15):=SEGINBUT;
F^(16):=SEGINBUC;
F^(17):=SEGINBLT;
F^(18):=SEGINBLK;
F^(19):=INITREC;
F^(20):=BUCINUSE;
F^(21):=BLKINUSE;
F^(22):=RECINUSE;
IF FILEINIT THEN F^(23):=1 ELSE F^(23):=0;
IF FILEOPEN THEN F^(24):=1 ELSE F^(24):=0;
FOR I:=1 TO 9 DO
BEGIN
F^(22+I*3):=KEYPOS(I);
F^(23+I*3):=KEYLNG(I);
F^(24+I*3):=KEYSGN(I)
END;
SEEK(F,1);
IF IORESULT<>0 THEN BEGIN IER:=IORESULT;EXIT(ICLOSE) END;
PUT(F);
IF IORESULT<>0 THEN BEGIN IER:=IORESULT;EXIT(ICLOSE) END;
END;
CLOSE(F);
IF IORESULT<>0 THEN BEGIN IER:=IORESULT;EXIT(ICLOSE) END;
FILEOPEN:=FALSE
END
ELSE IER:=-3
END;