1000 GOSUB 7180 'cs 1010 PRINT:PRINT TAB(29);"DGET - March 20, 1982 1015 ' by Dan Dugan -- public domain 1020 PRINT 1030 DEFINT A-Z 1040 COMMON I,J,K,X,Y,T$,R$,S$,T1$,SKIPPARSE,FT,SEARCH, C,N,NC,P6,P7,P8,P9,PI,S,T,T1,T2,C(),B$(),N$(), SEARCHWORD$(),SEARCHFIELD(),SKIPWORD$(),LOOKFIELD(),DD$(),F$,FT$ 1055 DIM DEST(30),USED(30) 1060 ' OPEN SOURCE FILE 1070 PRINT:INPUT"Name of source file";X$ 1080 GOSUB 7290:F2$=Y$ 'ucv 1090 IF MID$(F2$,2,1)=":" THEN 1120 1100 F2$=DD$(5)+F2$ 1120 ' TEST FOR EXISTENCE 1130 ON ERROR GOTO 1160 1140 OPEN"I",3,F2$ 1150 ON ERROR GOTO 0:GOTO 1210 'ok 1160 CLOSE 3 1170 IF ERR=53 THEN CLOSE 3:PRINT"File not found":RESUME 1060 1180 IF ERR=64 THEN PRINT"Bad file name, try again.":RESUME 1060 1190 ON ERROR GOTO 0 1210 ' ENTER SEQUENCE OF FIELDS 1212 PRINT:PRINT"Here's the first line of "F2$". 1214 LINE INPUT#3,T1$ 1216 PRINT:PRINT T1$ 1218 CLOSE 3:OPEN"I",3,F2$ 1220 PRINT:INPUT"Number of fields in the source file records";NF 1225 PRINT:FOR I=1 TO NC:USED(I)=0:NEXT 1230 FOR I=1 TO NF 1240 PRINT"Destination field of field"I;:INPUT DEST(I) 1245 IF DEST(I)>NC THEN 1240 1247 IF DEST(I)=0 THEN 1270 1250 IF USED(DEST(I)) THEN 1240 1260 USED(DEST(I))=1 1270 NEXT 1280 PRINT:PRINT"Is this ok (y/n)?"; 1282 A$=INPUT$(1):PRINT A$ 1284 IF A$<>"y" THEN CLOSE 3:GOTO 1060 1286 C=1:PRINT 1300 ' READ FILE 1305 GOSUB 7140 'exit 1310 IF EOF(3) THEN 7020 1315 FOR I=1 TO NC:B$(I)="":NEXT:NR=NR+1 1320 FOR I=1 TO NF 1330 IF EOF(3) THEN 7020 1340 INPUT#3,T1$ 1350 IF DEST(I) THEN 1352 ELSE 1360 1352 QUOTE=INSTR(T1$,CHR$(126)) 1353 IF QUOTE THEN MID$(T1$,QUOTE,1)=CHR$(34):GOTO 1352 1355 B$(DEST(I))=T1$ 1360 NEXT 1370 ' ADD RECORD TO DIMS FILE 1380 T$="" 1390 FOR J=1 TO NC 1400 IF LEN(T$)+LEN(B$(J))+1>FT*128 THEN PRINT"Record too long." 1410 T$=T$+B$(J)+CHR$(126) 1420 NEXT 1425 N=N+1:PRINT N;T$; 1430 GOSUB 1450:PRINT"*";:GOSUB 1520:PRINT"!":C=1 1440 ' LOOP 1445 GOTO 1300 1450 ' (SUB) WRITE T$ AS RECORD # N 1460 ON FT GOTO 1490,1470 1470 LSET R$=MID$(T$,129) 'latter half 1480 PUT #1,FT*N+2 1490 LSET R$=LEFT$(T$,128) 'first half 1500 PUT #1,FT*N+1 1510 RETURN 1520 ' (SUB) WRITE T$ AS DUPE REC N 1530 ON FT GOTO 1560,1540 1540 LSET S$=MID$(T$,129) 1550 PUT #2,FT*N+2 1560 LSET S$=LEFT$(T$,128) 1570 PUT #2,FT*N+1 1580 RETURN 7020 ' FINISH 7024 CLOSE 3 7025 PRINT:PRINT NR"records added. 7030 PRINT:PRINT TAB(32)"Re-loading DEDIT. 7040 CHAIN DD$(1)+"DEDIT",1000 7140 ' EXIT TEST (TERM DEP) 7150 X$=INKEY$:X=0 7152 IF X$<>"" THEN X=ASC(X$) 7160 IF X=27 THEN CLOSE 3:GOTO 7020 'use ESC to escape listing 7170 RETURN 7180 ' CLEAR SCREEN (TERM DEP) 7190 PRINT CHR$(12); 7200 RETURN 7290 ' (SUB) UCV 7300 Y$="" 7310 FOR K=1 TO LEN(X$) 7320 Y$=Y$+CHR$(32) 7330 X=ASC(MID$(X$,K,1)) 7340 IF 96