home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 41
/
64er_Magazin_Sonderheft_41_19xx_Markt__Technik_de.d64
/
indexsequentiell
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
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