?PROCEDURE OWRITE(VAR OWZH:ISFHEAD;VAR OWF:ISF;NR1,NR2:INTEGER);? BEGIN  REWRITE(OWF,FILEN(NR1));  OWZH.FILENAME:=FILER(NR1);  IOPEN(OWZH,OWF,NR2);&  IF IER<>0 THEN OFEJL(OWZH.FILENAME);&END;PROCEDURE ]BEN;BEGIN  CLEARSCREEN;  FNAVN:=':P2:0000:I';%  FILEN(1):=CONCAT('KOMBINAT',FNAVN);%#  FILEN(2):=CONCAT('VINDUE',FNAVN);#"  FILEN(3):=CONCAT('KARME',FNAVN);""  FILEN(4):=CONCAT('FARVE',FNAVN);"#  FILEN(5):=CONCAT('OLINIE',FNAVN);#$  FILEN(6):=CONCAT('OPSPLIT',FNAVN);$!  FILEN(7):=CONCAT('GLAS',FNAVN);!#  FILEN(8):=CONCAT('PROFIL',FNAVN);#%  FILEN(9):=CONCAT('TILBEH\R',FNAVN);%#  FILEN(10):=CONCAT('RAMME',FNAVN);#$  FILEN(11):=CONCAT('POSTER',FNAVN);$&  FILEN(12):=CONCAT('FORST[RK',FNAVN);&$  FILEN(13):=CONCAT('BREGEL',FNAVN);$     FILER(1):='KOMBINAT';  FILER(2):='VINDUE  ';  FILER(3):='KARME   ';  FILER(4):='FARVE   ';  FILER(5):='OLINIE  ';  FILER(6):='OPSPLIT ';  FILER(7):='GLAS    ';  FILER(8):='PROFIL  ';  FILER(9):='TILBEH\R';  FILER(10):='RAMME   ';  FILER(11):='POSTER  ';  FILER(12):='FORST[RK';  FILER(13):='BREGEL  ';   OWRITE(OLIZ.H,OLIF,5,L[S);  OWRITE(GLAZ.H,GLAF,7,L[S);  OWRITE(PROZ.H,PROF,8,L[S);  OWRITE(TILZ.H,TILF,9,L[S);  OWRITE(RAMZ.H,RAMF,10,L[S);  OWRITE(POSZ.H,POSF,11,L[S);  OWRITE(FORZ.H,FORF,12,L[S);  OWRITE(BREZ.H,BREF,13,L[S);END; !PROCEDURE CHECKBH (VAR  BH:AR13);!BEGIN5  IF(BH(3)>0)AND((BH(2)=0)OR(BH(1)=0)) THEN FEJL (1);5)  IF((BH(2)>0)AND(BH(1)=0)) THEN FEJL (1))END;  PROCEDURE INITPOST; BEGINWITH OPSPLIT DOBEGIN  ORDRENR:=OLINIE.ORDRENR;	  TYP:=0;	  POSITION:=OLINIE.POSITION;  RAMMENR:=0;  PLACER:=0;  ANTAL:=OLINIE.ANTAL;  TYPENR:=NULLER;  FARVE:=0;  FTYPE:=NULLER;  FL[NGDE:=0;  SL[NGDE:=0;  BESLAGNR:=0;  H[NGSEL:=0;  GUMMI1:=NULLER;  GUMMI2:=NULLER;  STATUS:=OLINIE.STATUS;END;END;  GPROCEDURE BESTEMFARVE(VAR FAK1,FAK2,FAN1,FAN2:INTEGER;VAR FIL:FILNAVN);G TYPE FARVEZONE=RECORD               H:ISFHEAD;.               T:ARRAY(1..MFARVEZ) OF INTEGER;.	     END;	      FARVEPOST=RECORD               AA:ARAR;               A:AR;               AAA:RAR;               NR,               KODE:INTEGER;               TEKST:TEK;	     END;	VAR  FARF:ISF;     FARZ:FARVEZONE;     FARVE:FARVEPOST; BEGIN  WITH FARVE DO  BEGIN    OWRITE(FARZ.H,FARF,4,L[S);    NR:=OLINIE.FARVE1;    GETREC(FARZ.H,FARF,A);*    IF IER <> 0 THEN IOF(FARZ.H.FILENAME);*    FAK1:=KODE;FAN1:=NR;(    IF OLINIE.FARVE1<>OLINIE.FARVE2 THEN(	    BEGIN	      NR:=OLINIE.FARVE2;      GETREC(FARZ.H,FARF,A);)      IF IER<>0 THEN IOF(FARZ.H.FILENAME))    END;    FAK2:=KODE;FAN2:=NR;    ICLOSE(FARZ.H,FARF);  END;END;  PROCEDURE BESTEMFORST[RKNING; BEGIN  REGELNR:=3;  IF OLINIE.MONTER=0 THEN  BEGIN    REGELNR:=2;    IF FAKODE=0 THEN REGELNR:=1  END;END;  PROCEDURE ST[RKNING; TYPE ST[RKPOST=RECORD               AA:ARAR;               A:AR;               AAA:RAR;               NR:INTEGER;               GR[NSE,               TYP:AR15;               FRADRAG,               KONSTANT,               AFRUND:INTEGER;
      END;
 VAR ST[RK:ST[RKPOST; BEGINWITH ST[RK DOBEGIN  NR:=ST[RKR;  GETREC(FORZ.H,FORF,A);&  IF IER<>0 THEN IOF(FORZ.H.FILENAME);&  I:=1;,  WHILE (GR[NSE(I)<M]L) AND (I<5) DO I:=I+1;,0  L[NGDE:=((M]L - FRADRAG) DIV AFRUND) * AFRUND;0   IF I=1 THEN L[NGDE:= KONSTANT;   TYPER:=TYP(I)END;END;  'PROCEDURE BESLAGNING (VAR NR1:INTEGER);' TYPE BREGELPOST=RECORD                AA:ARAR;                A:AR;                AAA:RAR;                NR:INTEGER;                GR[NSE,                PAKKE:AR19;                TEKST:TEK;	     END;	 VAR  BREGEL:BREGELPOST; BEGINWITH BREGEL DOBEGIN
  NR:=NR1;
  GETREC(BREZ.H,BREF,A);)  IF IER <> 0 THEN IOF(BREZ.H. FILENAME);)  I:=1;-  WHILE (GR[NSE(I) <M]L) AND (I<9) DO I:=I+1;-  TYPE2:=PAKKE(I)END;END;  PROCEDURE BESTEMGLAS; TYPE GLASPOST=RECORD              AA:ARAR;              A:AR;              AAA:RAR;              NR,              KODE:INTEGER;              TEKST:TEK;	     END;	 VAR  GLAS:GLASPOST; BEGINWITH OLINIE DOBEGIN  IF I1=RAMMENR1 THEN    GLASNR:=GLASART1  ELSE    IF I1=RAMMENR2 THEN      GLASNR:=GLASART2    ELSE      GLASNR:=GLASART3;  GLAS.NR:=GLASNR;  GETREC(GLAZ.H,GLAF,GLAS.A);  IF IER=0 THEN    GLASKODE:=GLAS.KODE  ELSE    IOF(GLAZ.H.FILENAME)END;END;  EPROCEDURE GENER(TYP1,TYP2,TYP3,FL,SL,H[:INTEGER;VAR GU1,GU2:DOBBTAL);E TYPE OPSPLITZONE=RECORD                 H:ISFHEAD;1                 T:ARRAY(1..MOPSPLIZ) OF INTEGER;1	     END;	         OPSPLITPOST=RECORD                 AA:ARAR;                 A:AR;                 AAA:RAR;                 ORDRENR,                 TYP,                 POSITION,                 RAMMENR,                 PLACER,                 ANTAL:INTEGER;                  TYPENR:DOBBTAL;                  FARVE:INTEGER;                 FTYPE:DOBBTAL;                 FL[NGDE,                 SL[NGDE,                 BESLAGNR,!                 H[NGSEL:INTEGER;!                 GUMMI1,                  GUMMI2:DOBBTAL;                   STATUS:INTEGER; 	     END;	 VAR  OPSF:ISF;     OPSZ:OPSPLITZONE;     OPSPLIT:OPSPLITPOST; BEGIN  WITH OPSPLIT DO  BEGIN    ORDRENR:=OLINIE.ORDRENR;    TYP:=TYP1;    RAMMENR:=I1;    TYPENR(1):=TYP2;    TYPENR(2):=TYP3;    POSITION:=OLINIE.POSITION;    PLACER:=PLACERING;    ANTAL:=OLINIE.ANTAL;    FARVE:=0;    FTYPE:=NULLER;    FL[NGDE:=FL;    SL[NGDE:=SL;    BESLAGNR:=0;    H[NGSEL:=H[;    GUMMI1:=GU1;    GUMMI2:=GU2;    STATUS:=OLINIE.STATUS;    IF TYP1=1 THEN	    BEGIN	      FARVE:=FANR;      FTYPE:=TYPE1;      BESLAGNR:=TYPE2;    END;     OWRITE(OPSZ.H,OPSF,6,SKRIV);     INSERT(OPSZ.H,OPSF,A);*    IF IER <> 0 THEN IOF(OPSZ.H.FILENAME);*    ICLOSE(OPSZ.H,OPSF);*    IF IER <> 0 THEN IOF(OPSZ.H.FILENAME);*  END;END;  DPROCEDURE HENTKOMBI(VAR KKA:INTEGER;VAR KRA:INTEGER;VAR KPO:INTEGER;D%                    VAR FIL:FILNAVN);% TYPE KOMBIZONE=RECORD               H:ISFHEAD;.               T:ARRAY(1..MKOMBIZ) OF INTEGER;.	     END;	      KOMBIPOST=RECORD               AA:ARAR;               A:AR;               AAA:RAR;               NR,               KARMPROFIL,               POST1,               POST2,               RAMMEPROFIL,                F3PROFIL:INTEGER; 	     END;	 VAR  KOMF:ISF;     KOMZ:KOMBIZONE;     KOMBI:KOMBIPOST; BEGIN  WITH KOMBI DO  BEGIN!    NR:=OLINIE.VINDUENR DIV 1000;!    OWRITE(KOMZ.H,KOMF,1,L[S);    GETREC(KOMZ.H,KOMF,A);(    IF IER<>0 THEN IOF(KOMZ.H.FILENAME);(0    KKA:=KARMPROFIL;KRA:=RAMMEPROFIL;KPO:=POST1;0    ICLOSE(KOMZ.H,KOMF);  END;END;  MPROCEDURE HENTVINDUE(VAR VKA:INTEGER;VAR RAM:AR116;VAR VBE:AR14;VAR VBR:AR13;M3                     VAR VH\:AR13;VAR FIL:FILNAVN);3 TYPE VINDUEZONE=RECORD                H:ISFHEAD;0                T:ARRAY(1..MVINDUEZ) OF INTEGER;0	     END;	      VINDUEPOST=RECORD                AA:ARAR;                A:AR;                AAA:RAR;                NR,                KARMNR,                MAXM]L:INTEGER;                RAMME:AR116;                BESLAG:AR14;                BREDDE,                H\JDE:AR13;                TEKST:TEK;	     END;	 VAR  VINF:ISF;     VINZ:VINDUEZONE;     VINDUE:VINDUEPOST; BEGIN  WITH VINDUE DO  BEGIN!    NR:=OLINIE.VINDUENR MOD 1000;!    OWRITE(VINZ.H,VINF,2,L[S);    GETREC(VINZ.H,VINF,A);(    IF IER<>0 THEN IOF(VINZ.H.FILENAME);(>    VKA:=KARMNR;RAM:=RAMME;VBE:=BESLAG;VBR:=BREDDE;VH\:=H\JDE;>    ICLOSE(VINZ.H,VINF);  END;END; KPROCEDURE PROFILBEHANDLING(H\JDE:INTEGER;VAR FORST[RK:AR14;VAR PROFILST[RK:KE                                 ADOBTAL;VAR BESLAG:AR14; VAR PROFIL:EL                                 INTEGER;VAR GUM1:DOBBTAL;VAR GUM2:DOBBTAL);L BEGIN  FOR PLACERING:=1 TO 4 DO  BEGIN%    TYPE1:=NULLER;TYPE2:=0;L[NGDE:=0;%    IF PLACERING=3 THEN	    BEGIN	      M]L:=H\JDE;      ST[RKR:=ST[RKR2;    END;!    IF FORST[RK(PLACERING)=1 THEN!	    BEGIN	      ST[RKNING;       TYPE1:=PROFILST[RK(TYPER); :      GENER(4,TYPE1(1),TYPE1(2),0,L[NGDE,0,NULLER,NULLER);:    END;    IF BESLAG(PLACERING)>0 THEN	    BEGIN	$      BESLAGNING(BESLAG(PLACERING));$*      GENER(5,0,TYPE2,0,0,0,NULLER,NULLER)*    END;-    GENER(1,0,PROFIL,L[NGDE,M]L,0,GUM1,GUM2);-  END;END;IPROCEDURE HENTKARM(NR1:INTEGER;VAR KBE,KFO:AR14;VAR KVR,KLR:AR13;VAR FIL:IJ                                                                 FILNAVN);J TYPE KARMZONE=RECORD              H:ISFHEAD;-              T:ARRAY(1..MKARMEZ) OF INTEGER;-	     END;	      KARMPOST=RECORD              AA:ARAR;              A:AR;              AAA:RAR;              NR:INTEGER;              FORST[RK,              BESLAG:AR14;              T[TGUM:INTEGER;              VREGEL,              LREGEL:AR13;              TEKST:TEK;	     END;	 VAR  KARF:ISF;     KARZ:KARMZONE;     KARM:KARMPOST; BEGIN  WITH KARM DO  BEGIN    OWRITE(KARZ.H,KARF,3,L[S);    NR:=NR1;    GETREC(KARZ.H,KARF,A);    IF IER<>0 THEN IOF(FIL);6    KBE:=BESLAG;KFO:=FORST[RK;KVR:=VREGEL;KLR:=LREGEL;6    ICLOSE(KARZ.H,KARF);  END;END;   TYP3;    RAMMENR:=I1;    PLACER:=PLACERING;    FL[NGDE:=FL;    SL[NGDE:=SL;    TYPENR:=TYP1;  END;!  INSERT (OPSZ.H,OPSF,OPSPLIT.A);!(  IF IER <> 0 THEN IOF(OPSZ.H.FILENAME);(END; DPROCEDURE HENTKOMBI(VAR KKA:INTEGER;VAR KRA:INTEGER;VAR KPO:INTEGER;D%                    VAR FIL:FILNAVN);% TYPE KOMBIZONE=RECORD               H:ISFHEAD;.               T:ARRAY(1..MKOMBIZ) OF INTEGER;.	     END;	      KOMBIPOST=RECORD               AA:ARAR;               A:AR;               AAA:RAR;           