home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh4x
/
sh41.d64
/
indexsequentiell
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
3KB
|
120 lines
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 SNR<AD THEN SNR=SNR+1
470 IF A$=CHR$(157) AND SNR>1 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