Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: QB: Tarkastaja

gamehouse [30.04.2007 18:12:51]

#

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

Juhko [14.06.2007 21:20:18]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta