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 "0) Exit"
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 "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 "Records marked for deletion: "; STR$(DelCounter)
KILL DataFile$
PRINT "Records saved & resequenced: "; STR$(SavedCounter)
NAME TempFile$ AS DataFile$
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 "|_____________|_____________|______|_______|__________|"
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%
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
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
Kommentit
Lähetä kommentti