|
|
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: »FINDPOST.K«
└─⟦5630b2e42⟧ Bits:30009005 START APRIL 1985 aft april 1985 (PASCAL kildetekster)
└─⟦this⟧ »FINDPOST.K«
└─⟦6c21327e0⟧ Bits:30008986 LINIMATIC K-FILER (IKKE HELT UPTODTATE)
└─⟦this⟧ »FINDPOST.K«
(*$P*)
PROCEDURE FINDPOST(VAR F:ISF);
VAR NUM,I,X,PEG:INTEGER;
BEGIN
WITH FILEHEAD(CURRHEAD) DO
BEGIN
REXTRACT(KEY1);
X:=-1;
I:=1;
REPEAT
IF Z((I-1)*ENTRYSIZE+BUT+1)>0 THEN
BEGIN
PEG:=I;
X:=COMPARE((I-1)*ENTRYSIZE+BUT+2,KEY1)
END;
I:=I+1
UNTIL (I>NBUC) OR (X>=0);
IF X<0 THEN
BEGIN
READTABLE(F,PEG);
FOR PEG:=BLKPRBUC DOWNTO 1 DO
IF Z((PEG-1)*ENTRYSIZE+BLT+1)>0 THEN
BEGIN
READBLOCK(F,PEG,1);
BLKENTRY:=1+Z((PEG-1)*ENTRYSIZE+BLT+1);
IER:=-1;
EXIT(FINDPOST)
END;
IER:=-100;EXIT(UDFØR)
END ELSE
BEGIN
READTABLE(F,PEG);
I:=BLT+1;
PEG:=0;
X:=-1;
REPEAT
IF PEG=BLKPRBUC THEN BEGIN IER:=-101;EXIT(UDFØR) END;
NUM:=Z(I);
PEG:=PEG+1;
IF NUM>0 THEN
BEGIN
X:=COMPARE(I+1,KEY1);
IF X>=0 THEN
READBLOCK(F,PEG,1);
END;
I:=I+ENTRYSIZE
UNTIL X>=0;
I:=0;
REPEAT
I:=I+1;
IF I>NUM THEN BEGIN IER:=-102;EXIT(UDFØR) END;
EXTRACT(BLK+(I-1)*RECSIZE,KEY2);
X:=COMPARE(KEY2,KEY1)
UNTIL X>=0;
IF X=0 THEN IER:=0 ELSE IER:=-1;
BLKENTRY:=I
END
END
END;