home *** CD-ROM | disk | FTP | other *** search
-
- PROCEDURE DRVCHK( VAR DR:CHAR);
-
- { A PROCEDURE TO ENSURE THAT A CHARACTER TO BE USED
- AS A FILENAME PREFIX REFERS TO A LEGAL DRIVE.THE
- INTERNALLY DEFINED CONSTANT NUM_DRIVES SHOULD BE
- SET TO THE NUMBER OF LOGICAL DRIVES AVAILABLE.
-
- IF THE TRANSMITTED DRIVE-NAME IS ILLEGAL,THE USER
- IS ASKED TO SUPPLY ANOTHER LETTER,FROM THE CONSOLE.
-
- NOTE THAT THIS PROCEDURE RECURSIVELY CALLS ITSELF,
- AND WILL NOT EXIT UNTIL A LEGAL DRIVE-NAME IS INPUT.
-
- THE PASCAL/Z EXTERNAL PROCEDURE SETLENGTH MUST BE
- DECLARED IN THE MAIN PROGRAM. }
-
-
- CONST
- NUM_DRIVES = 2;
-
- TYPE
- DR_NAME = 'A'..'Z';
- COUNTER = 0..25;
-
- VAR
- DRIVE : DR_NAME;
- LEGAL_NAME : BOOLEAN;
- DR_AGAIN : CHAR;
- I : COUNTER;
- ANSWER : STRING 40;
-
- BEGIN { DRVCHK }
- LEGAL_NAME:=FALSE;
- DRIVE:='A';
- I:=0;
- WHILE I < NUM_DRIVES
- DO BEGIN
- I:=I+1;
- IF DR=DRIVE
- THEN BEGIN
- LEGAL_NAME:=TRUE;
- I:=25
- END
- ELSE DRIVE:=SUCC(DRIVE);
- END;
- IF NOT LEGAL_NAME
- THEN BEGIN
- WRITELN('WHICH DRIVE DO YOU WANT DATA WRITTEN TO ?');
- WRITE('DRIVE = ?',CHR(8));
- SETLENGTH(ANSWER,0);
- READ(ANSWER);
- DR_AGAIN := ANSWER[1];
- WRITELN;
- DRVCHK(DR_AGAIN);
- DR := DR_AGAIN;
- END;
- BLNKSCRN;
- END; { DRVCHK }
-