00000000: 70 72 6F 67 72 61 6D 20 66 69 6C 65 62 65 73 74 |program filebest|
00000010: 61 6E 64 20 28 69 6E 70 75 74 2C 6F 75 74 70 75 |and (input,outpu|
00000020: 74 29 3B 0D 20 63 6F 6E 73 74 20 6D 61 78 69 64 |t);. const maxid|
00000030: 20 20 20 20 20 20 20 3D 35 30 3B 0D 20 20 20 20 | =50;. |
00000040: 20 20 20 6D 61 78 66 69 6C 65 20 20 20 20 20 3D | maxfile =|
00000050: 39 30 30 3B 0D 20 74 79 70 65 20 20 66 69 6C 65 |900;. type file|
00000060: 73 6F 6F 72 74 20 20 20 3D 28 70 72 67 2C 75 73 |soort =(prg,us|
00000070: 72 2C 73 65 71 2C 72 65 6C 2C 64 65 6C 29 3B 0D |r,seq,rel,del);.|
00000080: 20 20 20 20 20 20 20 73 74 72 69 6E 67 20 20 20 | string |
00000090: 20 20 20 3D 70 61 63 6B 65 64 20 61 72 72 61 79 | =packed array|
000000A0: 5B 31 2E 2E 31 36 5D 20 6F 66 20 63 68 61 72 3B |[1..16] of char;|
000000B0: 0D 20 20 20 20 20 20 20 64 65 66 64 69 73 6B 6E |. defdiskn|
000000C0: 61 61 6D 20 3D 72 65 63 6F 72 64 20 6E 61 61 6D |aam =record naam|
000000D0: 20 3A 73 74 72 69 6E 67 3B 0D 20 20 20 20 20 20 | :string;. |
000000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000000F0: 20 20 20 20 20 69 64 20 20 20 3A 61 72 72 61 79 | id :array|
00000100: 5B 31 2E 2E 32 5D 20 6F 66 20 63 68 61 72 3B 0D |[1..2] of char;.|
00000110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000120: 20 20 20 20 20 20 20 20 20 20 20 64 6F 73 20 20 | dos |
00000130: 3A 61 72 72 61 79 5B 31 2E 2E 32 5D 20 6F 66 20 |:array[1..2] of |
00000140: 63 68 61 72 3B 0D 20 20 20 20 20 20 20 20 20 20 |char;. |
00000150: 20 20 20 20 20 20 20 20 20 20 65 6E 64 3B 0D 20 | end;. |
00000160: 20 20 20 20 20 20 64 65 66 66 69 6C 65 6E 61 61 | deffilenaa|
00000170: 6D 20 3D 72 65 63 6F 72 64 20 6E 61 61 6D 20 3A |m =record naam :|
00000180: 73 74 72 69 6E 67 3B 0D 20 20 20 20 20 20 20 20 |string;. |
00000190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000001A0: 20 20 20 69 64 20 20 20 3A 61 72 72 61 79 5B 31 | id :array[1|
000001B0: 2E 2E 32 5D 20 6F 66 20 63 68 61 72 3B 0D 20 20 |..2] of char;. |
000001C0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000001D0: 20 20 20 20 20 20 20 20 20 73 6F 6F 72 74 3A 66 | soort:f|
000001E0: 69 6C 65 73 6F 6F 72 74 3B 0D 20 20 20 20 20 20 |ilesoort;. |
000001F0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000200: 20 20 20 20 20 62 6C 6F 63 6B 3A 69 6E 74 65 67 | block:integ|
00000210: 65 72 3B 0D 20 20 20 20 20 20 20 20 20 20 20 20 |er;. |
00000220: 20 20 20 20 20 20 20 20 65 6E 64 3B 0D 20 76 61 | end;. va|
00000230: 72 20 20 20 66 69 6C 65 62 65 73 74 61 6E 64 20 |r filebestand |
00000240: 20 3A 61 72 72 61 79 5B 30 2E 2E 6D 61 78 66 69 | :array[0..maxfi|
00000250: 6C 65 5D 20 6F 66 20 64 65 66 66 69 6C 65 6E 61 |le] of deffilena|
00000260: 61 6D 3B 0D 20 20 20 20 20 20 20 69 64 62 65 73 |am;. idbes|
00000270: 74 61 6E 64 20 20 20 20 3A 61 72 72 61 79 5B 30 |tand :array[0|
00000280: 2E 2E 6D 61 78 69 64 5D 20 6F 66 20 64 65 66 64 |..maxid] of defd|
00000290: 69 73 6B 6E 61 61 6D 3B 0D 20 20 20 20 20 20 20 |isknaam;. |
000002A0: 62 65 73 6E 61 6D 65 6E 20 20 20 20 20 3A 66 69 |besnamen :fi|
000002B0: 6C 65 20 6F 66 20 64 65 66 66 69 6C 65 6E 61 61 |le of deffilenaa|
000002C0: 6D 3B 0D 20 20 20 20 20 20 20 62 65 73 69 64 73 |m;. besids|
000002D0: 20 20 20 20 20 20 20 3A 66 69 6C 65 20 6F 66 20 | :file of |
000002E0: 64 65 66 64 69 73 6B 6E 61 61 6D 3B 0D 20 20 20 |defdisknaam;. |
000002F0: 20 20 20 20 69 64 6E 61 61 6D 20 20 20 20 20 20 | idnaam |
00000300: 20 3A 73 74 72 69 6E 67 3B 0D 20 20 20 20 20 20 | :string;. |
00000310: 20 66 69 6C 65 6E 61 61 6D 20 20 20 20 20 3A 73 | filenaam :s|
00000320: 74 72 69 6E 67 3B 0D 20 20 20 20 20 20 20 69 64 |tring;. id|
00000330: 61 61 6E 74 61 6C 20 20 20 20 20 3A 69 6E 74 65 |aantal :inte|
00000340: 67 65 72 3B 0D 20 20 20 20 20 20 20 66 69 6C 65 |ger;. file|
00000350: 61 61 6E 74 61 6C 20 20 20 3A 69 6E 74 65 67 65 |aantal :intege|
00000360: 72 3B 0D 20 20 20 20 20 20 20 66 69 6C 65 73 77 |r;. filesw|
00000370: 69 74 63 68 20 20 20 3A 62 6F 6F 6C 65 61 6E 3B |itch :boolean;|
00000380: 0D 20 20 20 20 20 20 20 63 68 61 6E 67 65 20 20 |. change |
00000390: 20 20 20 20 20 3A 62 6F 6F 6C 65 61 6E 3B 0D 20 | :boolean;. |
000003A0: 70 72 6F 63 65 64 75 72 65 20 69 6E 69 74 69 61 |procedure initia|
000003B0: 6C 69 7A 65 3B 0D 20 20 76 61 72 20 6E 61 61 6D |lize;. var naam|
000003C0: 20 20 20 20 3A 73 74 72 69 6E 67 3B 0D 20 20 20 | :string;. |
000003D0: 20 20 20 74 65 6C 6C 65 72 20 20 3A 69 6E 74 65 | teller :inte|
000003E0: 67 65 72 3B 0D 20 20 20 20 20 20 6B 61 72 20 20 |ger;. kar |
000003F0: 20 20 20 3A 63 68 61 72 3B 0D 20 20 62 65 67 69 | :char;. begi|
00000400: 6E 0D 20 20 20 20 69 6F 74 72 61 70 3A 3D 66 61 |n. iotrap:=fa|
00000410: 6C 73 65 3B 0D 20 20 20 20 6E 61 61 6D 3A 3D 27 |lse;. naam:='|
00000420: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
00000430: 20 27 3B 0D 20 20 20 20 66 6F 72 20 74 65 6C 6C | ';. for tell|
00000440: 65 72 3A 3D 30 20 74 6F 20 6D 61 78 69 64 20 20 |er:=0 to maxid |
00000450: 20 64 6F 20 20 20 69 64 62 65 73 74 61 6E 64 5B | do idbestand[|
00000460: 74 65 6C 6C 65 72 5D 2E 6E 61 61 6D 3A 3D 6E 61 |teller].naam:=na|
00000470: 61 6D 3B 0D 20 20 20 20 66 6F 72 20 74 65 6C 6C |am;. for tell|
00000480: 65 72 3A 3D 30 20 74 6F 20 6D 61 78 66 69 6C 65 |er:=0 to maxfile|
00000490: 20 64 6F 20 66 69 6C 65 62 65 73 74 61 6E 64 5B | do filebestand[|
000004A0: 74 65 6C 6C 65 72 5D 2E 6E 61 61 6D 3A 3D 6E 61 |teller].naam:=na|
000004B0: 61 6D 3B 0D 20 20 20 20 66 69 6C 65 73 77 69 74 |am;. fileswit|
000004C0: 63 68 3A 3D 66 61 6C 73 65 3B 0D 20 20 20 20 63 |ch:=false;. c|
000004D0: 68 61 6E 67 65 20 20 20 20 3A 3D 66 61 6C 73 65 |hange :=false|
000004E0: 3B 0D 20 20 20 20 66 69 6C 65 61 61 6E 74 61 6C |;. fileaantal|
000004F0: 3A 3D 30 3B 0D 20 20 20 20 69 64 61 61 6E 74 61 |:=0;. idaanta|
00000500: 6C 20 20 3A 3D 30 3B 0D 20 20 20 20 77 72 69 74 |l :=0;. writ|
00000510: 65 6C 6E 3B 0D 20 20 20 20 77 72 69 74 65 6C 6E |eln;. writeln|
00000520: 28 27 20 20 73 63 68 69 6A 66 20 61 64 6D 69 6E |(' schijf admin|
00000530: 69 73 74 72 61 74 69 65 20 20 27 29 3B 0D 20 20 |istratie ');. |
00000540: 20 20 77 72 69 74 65 6C 6E 3B 0D 20 20 20 20 77 | writeln;. w|
00000550: 72 69 74 65 6C 6E 3B 0D 20 20 20 20 77 72 69 74 |riteln;. writ|
00000560: 65 28 27 20 20 20 20 6E 6F 72 6D 61 6C 20 62 65 |e(' normal be|
00000570: 73 74 61 6E 64 20 3A 5B 72 65 74 5D 20 27 29 3B |stand :[ret] ');|
00000580: 0D 20 20 20 20 72 65 61 64 6C 6E 28 6B 61 72 29 |. readln(kar)|
00000590: 3B 0D 20 20 20 20 69 66 20 6B 61 72 3D 27 6E 27 |;. if kar='n'|
000005A0: 0D 20 20 20 20 20 74 68 65 6E 20 62 65 67 69 6E |. then begin|
000005B0: 0D 20 20 20 20 20 20 20 20 20 20 20 20 77 72 69 |. wri|
000005C0: 74 65 28 27 20 6E 61 61 6D 20 66 69 6C 65 20 66 |te(' naam file f|
000005D0: 6F 72 20 69 64 73 20 3A 27 29 3B 0D 20 20 20 20 |or ids :');. |
000005E0: 20 20 20 20 20 20 20 20 72 65 61 64 6C 6E 28 69 | readln(i|
000005F0: 64 6E 61 61 6D 29 3B 0D 20 20 20 20 20 20 20 20 |dnaam);. |
00000600: 20 20 20 20 77 72 69 74 65 28 27 20 6E 61 61 6D | write(' naam|
00000610: 20 66 69 6C 65 20 66 6F 72 20 66 69 6C 65 73 20 | file for files |
00000620: 3A 27 29 3B 0D 20 20 20 20 20 20 20 20 20 20 20 |:');. |
00000630: 20 72 65 61 64 6C 6E 28 66 69 6C 65 6E 61 61 6D | readln(filenaam|
00000640: 29 3B 0D 20 20 20 20 20 20 20 20 20 20 65 6E 64 |);. end|
00000650: 0D 20 20 20 20 20 65 6C 73 65 20 62 65 67 69 6E |. else begin|
00000660: 0D 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6C |. fil|
00000670: 65 6E 61 61 6D 3A 3D 27 62 65 73 74 61 6E 64 2F |enaam:='bestand/|
00000680: 66 69 27 3B 0D 20 20 20 20 20 20 20 20 20 20 20 |fi';. |
00000690: 20 69 64 6E 61 61 6D 20 20 3A 3D 27 62 65 73 74 | idnaam :='best|
000006A0: 61 6E 64 2F 69 64 27 3B 0D 20 20 20 20 20 20 20 |and/id';. |
000006B0: 20 20 20 65 6E 64 3B 0D 20 20 20 20 72 65 73 65 | end;. rese|
000006C0: 74 28 62 65 73 6E 61 6D 65 6E 2C 66 69 6C 65 6E |t(besnamen,filen|
000006D0: 61 61 6D 29 3B 0D 20 20 20 20 77 68 69 6C 65 20 |aam);. while |
000006E0: 6E 6F 74 28 65 6F 66 28 62 65 73 6E 61 6D 65 6E |not(eof(besnamen|
000006F0: 29 20 6F 72 20 28 66 69 6C 65 61 61 6E 74 61 6C |) or (fileaantal|
00000700: 3E 6D 61 78 66 69 6C 65 29 29 0D 20 20 20 20 20 |>maxfile)). |
00000710: 64 6F 20 62 65 67 69 6E 0D 20 20 20 20 20 20 20 |do begin. |
00000720: 20 20 20 72 65 61 64 28 62 65 73 6E 61 6D 65 6E | read(besnamen|
00000730: 2C 20 66 69 6C 65 62 65 73 74 61 6E 64 5B 66 69 |, filebestand[fi|
00000740: 6C 65 61 61 6E 74 61 6C 5D 29 3B 0D 20 20 20 20 |leaantal]);. |
00000750: 20 20 20 20 20 20 66 69 6C 65 61 61 6E 74 61 6C | fileaantal|
00000760: 3A 3D 66 69 6C 65 61 61 6E 74 61 6C 2B 31 3B 0D |:=fileaantal+1;.|
00000770: 20 20 20 20 20 20 20 20 65 6E 64 3B 0D 20 20 20 | end;. |
00000780: 20 72 65 73 65 74 28 62 65 73 69 64 73 2C 69 64 | reset(besids,id|
00000790: 6E 61 61 6D 29 3B 0D 20 20 20 20 77 68 69 6C 65 |naam);. while|
000007A0: 20 6E 6F 74 28 65 6F 66 28 62 65 73 69 64 73 29 | not(eof(besids)|
000007B0: 20 6F 72 20 28 69 64 61 61 6E 74 61 6C 3E 6D 61 | or (idaantal>ma|
000007C0: 78 69 64 29 29 0D 20 20 20 20 20 64 6F 20 62 65 |xid)). do be|
000007D0: 67 69 6E 0D 20 20 20 20 20 20 20 20 20 20 72 65 |gin. re|
000007E0: 61 64 28 62 65 73 69 64 73 2C 20 69 64 62 65 73 |ad(besids, idbes|
000007F0: 74 61 6E 64 5B 69 64 61 61 6E 74 61 6C 5D 29 3B |tand[idaantal]);|
00000800: 0D 20 20 20 20 20 20 20 20 20 20 69 64 61 61 6E |. idaan|
00000810: 74 61 6C 3A 3D 69 64 61 61 6E 74 61 6C 2B 31 3B |tal:=idaantal+1;|
00000820: 0D 20 20 20 20 20 20 20 20 65 6E 64 3B 0D 20 20 |. end;. |
00000830: 20 20 63 6C 6F 73 65 28 62 65 73 6E 61 6D 65 6E | close(besnamen|
00000840: 29 3B 0D 20 20 20 20 63 6C 6F 73 65 28 62 65 73 |);. close(bes|
00000850: 69 64 73 29 3B 0D 20 20 65 6E 64 3B 0D 1E |ids);. end;.. |
PROGRAM FILEBESTAND (INPUT,OUTPUT);. CON
ST MAXID =50;. MAXFILE =
900;. TYPE FILESOORT =(PRG,USR,SEQ,RE
L,DEL);. STRING =PACKED ARRAY
[1..16] OF CHAR;. DEFDISKNAAM =REC
ORD NAAM :STRING;.
ID :ARRAY[1..2] OF CHAR;.
DOS :ARRAY[1..2] OF
CHAR;. END;. DE
FFILENAAM =RECORD NAAM :STRING;.
ID :ARRAY[1..2] OF
CHAR;. SOORT:F
ILESOORT;. BLO
CK:INTEGER;. END;. VA
R FILEBESTAND :ARRAY[0..MAXFILE] OF D
EFFILENAAM;. IDBESTAND :ARRAY[0
..MAXID] OF DEFDISKNAAM;. BESNAMEN
:FILE OF DEFFILENAAM;. BESIDS
:FILE OF DEFDISKNAAM;. IDNA
AM :STRING;. FILENAAM :S
TRING;. IDAANTAL :INTEGER;.
FILEAANTAL :INTEGER;. FILESW
ITCH :BOOLEAN;. CHANGE :BO
OLEAN;. PROCEDURE INITIALIZE;. VAR NAAM
:STRING;. TELLER :INTEGER;.
KAR :CHAR;. BEGIN. IOTRAP:=FA
LSE;. NAAM:=' ';.
FOR TELLER:=0 TO MAXID DO IDBESTAND[
TELLER].NAAM:=NAAM;. FOR TELLER:=0 TO
MAXFILE DO FILEBESTAND[TELLER].NAAM:=NA
AM;. FILESWITCH:=FALSE;. CHANGE
:=FALSE;. FILEAANTAL:=0;. IDAANTA
L :=0;. WRITELN;. WRITELN(' SCHI
JF ADMINISTRATIE ');. WRITELN;. W
RITELN;. WRITE(' NORMAL BESTAND :[
RET] ');. READLN(KAR);. IF KAR='N'
. THEN BEGIN. WRITE(' NAA
M FILE FOR IDS :');. READLN(I
DNAAM);. WRITE(' NAAM FILE FO
R FILES :');. READLN(FILENAAM
);. END. ELSE BEGIN.
FILENAAM:='BESTAND/FI';.
IDNAAM :='BESTAND/ID';. END;.
RESET(BESNAMEN,FILENAAM);. WHILE
NOT(EOF(BESNAMEN) OR (FILEAANTAL>MAXFILE
)). DO BEGIN. READ(BESNAMEN
, FILEBESTAND[FILEAANTAL]);. FI
LEAANTAL:=FILEAANTAL+1;. END;.
RESET(BESIDS,IDNAAM);. WHILE NOT(EOF
(BESIDS) OR (IDAANTAL>MAXID)). DO BE
GIN. READ(BESIDS, IDBESTAND[IDA
ANTAL]);. IDAANTAL:=IDAANTAL+1;
. END;. CLOSE(BESNAMEN);. C
LOSE(BESIDS);. END;..
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL