Using KSAM/XL and KSAM 64 (32650-90886)

Appendix B 249
BASIC/V Intrinsics
BKREAD
Figure B-5. Reading From a KSAM File with BKREAD
10 DIM S$[4]
20 DIM N$[26]
30 DIM M$[72]
40 INTEGER A[10]
50 DIM B$[12]
55 INTEGER J
60 DIM B1$[1]
65 DIM B2$[2]
70 INTEGER A2[2],A3[3],A5[5]
.
.
.
1310 REM ******************************************************
1320 REM * READ FROM A KSAM FILE * o
1330 REM ******************************************************
1350 REM F IS THE FILE NUMBER OF A KSAM FILE
1360 REM OPENED BY A CALL TO BKOPEN
1370 REM
1380 REM AN ASSUMPTION HAS BEEN MADE THAT THE RECORD TO BE READ
1390 REM CONTAINS THE SAME INFORMATION THAT WAS WRITTEN TO
1400 REM THE FILE BY THE EXAMPLE TO WRITE A KSAM FILE
1410 REM
1420 CALL BKREAD(F,S$,B1$,B2$,A5[*],A3[*],A2[*])
1430 REM
1440 REM NOW DETERMINE WHETHER THIS CALL HAS SUCCEEDED
1450 REM
1460 IF S$[1;1]<>"0" THEN DO
1470 REM N$ CONTAINS THE NAME OF THE KSAM FILE
1480 REM S$ CONTAINS THE STATUS CODE SET BY THE PRECEDING CALL
1490 PRINT "UNABLE TO READ ";N$;" ERROR ";S$[1;1];" DETAIL ";S$[2]
l500 CALL BKERROR(S$,M$)
1510 PRINT M$
1520 REM
1530 REM TEST FOR END OF FILE
1540 REM AND POSITION TO LEAST VALUED PRIMARY KEY
1550 IF S$[1;1]="1" THEN 1080
1560 GOTO 3620
1570 DOEND
1580 REM
1590 REM ECHO WHAT WAS READ
1600 REM
1610 PRINT "RECORD CONTAINS";B1$,B2$
1620 MAT PRINT A5
1622 MAT PRINT A3,A2
1630 REM
1650 REM THE CONTENTS OF B1$="1", OF B2$="23"
1660 REM THE CONTENTS OF A5(1) THROUGH A5(5) ARE 1 THROUGH 5.
1670 REM THE CONTENTS OF A3 AND A2 ARE UNKNOWN.
1680 REM
1690 REM THE PROGRAM CONTINUES