home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh2x / sh28b.d64 / indexsequentiell (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  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.