qbasic database

on linux

cat > test.qdb

something

something

CTRL+D (getting off from the cat)


 '---Start Copying here---

DECLARE SUB Avg ()

DECLARE SUB DelRacer ()

DECLARE SUB DispData (ddNumOfCars%)

DECLARE SUB EditRacer ()

DECLARE SUB EnterData ()

DECLARE SUB RaceSetup ()

DECLARE SUB RaceStart ()

DECLARE SUB CompressFile ()


'CONST DataFile$ = "u:\qbasic\pinewo~1\TgrRecrd.qdb"

'CONST TempFile$ = "u:\qbasic\pinewo~1\Shrink.tmp"

CONST DataFile$ = "c:\TEMP\test.qdb", TempFile$ = "C:\TEMP\Shrink.tmp"


SCREEN 12

TYPE TgrRecord

    LstNme  AS STRING * 10

    FstNme  AS STRING * 10

    CarNo   AS INTEGER

    CarOz   AS STRING * 3

    Lane1   AS SINGLE

    Lane2   AS SINGLE

    Lane3   AS SINGLE

    Lane4   AS SINGLE

    Avg     AS SINGLE

END TYPE


DIM SHARED Tiger AS TgrRecord


MainMenu:

CLS

PRINT "Tiger Scout Pinewood Derby Setup"

PRINT ""

PRINT "1) Enter Data"

PRINT "2) Edit Data"

PRINT "3) Delete Data"

PRINT "4) View Data"

PRINT "5) View All Times"

PRINT "6) AVG Times"

PRINT

PRINT "0) Exit"

PRINT

PRINT

INPUT "What option will you choose"; choice%


SELECT CASE choice%

    CASE 1

        EnterData

    CASE 2

        EditRacer

    CASE 3

        DelRacer

    CASE 4

        DispData (0)

        PRINT "Press Any Key To Continue"

        DO WHILE INKEY$ = ""

        LOOP

    CASE 5

        RaceSetup

    CASE 6

        Avg

    CASE 0

        SCREEN 0

        END

END SELECT

GOTO MainMenu


'

'

SUB Avg

    CHAIN "u:\qbasic\pinewo~1\autoavg"

END SUB


'

'

SUB ChkLane

    OPEN DataFile$ FOR RANDOM AS #1 LEN = LEN(Tiger)

    DO WHILE NOT EOF(1)

        Chk% = Chk% + 1

        GET 1, Chk%, Tiger

    LOOP

    Chk% = Chk% - 1

    PRINT Chk%

    DO WHILE INKEY$ = ""

    LOOP

    CLOSE

END SUB


'

'

SUB CompressFile


OPEN DataFile$ FOR RANDOM AS #11 LEN = LEN(Tiger)

OPEN TempFile$ FOR RANDOM AS #10 LEN = LEN(Tiger)

OrgNumRacers = LOF(11) / LEN(Tiger)

PRINT

PRINT "There are currently"; STR$(OrgNumRacers); " car(s) recorded."

FOR Cycle = 1 TO OrgNumRacers

    GET #11, , Tiger

    IF EOF(11) THEN EXIT FOR

    IF RTRIM$(Tiger.LstNme$) <> "(erased)" THEN

        SavedCounter = SavedCounter + 1

        Tiger.CarNo = SavedCounter

        PUT #10, , Tiger

    ELSE

        DelCounter = DelCounter + 1

    END IF

NEXT

CLOSE

PRINT

PRINT "Records marked for deletion: "; STR$(DelCounter)

KILL DataFile$

PRINT "Records saved & resequenced: "; STR$(SavedCounter)

NAME TempFile$ AS DataFile$

PRINT

CLS

DispData (0)

PRINT "Press any key to continue"

DO WHILE INKEY$ = ""

LOOP


END SUB


'

'

SUB DelRacer

    DispData DelRecNo%

    IF DelRecNo% = 0 THEN

        'Nothing in database

        PRINT "Press Any Key To Continue"

        DO WHILE INKEY$ = ""

        LOOP

        EXIT SUB

    END IF

    OPEN DataFile$ FOR RANDOM AS #1 LEN = LEN(Tiger)

    INPUT "What Car Number would you like to delete? (0 = exit)"; DelRecNo%

    IF DelRecNo% THEN

        Tiger.LstNme$ = "(erased)"

        PUT #1, DelRecNo%, Tiger

    END IF

    CLOSE

    CompressFile

END SUB


'

'

SUB DispData (ddNumOfCars%)


OPEN DataFile$ FOR RANDOM AS #1 LEN = LEN(Tiger)

ddNumOfCars% = LOF(1) / LEN(Tiger)

CLS

PRINT " _____________________________________________________"

PRINT "|  LAST NAME  | FIRST NAME  | car# | weight| avg time | "

PRINT "|-------------|-------------|------|-------|----------|"

PRINT "|             |             |      |       |          |"

IF ddNumOfCars% THEN

    FOR i% = 1 TO ddNumOfCars%

        format$ = "| \         \ | \         \ |  ##  |  \ \  |  ##.###  |"

        GET #1, i%, Tiger

        PRINT USING format$; Tiger.LstNme$; Tiger.FstNme$; Tiger.CarNo%; Tiger.CarOz$; Tiger.Avg

    NEXT i%

ELSE

    PRINT "|   There are NO registered cars on record.| Please   |"

    PRINT "| re-enter required information by selecting #1 from  |"

    PRINT "|             |     the MAIN|MENU! |       |          |"

END IF

PRINT "|             |             |      |       |          |"

PRINT "|_____________|_____________|______|_______|__________|"

PRINT

CLOSE


END SUB


'

'

SUB EditRacer


DispData EditRecNo%

IF EditRecNo% = 0 THEN

    'Nothing in database

    PRINT "Press Any Key To Continue"

    DO WHILE INKEY$ = ""

    LOOP

    EXIT SUB

END IF

OPEN DataFile$ FOR RANDOM AS #1 LEN = LEN(Tiger)

INPUT "What Car Number would you like to edit? (0 = exit)"; EditRecNo%

IF EditRecNo% THEN

    Tiger.CarNo% = EditRecNo%

    PRINT

    PRINT

    INPUT "Last Name?       "; Tiger.LstNme$

    INPUT "First Name?      "; Tiger.FstNme$

    INPUT "Weight (in oz.)  "; Tiger.CarOz$

    INPUT "Lane 1 Time      "; Tiger.Lane1

    INPUT "Lane 2 Time      "; Tiger.Lane2

    INPUT "Lane 3 Time      "; Tiger.Lane3

    INPUT "Lane 4 Time      "; Tiger.Lane4

    PUT #1, EditRecNo%, Tiger

    Avg

END IF

CLOSE


END SUB


'

'

SUB EnterData


CLS

OPEN DataFile$ FOR RANDOM AS #1 LEN = LEN(Tiger)

RecNo% = LOF(1) / LEN(Tiger)

AddNewRacer:

    IF RecNo% THEN

        RecNo% = RecNo% + 1

    ELSE

        RecNo% = 1

    END IF

    PRINT

    INPUT "Last Name   "; Tiger.LstNme$

    INPUT "First Name  "; Tiger.FstNme$

    Tiger.CarNo% = RecNo%

    INPUT "Weight (oz.)"; Tiger.CarOz$

    PUT 1, RecNo%, Tiger

    INPUT "Enter another? (yes/no) "; yn$

    IF LEFT$(LTRIM$(LCASE$(yn$)), 1) = "y" THEN GOTO AddNewRacer

    CLOSE


END SUB


'

'

SUB RaceSetup


PRINT "Race Setup"

CLS

OPEN DataFile$ FOR RANDOM AS #1 LEN = LEN(Tiger)

format2$ = "|  ##  |  ##.###  |  ##.###  |  ##.###  |  ##.###  |  ##.###  |"

PRINT " _____________________________________________________________"

PRINT "| car# | Lane 1   | Lane 2   | Lane 3   | Lane 4   | Avg Time |"

PRINT "|------|----------|----------|----------|----------|----------|"

PRINT "|      |          |          |          |          |          |"

DO WHILE NOT EOF(1)

    i% = i% + 1

    GET 1, i%, Tiger

    SELECT CASE Tiger.CarNo%

        CASE IS > 0

            PRINT USING format2$; Tiger.CarNo%; Tiger.Lane1; Tiger.Lane2; Tiger.Lane3; Tiger.Lane4; Tiger.Avg

        CASE 0

    END SELECT

LOOP

CLOSE

PRINT "|      |          |          |          |          |          |"

PRINT "|______|__________|__________|__________|__________|__________|"

PRINT ""

PRINT ""

DO WHILE INKEY$ = ""

LOOP


END SUB


'

'

SUB RaceStart

END SUB

https://www.tek-tips.com/viewthread.cfm?qid=97781

Kommentit

Tämän blogin suosituimmat tekstit

the dotter char, plotter

mrrlassje 2009 2008