Page 1 of 1

Bad File Mode Error

Posted: Sun Nov 25, 2012 12:46 pm
by JasonQuinn1992
I get a bad file mode error on the WRITE #1, SalesNum, SalesmanNam$, SalesAmt, CommRt, CommissionAm line


what should I do?

My Code

' This program reads a sequential file
'
'
'
'
' SalesNum = Salesman Number
' SalesmanNam$ = Salesman Name
' SalesAmt = Sales Amount
' CommRt = Commission Rate
' CommissionAm = Commission Amount
'
' *******************************************
' Program mainline
' *******************************************
CLS
GOSUB CreateFile
GOSUB LoadFile
GOSUB CloseFile
END

' ******************* Create The File ***************

CreateFile:
OPEN "SALEDATA" FOR INPUT AS #1
RETURN

' ************ Print The Report ***************

PrintReport:
INPUT #1, SalesNum, Nam$, SaleAmt, CommRt
DO UNTIL SalesNum = 0
LET Comm = SaleAmt * (CommRt / 100)
PRINT USING D$; SalesNum; Nam$; SaleAmt; CommRt; Comm
INPUT #1, SalesNum, Nam$, SaleAmt, CommRt
LOOP
RETURN

LoadFile:
DO UNTIL UCASE$(SalesmanNam$) = "END"
INPUT "Salesman Number", SalesNum
INPUT "Salesman Name", SalesmanNam$
INPUT "Sales Amount", SalesAmt
INPUT "Commission Rate", CommRt
INPUT "Commission Amount", CommissionAm
PRINT
WRITE #1, SalesNum, SalesmanNam$, SalesAmt, CommRt, CommissionAm
LOOP
RETURN
'****************************************************************************
' Close File
'****************************************************************************

CloseFile:
CLOSE #1
RETURN

Posted: Sun Nov 25, 2012 9:10 pm
by burger2227
OUTPUT or APPEND with WRITE

Posted: Sun Nov 25, 2012 10:23 pm
by JasonQuinn1992
LoadFile:
DO UNTIL UCASE$(SalesmanNam$) = "END"
INPUT "Salesman Number", SalesNum
INPUT "Salesman Name", SalesmanNam$
INPUT "Sales Amount", SalesAmt
INPUT "Commission Rate", CommRt
INPUT "Commission Amount", CommissionAm
PRINT
LINE INPUT #1, SalesNum, SalesmanNam$, SalesAmt, CommRt, CommissionAm
LOOP
RETURN

I fixed that but now I get an expected: variable or end-of-statement on the SalesmanNam$ variable. How should I fix this I already tried adding semi-colons

Posted: Mon Nov 26, 2012 5:28 pm
by burger2227
LINE INPUT expects ONE string variable. Commas can only separate a variable list in an INPUT statement.

Posted: Mon Nov 26, 2012 6:05 pm
by JasonQuinn1992
I believe i fixed that error as I try to print the data on the screen, the screen just prints blank or black, im not sure if im missing data because here is my .txt file data

COMMISSION AMOUNT BY SALESMAN

Salesman Number Salesman Name Sales Amount Commission Rate

1245, HERMAN HOLLERITH, 1157.85, 6.5
1386, BLAISE PASCAL, 2540.00, 5
1457, CHARLES BABBAGE, 1853.70, 4
1819, JOHN ATANASOFF, 650.00, 4
1722, JOHN VON NEUMANN, 1000.00, 5
"END", 0,0,0,0

' This program reads a sequential file
'
'
'
'
' SalesNum = Salesman Number
' SalesmanNam$ = Salesman Name
' SalesAmt = Sales Amount
' CommRt = Commission Rate
' CommissionAm = Commission Amount
'
' *******************************************
' Program mainline
' *******************************************
CLS
GOSUB OpenFile
GOSUB PrintReport
GOSUB CloseFile
END

OpenFile:
OPEN "SALEDATA.txt" FOR INPUT AS #1
RETURN

PrintReport:
INPUT #1, SalesNum, Nam$, SaleAmt, CommRt
DO UNTIL SalesNum = 0
LET CommissionAm = SaleAmt * (CommRt / 100)
PRINT USING D$; SalesNum; Nam$; SaleAmt; CommRt; Comm
INPUT #1, SalesNum, Nam$, SaleAmt, CommRt
LOOP

RETURN

'****************************************************************************
' Close File
'****************************************************************************

CloseFile:
CLOSE #1
RETURN


Can you please look at my input file and see if you can find why the data is not printing?