home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 41 / 64er_Magazin_Sonderheft_41_19xx_Markt__Technik_de.d64 / indexsequentiell (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  3KB  |  120 lines

  1. 90 dim name$(100), rec%(100)
  2. 100 open 1,8,15: rem befehlskanal oeffnen
  3. 110 open 2,8,2,"infodatei,s,r": rem seq.datei oeffnen
  4. 120 input#1,a: rem fehler aufgetreten?
  5. 130 if a<>0 then goto 140: rem ja, dann weiter
  6. 132 input#2,ad: rem adressanzahl lesen
  7. 134 for i=1 to ad
  8. 136 : input#2,name$(i): input#2,rec%(i)
  9. 137 : if name$(i)="*" then name$(i)=""
  10. 138 next i
  11. 140 close 2: rem sequentielle datei schliessen
  12. 150 :
  13. 160 open 2,8,2,"adressen,l,"+chr$(100): rem rel-datei oeffnen
  14. 170 :
  15. 180 :
  16. 190 rem *** menue ***
  17. 200 print:print "1=eintragen/2=suchen/3=blaettern/4=aendern/5=ende":print
  18. 210 get a$: if a$="" then goto 210
  19. 220 :
  20. 230 if a$<>"5" then on val(a$) gosub 340,1060,430,550: goto 200
  21. 240 :
  22. 250 close 2: rem relative datei schliessen
  23. 260 print#1,"s:infodatei": rem seq.datei loeschen
  24. 270 open 2,8,2,"infodatei,s,w": rem seq.datei oeffnen
  25. 280 print#2,ad: rem adressanzahl speichern
  26. 282 for i=1 to ad
  27. 284 : if name$(i)="" then name$(i)="*"
  28. 286 : print#2,name$(i): print#2,rec%(i)
  29. 288 next i
  30. 290 close 2: close 1: rem alle dateien schliesen
  31. 300 end
  32. 310 :
  33. 320 :
  34. 330 rem *** neue adresse eintragen ***
  35. 340 print "*eintragen*"
  36. 350 gosub 650: rem adresse abfragen
  37. 360 ad=ad+1
  38. 370 rec=ad: gosub 880: rem positionieren
  39. 375 name$(ad)=n$: rec%(ad)=rec: gosub 950: rem index sortieren
  40. 380 gosub 740: rem satz schreiben
  41. 390 return
  42. 400 :
  43. 410 :
  44. 420 rem *** blaettern ***
  45. 430 print "*blaettern*"
  46. 435 snr=1: goto 475
  47. 440 get a$: if a$="" then goto 440
  48. 450 if a$<>chr$(29) and a$<>chr$(157) then return
  49. 460 if a$=chr$(29) and snr<ad then snr=snr+1
  50. 470 if a$=chr$(157) and snr>1 then snr=snr-1
  51. 475 rec=rec%(snr)
  52. 480 gosub 880: rem positionieren
  53. 490 gosub 810: rem adresse lesen
  54. 500 print: print n$: print w$: print t$: print
  55. 510 goto 440
  56. 520 :
  57. 530 :
  58. 540 rem *** aendern ***
  59. 550 print "*aendern*"
  60. 560 gosub 650: rem adresse abfragen
  61. 570 gosub 880: rem positionieren
  62. 575 name$(snr)=n$: rec%(snr)=rec: gosub 950: rem index sortieren
  63. 580 gosub 730: rem satz schreiben
  64. 590 return
  65. 600 :
  66. 610 :
  67. 640 rem *** adresse abfragen ***
  68. 650 n$="": w$="": t$=""
  69. 660 input "name";n$
  70. 670 input "wohnort";w$
  71. 680 input "telefon";t$
  72. 690 return
  73. 700 :
  74. 710 :
  75. 720 rem *** datensatz schreiben ***
  76. 730 if n$="" then n$="*": rem achtung: das schreiben von
  77. 740 if w$="" then w$="*": rem 'leerstrings' muss ver-
  78. 750 if t$="" then t$="*": rem mieden werden !!!
  79. 760 print#2,n$ chr$(13) w$ chr$(13) t$: rem 1 print#-befehl !!!
  80. 770 return
  81. 780 :
  82. 790 :
  83. 800 rem *** datensatz lesen ***
  84. 810 input#2,n$: if n$="*" then n$=""
  85. 820 input#2,w$: if w$="*" then w$=""
  86. 830 input#2,t$: if t$="*" then t$=""
  87. 840 return
  88. 850 :
  89. 860 :
  90. 870 rem *** positionieren ***
  91. 880 hb=int(rec/256)
  92. 890 lb=rec-hb*256
  93. 900 print#1,"p"+chr$(2)+chr$(lb)+chr$(hb)+chr$(1)
  94. 910 return
  95. 920 :
  96. 930 :
  97. 940 rem *** sortieren ***
  98. 950 for i=1 to ad-1
  99. 960 : for j=i to ad
  100. 970 :   if name$(i)<=name$(j) then 1000
  101. 980 :   s$=name$(i): name$(i)=name$(j): name$(j)=s$
  102. 990 :   s=rec%(i): rec%(i)=rec%(j): rec%(j)=s
  103. 1000 : next j
  104. 1010 next i
  105. 1020 return
  106. 1030 :
  107. 1040 :
  108. 1050 rem *** adresse suchen ***
  109. 1060 input "gesuchter name";sn$
  110. 1070 for snr=1 to ad
  111. 1080 : if name$(snr)<>sn$ then goto 1150
  112. 1090 : rec=rec%(snr)
  113. 1100 : gosub 880: rem positionieren
  114. 1110 : gosub 810: rem satz lesen
  115. 1120 : print: print n$: print w$: print t$: print
  116. 1130 : input "weitersuchen(j/n)";a$
  117. 1140 : if a$<>"j" then return
  118. 1150 next snr
  119. 1160 return
  120.