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 SELECT
Aliohjelma 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 SUB
Aliohjelma 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 SUB
Vaikuttaa 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.