Tarkastaja on QB- ohjelma, jonka voi laittaa vaikkapa käynnistymään koneen kanssa. Tarkastaja pyytää asemaa ja tarkastaa onko kaikki kyseisessä asemassa kunnossa.
Pääohjelma
DECLARE SUB ErrorMessage (Message$)
DECLARE SUB WriteBigFile (Filenum%)
ON ERROR GOTO ErrHandler
CLS
PRINT "- TEST PROGRAM -"
PRINT
DO
DRIVE1:
INPUT "DRIVE"; DR$
PRINT "LOADING..."
DR$ = UCASE$(DR$)
LOOP UNTIL LEN(DR$) >= 1 AND LEN(DR$) <= 2 AND DR$ >= "A" AND DR$ <= "Z"
IF LEN(DR$) > 1 THEN
IF RIGHT$(DR$, 1) <> ":" THEN
DR$ = LEFT$(DR$, 1) + ":"
END IF
ELSE
DR$ = DR$ + ":"
CLS
PRINT "LOADING..."
END IF
FileSpec$ = DR$ + "BIGFILE.XXX"
Filenum% = FREEFILE
OPEN FileSpec$ FOR OUTPUT AS Filenum%
WriteBigFile Filenum%
CLOSE Filenum%
CLS
PRINT "--- TEST READY ---"
PRINT "DRIVE " + DR$ + " TESTED"
PRINT "NO PROBLEMS"
KILL FileSpec$
SYSTEM
ErrHandler:
SELECT CASE ERR
CASE 52 'Bad file name or number.
ErrorMessage "BAD FILE NAME OR NUMBER"
END
CASE 53 'File not found.
ErrorMessage "FILE NOT FOUND"
CASE 57 'Device I/O error.
ErrorMessage "FORMAT DISK"
END
CASE 64 'Bad File Name.
ErrorMessage "WRONG DRIVE NAME"
END
CASE 68 'Device unavailable.
ErrorMessage "DEVICE NOT FOUND"
END
CASE 71 'Drive not ready.
ErrorMessage "DRIVE NOT READY"
END
CASE ELSE
ErrorMessage "ERROR: STOP ALL PROGRAMS, THEN START THIS PROGRAM AGAIN"
STOP
END SELECTAliohjelma 1
SUB ErrorMessage (Message$)
ON LOCAL ERROR GOTO MessageError
CLS
PRINT Message$
PRINT "-----------------------"
PRINT
PRINT "PRESS ANY KEY TO EXIT"
DO
LOOP WHILE INKEY$ = ""
EXIT SUB
MessageError:
RESUME NEXT
END SUBAliohjelma 2
SUB WriteBigFile (Filenum%)
ON LOCAL ERROR GOTO LocalHandler
TEXT$ = STRING$(1024, "A")
FOR I% = 1 TO 400
PRINT #Filenum%, TEXT$
NEXT I%
EXIT SUB
LocalHandler:
SELECT CASE ERR
CASE 61 'Disk full.
ErrorMessage ("DISK " + DR$ + " FULL")
KILL "BIGFILE.XXX"
END
CASE ELSE
ERROR ERR
END SELECT
END SUBVaikuttaa ihan hyvältä. Jonkinlaista automatiikkaa kaivattaisiin, kuten aseman määrittely komentoriviparametreilla jolloin ne voisi määrittää käynnistystiedostoon eikä tarvittaisi inputtia. Tietenkin vain mikäli käytetään käännettyä ohjelmaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.