90 DIM NAME$(100), REC%(100) 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,"ADRESSEN,L,"+CHR$(100): REM REL-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 880: REM POSITIONIEREN 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 880: REM POSITIONIEREN 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 880: REM POSITIONIEREN 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 !!! 760 PRINT#2,N$ CHR$(13) W$ CHR$(13) T$: REM 1 PRINT#-BEFEHL !!! 770 RETURN 780 : 790 : 800 REM *** DATENSATZ LESEN *** 810 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 : 870 REM *** POSITIONIEREN *** 880 HB=INT(REC/256) 890 LB=REC-HB*256 900 PRINT#1,"P"+CHR$(2)+CHR$(LB)+CHR$(HB)+CHR$(1) 910 RETURN 920 : 930 : 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 880: REM POSITIONIEREN 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