90 DIM NAME$(100), REC%(100) 95 GOSUB 1310 : REM BLOCKBELEGUNG 100 OPEN 1,8,15: REM BEFEHLSKANAL OEFFNEN 110 OPEN 2,8,2,"INFODATEI,S,R": REM SEQ.DATEI OEFFNEN 120 INPUT#1,A: REM FEHLER AUFGETRETEN? 130 IF A<>0 THEN GOTO 140: REM JA, DANN WEITER 132 INPUT#2,AD: REM ADRESSANZAHL LESEN 134 FOR I=1 TO AD 136 : INPUT#2,NAME$(I): INPUT#2,REC%(I) 137 : IF NAME$(I)="*" THEN NAME$(I)="" 138 NEXT I 140 CLOSE 2: REM SEQUENTIELLE DATEI SCHLIESSEN 150 : 160 OPEN 2,8,2,"#": REM DIREKTZUGRIFFS-DATEI OEFFNEN 170 : 180 : 190 REM *** MENUE *** 200 PRINT:PRINT "1=EINTRAGEN/2=SUCHEN/3=BLAETTERN/4=AENDERN/5=ENDE":PRINT 210 GET A$: IF A$="" THEN GOTO 210 220 : 230 IF A$<>"5" THEN ON VAL(A$) GOSUB 340,1060,430,550: GOTO 200 240 : 250 CLOSE 2: REM RELATIVE DATEI SCHLIESSEN 260 PRINT#1,"S:INFODATEI": REM SEQ.DATEI LOESCHEN 270 OPEN 2,8,2,"INFODATEI,S,W": REM SEQ.DATEI OEFFNEN 280 PRINT#2,AD: REM ADRESSANZAHL SPEICHERN 282 FOR I=1 TO AD 284 : IF NAME$(I)="" THEN NAME$(I)="*" 286 : PRINT#2,NAME$(I): PRINT#2,REC%(I) 288 NEXT I 290 CLOSE 2: CLOSE 1: REM ALLE DATEIEN SCHLIESEN 300 END 310 : 320 : 330 REM *** NEUE ADRESSE EINTRAGEN *** 340 PRINT "*EINTRAGEN*" 350 GOSUB 650: REM ADRESSE ABFRAGEN 360 AD=AD+1 370 REC=AD: GOSUB 1210 : REM UMRECHNUNG 375 NAME$(AD)=N$: REC%(AD)=REC: GOSUB 950: REM INDEX SORTIEREN 380 GOSUB 740: REM SATZ SCHREIBEN 390 RETURN 400 : 410 : 420 REM *** BLAETTERN *** 430 PRINT "*BLAETTERN*" 435 SNR=1: GOTO 475 440 GET A$: IF A$="" THEN GOTO 440 450 IF A$<>CHR$(29) AND A$<>CHR$(157) THEN RETURN 460 IF A$=CHR$(29) AND SNR1 THEN SNR=SNR-1 475 REC=REC%(SNR) 480 GOSUB 1210: REM UMRECHNUNG 490 GOSUB 810 : REM ADRESSE LESEN 500 PRINT: PRINT N$: PRINT W$: PRINT T$: PRINT 510 GOTO 440 520 : 530 : 540 REM *** AENDERN *** 550 PRINT "*AENDERN*" 560 GOSUB 650 : REM ADRESSE ABFRAGEN 570 GOSUB 1210: REM UMRECHNUNG 575 NAME$(SNR)=N$: REC%(SNR)=REC: GOSUB 950: REM INDEX SORTIEREN 580 GOSUB 730: REM SATZ SCHREIBEN 590 RETURN 600 : 610 : 640 REM *** ADRESSE ABFRAGEN *** 650 N$="": W$="": T$="" 660 INPUT "NAME";N$ 670 INPUT "WOHNORT";W$ 680 INPUT "TELEFON";T$ 690 RETURN 700 : 710 : 720 REM *** DATENSATZ SCHREIBEN *** 730 IF N$="" THEN N$="*": REM ACHTUNG: DAS SCHREIBEN VON 740 IF W$="" THEN W$="*": REM 'LEERSTRINGS' MUSS VER- 750 IF T$="" THEN T$="*": REM MIEDEN WERDEN !!! 755 PRINT#1,"B-P:";2;1 : REM BUFFER-POINTER SETZEN 760 PRINT#2,N$ CHR$(13) W$ CHR$(13) T$: REM 1 PRINT#-BEFEHL !!! 765 PRINT#1,"U2:";2;0;SPUR;SEKT : REM PUFFER AUF DISK SCHREIBEN 770 RETURN 780 : 790 : 800 REM *** DATENSATZ LESEN *** 810 PRINT#1,"U1:";2;0;SPUR;SEKT 812 PRINT#1,"B-P:";2;1 818 INPUT#2,N$: IF N$="*" THEN N$="" 820 INPUT#2,W$: IF W$="*" THEN W$="" 830 INPUT#2,T$: IF T$="*" THEN T$="" 840 RETURN 850 : 860 : 940 REM *** SORTIEREN *** 950 FOR I=1 TO AD-1 960 : FOR J=I TO AD 970 : IF NAME$(I)<=NAME$(J) THEN 1000 980 : S$=NAME$(I): NAME$(I)=NAME$(J): NAME$(J)=S$ 990 : S=REC%(I): REC%(I)=REC%(J): REC%(J)=S 1000 : NEXT J 1010 NEXT I 1020 RETURN 1030 : 1040 : 1050 REM *** ADRESSE SUCHEN *** 1060 INPUT "GESUCHTER NAME";SN$ 1070 FOR SNR=1 TO AD 1080 : IF NAME$(SNR)<>SN$ THEN GOTO 1150 1090 : REC=REC%(SNR) 1100 : GOSUB 1210: REM UMRECHNUNG 1110 : GOSUB 810 : REM SATZ LESEN 1120 : PRINT: PRINT N$: PRINT W$: PRINT T$: PRINT 1130 : INPUT "WEITERSUCHEN(J/N)";A$ 1140 : IF A$<>"J" THEN RETURN 1150 NEXT SNR 1160 RETURN 1170 : 1180 : 1200 REM *** RECORDNR.=>SPUR/SEKTOR *** 1210 IF REC<358 THEN AA=0:BB=22:DD=1:GOTO 1250 1220 IF REC>471 THEN AA=357:BB=20:DD=19:GOTO 1250 1230 IF REC<580 THEN AA=471:BB=19:DD=25:GOTO 1250 1240 AA=579:BB=18:DD=31 1250 SPUR=INT(((REC-AA)-1)/(BB-1))+DD 1260 SEKT=REC-AA-(SPUR-DD)*BB+(SPUR-DD-1) 1270 RETURN 1280 : 1290 : 1300 REM *** BLOCKBELEGUNG *** 1310 OPEN 1,8,15 1320 OPEN 2,8,2,"#" 1330 PRINT#1,"U1:";2;0;18;0 : REM SEKTOR 0 VON SPUR 18 LESEN 1340 : 1350 PRINT#1,"B-P:";2;4 : REM AB BYTES FUER SPUR 1 MANIPUL. 1360 FOR I=1 TO 4*17 : REM SPUR 1-17 ALS BELEGT 1370 : PRINT#2,CHR$(0); : REM KENNZEICHNEN 1380 NEXT 1390 : 1400 PRINT#1,"B-P:";2;4+4*18: REM AB BYTES FUER SPUR 19 MANIPUL. 1410 FOR I=1 TO 4*12 : REM SPUR 19-30 ALS BELEGT 1420 : PRINT#2,CHR$(0); : REM KENNZEICHNEN 1430 NEXT 1440 : 1450 PRINT#1,"U2:";2;0;18;0 : REM BAM ZURUECKSCHREIBEN 1460 PRINT#1,"I" : REM MANIPUL.DIRECTORY HOLEN 1470 CLOSE 1: CLOSE 2 1480 RETURN