'********************************** '* * '* Program CONVERT * '* * '********************************** 110 REM 120 REM PROGRAM TO WRITE POINTER FILE AND ITEM FILE FROM OLD TYPE 130 REM sequential file, to continue adding items fed to it in sequential REM order. 140 REM 150 REM CEREC=RECORD OF LAST ITEM CHARACTERISTIC 160 REM CNREC=TOTAL NUMBER OF WHOLE ITEMS 170 REM IBREC=FIRST RECORD HOLDING TEXT OF ITEMS 180 REM IEREC=LAST RECORD OF ITEMS 190 REM 200 REM NEW FILE HAS SECTION WITH POINTERS FOLLOWED BY SECTION WITH ITEMS 210 REM IN PACKED FORMAT 220 REM OLD FILE HAS STANDARD SOCRATES SEQUENTIAL ITEM FORMAT WITH 230 REM 10-DIGIT LINE NUMBER ON LEFT SIDE 240 REM 250 REM FIRST RECORD OF NEW FILE IS TITLE OF BANK 260 REM SECOND RECORD OF NEW FILE HOLDS VARIABLES CEREC,CNREC,IBREC, AND IEREC 270 REM IN THAT SEQUENCE, EACH BLOCKED AS 10-CHARACTER STRINGS 280 REM DIM DSK$(15) '************************************* ' 'Module to read the file PROTOCOL 'File PROTOCOL contains path information and printer protocol information ' '************************************* 306 ON ERROR GOTO 311 OPEN "I", #1, "PROTOCOL" 308 FOR N = 1 TO 11 INPUT #1, A$ INDX = VAL(LEFT$(A$, 2)) DSK$(INDX) = RIGHT$(A$, LEN(A$) - 3) NEXT N LINE INPUT #1, A$ IFORM% = VAL(RIGHT$(A$, LEN(A$) - 3)) IFORM% = IFORM% * 2 LINE INPUT #1, A$ CR$ = CHR$(VAL(RIGHT$(A$, LEN(A$) - 3))) LINE INPUT #1, A$ LF$ = CHR$(VAL(RIGHT$(A$, LEN(A$) - 3))) LINE INPUT #1, A$ FOR M = 6 TO LEN(A$) IF ASC(MID$(A$, M, 1)) = 44 THEN 314 NEXT M GOTO 313 314 NC = VAL(MID$(A$, 5, M - 5)) IIS = M + 1 HLF$ = "" FOR N = 1 TO NC IF N = NC THEN 315 FOR M = IIS TO LEN(A$) IF ASC(MID$(A$, M, 1)) = 44 THEN 316 NEXT M FOR M = IIS TO LEN(A$) IF ASC(MID$(A$, M, 1)) = 44 THEN 316 NEXT M GOTO 313 316 HLF$ = HLF$ + CHR$(VAL(MID$(A$, IIS, M - IIS))) IIS = M + 1 NEXT N 315 HLF$ = HLF$ + CHR$(VAL(RIGHT$(A$, LEN(A$) - IIS + 1))) LINE INPUT #1, A$ FF$ = CHR$(VAL(RIGHT$(A$, LEN(A$) - 3))) CLOSE GOTO 290 311 RESUME 313 313 CLOSE CHAIN "START" '************************************** ' 'End PROTOCOL module ' '************************************** 290 CLS 300 CEREC = 0 310 CNREC = 0 320 IBREC = 0 330 IEREC = 0 340 ON ERROR GOTO 1620 PRINT "Old file may be on any disk in any subdirectory." 350 INPUT "Type full name (including path) of old file "; F1$ 360 OPEN "I", #1, F1$ 370 ON ERROR GOTO 1640 PRINT "New file must already have been initialized. It will" PRINT "be located in the subdirectory that holds all other " PRINT "MICROSOC banks." PRINT 380 INPUT "Type name of new item bank. Do not include path."; F2$ 390 CLS 400 OPEN "I", #11, DSK$(11) + F2$ 410 CLOSE #11 420 OPEN "R", #11, DSK$(11) + F2$, 80 430 FIELD #11, 80 AS IL$ 440 GET #11, 2 450 CEREC = VAL(LEFT$(IL$, 10)) 460 CNREC = VAL(MID$(IL$, 11, 10)) 470 IBREC = VAL(MID$(IL$, 21, 10)) 480 IEREC = VAL(MID$(IL$, 31, 10)) 490 GET #11, 1 500 CLS 510 PRINT "Title of this bank reads "; 520 LOCATE 4, 1, 1, 6, 7 530 COLOR 0, 7 540 FOR N = 80 TO 1 STEP -1 550 IF MID$(IL$, N, 1) <> " " THEN 570 560 NEXT N 570 PRINT LEFT$(IL$, N); 580 LOCATE 8, 1, 1, 6, 7 590 COLOR 0, 1 600 PRINT "Is this OK?"; 610 INPUT A$ 620 IF LEFT$(A$, 1) = "Y" OR LEFT$(A$, 1) = "y" THEN 650 630 CLOSE #11 640 GOTO 380 650 COLOR 7, 0 660 LOCATE 13, 1, 1, 6, 7 670 PRINT "Items this session Total items"; 680 REM 690 REM M is a dummy variable used for printing number of items added previously 700 REM 710 M = 0 720 REM 730 REM NIT is number of items added in this session 740 REM 750 NIT = 0 760 ON ERROR GOTO 1380 770 TMP$ = "" 780 IF CNREC = 0 THEN 930 790 LINE INPUT #1, A$ 800 GET #11, CEREC 810 IF LEFT$(A$, 7) > LEFT$(IL$, 7) THEN 930 820 COLOR 16, 7 830 LOCATE 20, 1, 1, 6, 7 840 PRINT "First item in "; F1$; " has lower ID number than last item": PRINT "in file "; F2$; ". This program adds item only in ascending sequential": PRINT "order of item ID numbers." 850 COLOR 0, 7 860 LOCATE 23, 1, 1, 6, 7 870 PRINT "Strike any key to return to program control."; 880 B$ = INKEY$ 890 IF LEN(B$) = 0 THEN 880 900 COLOR 7, 0 910 CLOSE 920 CHAIN "microsoc" 930 CLOSE #1 940 OPEN "I", #1, F1$ 950 LINE INPUT #1, A$ 960 ES$ = " " 970 EI$ = "" 980 IF MID$(A$, 8, 3) = "000" THEN 1200 982 IF LEN(A$) > 10 THEN 990 984 A$ = A$ + " " 990 IF MID$(A$, 9, 2) = "99" THEN 1170 1000 TMP$ = TMP$ + ES$ + RIGHT$(A$, LEN(A$) - 10) + CHR$(3) + EI$ 1010 IF MID$(A$, 8, 3) = "999" THEN 1040 1020 IF LEN(TMP$) < 81 THEN 950 1030 GOTO 1110 1040 IF LEN(TMP$) < 81 THEN 1060 1050 GOTO 1110 1060 LSET IL$ = TMP$ 1070 PUT #11, IEREC + 1 1080 IEREC = IEREC + 1 1090 TMP$ = "" 1100 GOTO 950 1110 LSET IL$ = LEFT$(TMP$, 80) 1120 PUT #11, IEREC + 1 1130 IEREC = IEREC + 1 1140 TMP$ = RIGHT$(TMP$, LEN(TMP$) - 80) 1150 IF MID$(A$, 8, 3) = "999" THEN 1040 1160 GOTO 950 1170 ES$ = MID$(A$, 8, 1) 1180 IF MID$(A$, 8, 3) = "999" THEN EI$ = CHR$(3) 1190 GOTO 1000 1200 A$ = A$ + STRING$(80 - LEN(A$), 32) 1210 N$ = STR$(IEREC + 1) 1220 TMP$ = LEFT$(A$, 7) + CHR$(3) 1230 C$ = LEFT$(A$, 7) + MID$(A$, 11, 12) + N$ + STRING$(9 - LEN(N$), " ") + MID$(A$, 32, 23) + " " + RIGHT$(A$, LEN(A$) - 54) 1240 LSET IL$ = C$ 1250 PUT #11, CEREC + 1 1260 CEREC = CEREC + 1 1270 M = M + 1 1280 NIT = NIT + 1 1290 CNREC = CNREC + 1 1300 IF M <> 10 THEN 950 1310 LOCATE 15, 1, 1, 6, 7 1320 PRINT NIT; " "; CNREC; 1330 LSET IL$ = STRING$(80, " ") 1340 PUT #11, CEREC + 1 1350 CEREC = CEREC + 1 1360 M = 0 1370 GOTO 950 1380 RESUME 1390 1390 GET #11, CEREC 1400 IF IL$ <> STRING$(80, 32) THEN 1430 1410 CEREC = CEREC - 1 1420 GOTO 1390 1430 LOCATE 15, 1, 1, 6, 7 1440 PRINT NIT; " "; CNREC; 1450 COLOR 0, 7 1460 I$ = STR$(CEREC) 1470 J$ = STR$(CNREC) 1480 K$ = STR$(IBREC) 1490 L$ = STR$(IEREC) 1500 A$ = I$ + STRING$(10 - LEN(I$), " ") + J$ + STRING$(10 - LEN(J$), " ") + K$ + STRING$(10 - LEN(K$), " ") + L$ + STRING$(10 - LEN(L$), " ") 1510 LSET IL$ = A$ 1520 PUT #11, 2 1530 CLOSE 1540 LOCATE 16, 1, 1, 6, 7 1550 PRINT "Items from file "; F1$; " have been added to "; F2$; " successfully." 1560 PRINT "Strike any key to continue" 1570 COLOR 7, 0 1580 B$ = INKEY$ 1590 IF LEN(B$) = 0 THEN 1580 1600 CHAIN "MICROSOC" 1610 END 1620 PRINT "Cannot find "; F1$ 1630 RESUME 350 1640 PRINT "Test Item Bank "; F2$; " has not been created." PRINT ERR, ERL PRINT "You must first create or initialize this file." PRINT "Type ENTER to return to MICROSOC for bank initialization." PRINT "Type ESC to exit program." 1645 A$ = INKEY$ IF LEN(A$) = 0 THEN 1645 IF ASC(A$) = 13 THEN 1650 IF ASC(A$) <> 27 THEN 1645 CLOSE END 1650 CHAIN "microsoc"

Disclaimer: The views and opinions expressed on unofficial pages of California State University, Dominguez Hills faculty, staff or students are strictly those of the page authors. The content of these pages has not been reviewed or approved by California State University, Dominguez Hills.