home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
M.u.C.S. Disc 2000
/
MUCS2000.iso
/
sigisoft
/
happy4
/
happy4.bas
next >
Wrap
BASIC Source File
|
1997-10-09
|
17KB
|
371 lines
1 rem
3 rem 9,"^" KEY 10,"\" KEY 8,"@"
4 B$="A:\"
10 DIM D$(1001,9),Q(1001)
11 GOTO 100
20 ZZ$=LEFT$(ZZ$,L):ZZ$=ZZ$+STRING$(L-LEN(ZZ$),95):Z2=0:Y=1
21 LOCATE R,S,O:PRINT ZZ$;
22 LOCATE R,S+Y-1,1
23 Z$=INKEY$: IF Z$="" THEN 23 ELSE Z=ASC(Z$): Z1=0: IF Z=0 THEN Z1=ASC(RIGHT$(Z$,1))
24 IF Z<>13 THEN 28 ELSE IF Z2 >0 THEN 23
25 IF Y=1 THEN ZZ$=CHR$(13):LOCATE ,,0: RETURN
26 IF RIGHT$(ZZ$,1)="_" THEN ZZ$=LEFT$(ZZ$,INSTR(ZZ$,"_")-1)
27 LOCATE ,,0: RETURN
28 IF Z<>0 THEN 48
29 IF Z1<>71 THEN 31 ELSE IF Y=1 OR Z2 THEN 23
30 Y=1:GOTO 22
31 IF Z1<>75 THEN 34 ELSE IF Y=1 OR Z2 THEN 23
32 Y=Y-1:GOTO 22
34 Y=Y+1:GOTO 22
35 IF Z1<>79 THEN 39 ELSE IF Y>L OR Z2 THEN 23
36 IF MID$(ZZ$,Y,1)="_" THEN 23
37 Y=Y+1
38 IF MID$(ZZ$,Y,1)="_" THEN 22 ELSE 37
39 IF Z1<>82 THEN 42 ELSE IF RIGHT$(ZZ$,1)<>"_" THEN 23
40 IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
41 ZZ$=LEFT$(ZZ$,Y-1)+"_"+MID$(ZZ$,Y,L-Y):Z2=Z2+1:GOTO 21
42 IF Z1<>83 THEN 44 ELSE IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
43 GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+MID$(ZZ$,Y+1)+"_":GOTO 21
44 IF Z1<>117 THEN 46 ELSE IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
45 GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+STRING$(L-Y+1,95):GOTO 21
46 IF Z1<>119 THEN 23 ELSE IF Y=1 THEN 23
47 ZZ$=MID$(ZZ$,Y)+STRING$(Y-1,95):Y=1:GOTO 21
48 IF Z<>8 THEN 50 ELSE IF Y=1 THEN 23
49 ZZ$=LEFT$(ZZ$,Y-2)+MID$(ZZ$,Y)+"_":Y=Y-1:GOTO 21
50 IF Z<>27 THEN 51 ELSE ZZ$=STRING$(L,95):Y=1:Z2=0: GOTO 21
51 IF Z=95 OR Y>L THEN 23
52 ON PK% GOTO 55,53,54
53 IF Z<46 OR Z>58 THEN 23 ELSE 55
54 IF Z<>106 AND Z<>110 THEN 23
55 IF Z=44 THEN 23 ELSE GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+Z$+MID$(ZZ$,Y+1):PRINT Z$;:Y=Y+1:GOTO 22
56 IF Z2 THEN Z2=Z2-1
57 RETURN
60 CLS: LOCATE 2,29: PRINT "G E B U R T S T A G E"
61 LOCATE 4,32: PRINT " Public Domain"
62 LOCATE 5,32: PRINT " Version 2.0 "
63 color 0,7:LOCATE 1,1:PRINT " ------- (c) 1991 by Siegfried Hübner, Obere Vorstadt 21, 8812 Windsbach ------ ":color 7,0
64 LOCATE 24,5: PRINT "falls Ihnen dieses Programm gefällt, können Sie mir ja mal schreiben."
69 LOCATE 6, 5: PRINT "_____________________________________________________________________": RETURN
70 PP=1: LOCATE 22,1: PRINT SPACE$(79)
71 LOCATE 22,8: PRINT " MINDESTENS 1 ZEICHEN KORRIGIEREN UND RETURN DRÜCKEN ": RETURN
75 LOCATE 22,1: PRINT SPACE$(80)
76 LOCATE 22,5: PRINT " DATEN WERDEN AUF DISK GESPEICHERT ": RETURN
80 LOCATE 22,1: PRINT SPACE$(80)
81 LOCATE 22,5: PRINT " DATEN WERDEN VON DISK EINGELESEN ": RETURN
90 E$=INKEY$: IF E$="" THEN 90
91 RETURN
92 LOCATE 22,1: PRINT SPACE$(80)
93 LOCATE 22,5: PRINT " DRUCKER EIN UND TASTE D ZUM MENÜ MIT = \ "
94 E$=INKEY$: IF E$="" THEN 94
95 IF E$="D" OR E$="d" THEN GOSUB 98: RETURN
96 IF E$="\" THEN 100
97 GOTO 94
98 LOCATE 22,5: PRINT " DRUCKER IN BETRIEB. BITTE WARTEN ": RETURN
100 GOSUB 60: LOCATE 4,5: PRINT "DATENZAHL ";D: LOCATE ,,0
101 LOCATE 8,30: PRINT "[1] DATEN EINGABE"
102 LOCATE 10,30: PRINT "[2] DATEN AUSGABE"
103 LOCATE 12,30: PRINT "[3] DATEN LISTEN"
104 LOCATE 14,30: PRINT "[4] DATEN SUCHEN"
105 LOCATE 16,30: PRINT "[5] DATEN DRUCKEN"
107 LOCATE 18,30: PRINT "[6] LAUFWERK WECHSELN"
108 LOCATE 20,6: PRINT "[7] DATEN SPEICHERN [8] PROGRAMM BEENDEN"
109 LOCATE 21, 5: PRINT "_____________________________________________________________________"
120 E$=INKEY$: IF E$="" THEN 120
121 IF E$="1" THEN 131
122 IF E$="2" THEN GOSUB 140: GOTO 275
123 IF E$="3" THEN GOSUB 140: GOTO 379
124 IF E$="4" THEN GOSUB 140: GOTO 360
125 IF E$="5" THEN GOSUB 140: GOTO 499
126 IF E$="6" THEN 169
127 IF E$="7" THEN GOSUB 150: GOTO 100
128 IF E$="8" THEN CLS: END
129 GOTO 120
131 LOCATE 22,5: PRINT " VORHANDENE DATEN ZULADEN = ^ NEUBEGINN = \ MENÜ = @ "
132 E$=INKEY$: IF E$="" THEN 132
133 IF E$="^" THEN GOSUB 140: GOTO 200
134 IF E$="\" THEN D=0: GOTO 200
135 IF E$="@" THEN LOCATE 22,1: PRINT SPACE$(79): GOTO 120
136 GOTO 132
137 IF D=0 THEN 139
138 RETURN
139 LOCATE 22,5: PRINT " KEINE DATEN VORHANDEN. BELIEBIGE TASTE DRÜCKEN ": GOSUB 90: LOCATE 22,1: PRINT SPACE$(79): GOTO 120
140 IF D<=0 THEN GOSUB 160: RETURN
141 RETURN
150 GOSUB 137: N=2: GOSUB 45000: NA$=B$+":geb.dat": GOSUB 75
151 OPEN NA$ FOR OUTPUT AS 1
152 PRINT #1,D
153 FOR I=1 TO D
154 FOR M=1 TO 9
155 PRINT #1,D$(I,M)
156 NEXT: NEXT: CLOSE 1: RETURN
160 ON ERROR GOTO 167: NA$=B$+":geb.dat": GOSUB 80
161 OPEN NA$ FOR INPUT AS 1
162 INPUT #1,D
163 FOR I=1 TO D
164 FOR M=1 TO 9
165 INPUT #1,D$(I,M)
166 NEXT: NEXT: CLOSE 1: IF D=0 THEN 180 ELSE RETURN
167 IF ERR =53 AND ERR=58 OR ERR=1230 THEN 180
168 REM
169 LOCATE 22,5: PRINT " BISHER LAUFWERK ";B$;" NEUES LAUFWERK : "
170 ZZ$="": R=22: S=45: L=1: PK%=1: GOSUB 20: B$=ZZ$
171 IF B$=CHR$(13) THEN B$=B$
172 IF B$="A" OR B$="a" OR B$="B" OR B$="b" OR B$="C" OR B$="c" OR B$="D" OR B$="d" OR B$="E" or B$="e" THEN 174
173 BEEP: GOTO 170
174 GOTO 100
180 LOCATE 22,5: PRINT " KEINE DATEN AUF DER DISKETTE GEFUNDEN. BELIEBIGE TASTE DRÜCKEN ": GOSUB 90: GOTO 100
200 GOSUB 60
201 LOCATE 22,1: PRINT SPACE$(79): D=D+1: LOCATE 4,62: PRINT "MAXIMAL :";1000-D
202 LOCATE 5,62: PRINT "ANZAHL :";D
204 IF D>1000 THEN 206
205 GOTO 209
206 LOCATE 22,5: PRINT " DATENEINGABE BEENDET. BELIEBIGE TASTE DRÜCKEN ": D=D-1: GOSUB 90: GOTO 259
209 GOSUB 210: GOTO 219
210 PP=0: LOCATE 9,10: PRINT "[1] VORNAME : "
211 LOCATE 11,10: PRINT "[2] NACHNAME : "
212 LOCATE 13,10: PRINT "[3] STRASSE : "
213 LOCATE 15,10: PRINT "[4] PLZ : [5] ORT : "
214 LOCATE 17,10: PRINT "[6] GEBURTSTAG : . .19 "
215 LOCATE 19,10: PRINT "[7] HINWEISE : "
216 LOCATE 20, 5: PRINT "_____________________________________________________________________"
217 RETURN
219 ZZ$=""
220 R=9: S=28: L=20: PK%=1: GOSUB 20: D$(D,1)=ZZ$
221 IF D$(D,1)=CHR$(13) THEN D$(D,1)="-"
222 IF PP=1 THEN RETURN
223 ZZ$=""
225 R=11: S=28: L=20: PK%=1: GOSUB 20: D$(D,2)=ZZ$
226 IF D$(D,2)=CHR$(13) THEN BEEP: GOTO 223
227 IF PP=1 THEN RETURN
228 ZZ$=""
230 R=13: S=28: L=20: PK%=1: GOSUB 20: D$(D,3)=ZZ$
231 IF D$(D,3)=CHR$(13) THEN BEEP: GOTO 228
232 IF PP=1 THEN RETURN
233 ZZ$=""
235 R=15: S=28: L= 4: PK%=2: GOSUB 20: D$(D,4)=ZZ$
236 IF D$(D,4)=CHR$(13) THEN BEEP: GOTO 233
237 IF LEN(D$(D,4))<>4 THEN BEEP: GOTO 233
238 IF PP=1 THEN RETURN
239 ZZ$=""
240 R=15: S=48: L=25: PK%=1: GOSUB 20: D$(D,5)=ZZ$
241 IF D$(D,5)=CHR$(13) THEN BEEP: GOTO 239
242 IF PP=1 THEN RETURN
243 ZZ$=""
245 R=17: S=28: L= 2: PK%=2: GOSUB 20: D$(D,6)=ZZ$
246 IF D$(D,6)=CHR$(13) THEN D$(D,6)="-"
247 ZZ$="": R=17: S=31: L= 2: PK%=2: GOSUB 20: D$(D,7)=ZZ$
248 IF D$(D,7)=CHR$(13) THEN D$(D,7)="-"
249 ZZ$="": R=17: S=36: L= 2: PK%=2: GOSUB 20: D$(D,8)=ZZ$
250 IF D$(D,8)=CHR$(13) THEN D$(D,8)="-"
251 IF PP=1 THEN RETURN
252 ZZ$=""
255 R=19: S=28: L=20: PK%=1: GOSUB 20: D$(D,9)=ZZ$
256 IF D$(D,9)=CHR$(13) THEN D$(D,9)="-"
257 IF PP=1 THEN RETURN
259 LOCATE 22,5: PRINT " WEITER = ^ KORREKTUR = 1 - 7 HAUPTMENÜ = \ ": PP=0
260 E$=INKEY$: IF E$="" THEN 260
261 IF E$="^" THEN 201
262 IF E$="\" THEN GOSUB 150: GOTO 100
263 IF E$="1" THEN GOSUB 70: ZZ$=D$(D,1): GOSUB 220: GOTO 259
264 IF E$="2" THEN GOSUB 70: ZZ$=D$(D,2): GOSUB 225: GOTO 259
265 IF E$="3" THEN GOSUB 70: ZZ$=D$(D,3): GOSUB 230: GOTO 259
266 IF E$="4" THEN GOSUB 70: ZZ$=D$(D,4): GOSUB 235: GOTO 259
267 IF E$="5" THEN GOSUB 70: ZZ$=D$(D,5): GOSUB 240: GOTO 259
268 IF E$="6" THEN GOSUB 70: ZZ$=D$(D,6): GOSUB 245: GOTO 259
269 IF E$="7" THEN GOSUB 70: ZZ$=D$(D,9): GOSUB 255: GOTO 259
270 GOTO 260
275 GOSUB 60
276 FOR B=1 TO D
277 LOCATE 5,62: PRINT "DATEN-NR :";B
278 GOSUB 210: GOSUB 310
279 LOCATE 22,5: PRINT " WEITER = ^ ZURÜCK = \ KORREKTUR = 1-7 HAUPTMENÜ = @ ": PP=0
280 E$=INKEY$: IF E$="" THEN 280
281 IF E$="^" THEN 292
282 IF E$="\" THEN 299
283 IF E$="@" THEN 100
284 IF E$="1" THEN GOSUB 70: ZZ$=D$(B,1): GOSUB 320: GOTO 279
285 IF E$="2" THEN GOSUB 70: ZZ$=D$(B,2): GOSUB 325: GOTO 279
286 IF E$="3" THEN GOSUB 70: ZZ$=D$(B,3): GOSUB 330: GOTO 279
287 IF E$="4" THEN GOSUB 70: ZZ$=D$(B,4): GOSUB 335: GOTO 279
288 IF E$="5" THEN GOSUB 70: ZZ$=D$(B,5): GOSUB 340: GOTO 279
289 IF E$="6" THEN GOSUB 70: ZZ$=D$(B,6): GOSUB 345: GOTO 279
290 IF E$="7" THEN GOSUB 70: ZZ$=D$(B,9): GOSUB 355: GOTO 279
291 GOTO 280
292 IF B=D THEN 294
293 NEXT
294 LOCATE 22,5: PRINT " DATENENDE ZURÜCK = \ HAUPTMENÜ = @ ": PP=0
295 E$=INKEY$: IF E$="" THEN 295
296 IF E$="@" THEN 100
297 IF E$="\" THEN 299
298 GOTO 295
299 B=B-1
300 IF B<=0 THEN B=1: GOTO 276
301 GOTO 277
310 LOCATE 9,28: PRINT D$(B,1): LOCATE 11,28: PRINT D$(B,2): LOCATE 13,28: PRINT D$(B,3)
311 LOCATE 15,28: PRINT D$(B,4): LOCATE 15,47: PRINT D$(B,5): LOCATE 17,28: PRINT D$(B,6)
312 LOCATE 17,31: PRINT D$(B,7): LOCATE 17,36: PRINT D$(B,8): LOCATE 19,28: PRINT D$(B,9): RETURN
320 R=9: S=28: L=20: PK%=1: GOSUB 20: D$(B,1)=ZZ$
321 IF D$(B,1)=CHR$(13) THEN D$(B,1)="-"
322 RETURN
325 R=11: S=28: L=20: PK%=1: GOSUB 20: D$(B,2)=ZZ$
326 IF D$(B,2)=CHR$(13) THEN BEEP: ZZ$="": GOTO 325
327 RETURN
330 R=13: S=28: L=20: PK%=1: GOSUB 20: D$(B,3)=ZZ$
331 IF D$(B,3)=CHR$(13) THEN BEEP: ZZ$="": GOTO 330
332 RETURN
335 R=15: S=28: L= 4: PK%=2: GOSUB 20: D$(B,4)=ZZ$
336 IF D$(B,4)=CHR$(13) THEN BEEP: ZZ$="": GOTO 335
337 IF LEN(D$(B,4))<>4 THEN BEEP: ZZ$="": GOTO 335
338 RETURN
340 R=15: S=47: L=25: PK%=1: GOSUB 20: D$(B,5)=ZZ$
341 IF D$(B,5)=CHR$(13) THEN BEEP: ZZ$="": GOTO 340
342 RETURN
345 R=17: S=28: L= 2: PK%=2: GOSUB 20: D$(B,6)=ZZ$
346 IF D$(B,6)=CHR$(13) THEN D$(B,6)="-"
347 ZZ$="": R=17: S=31: L= 2: PK%=2: GOSUB 20: D$(B,7)=ZZ$
348 IF D$(B,7)=CHR$(13) THEN D$(B,7)="-"
349 ZZ$="": R=17: S=36: L= 2: PK%=2: GOSUB 20: D$(B,8)=ZZ$
350 IF D$(B,8)=CHR$(13) THEN D$(B,8)="-"
351 RETURN
355 R=19: S=28: L=20: PK%=1: GOSUB 20: D$(B,9)=ZZ$
356 IF D$(B,9)=CHR$(13) THEN D$(B,9)="-"
357 RETURN
360 GOSUB 60: LOCATE 4,7: PRINT "MENÜ = *"
361 GOSUB 210: LOCATE 22,1: PRINT SPACE$(79)
362 ZZ$="": R=11: S=28: L=19: PK%=1: GOSUB 20: SU$=ZZ$
363 IF SU$="*" THEN 100 ELSE IF SU$=CHR$(13) THEN BEEP: GOTO 362
364 FOR B=1 TO D: FOR I=1 TO 20
365 IF SU$=LEFT$(D$(B,2),I) THEN 368
366 NEXT : NEXT :LOCATE 22,5: PRINT " KEINE DATEN VORHANDEN. BELIEBIGE TASTE DRÜCKEN ": GOSUB 90: LOCATE 22,1: PRINT SPACE$(79): GOTO 361
368 LOCATE 5,62: PRINT "DATEN-NR :";B: GOSUB 310
369 LOCATE 22,5: PRINT " NEUSTART = ^ LÖSCHEN = L AUSDRUCK = @ MENÜ = \ "
370 E$=INKEY$: IF E$="" THEN 370
371 IF E$="^" THEN GOSUB 210: TEST=0: GOTO 361
372 IF E$="\" THEN 100
373 IF E$="L" OR E$="l" THEN GOSUB 40000: GOTO 369
374 IF E$="@" THEN GOSUB 470: GOTO 369
375 GOTO 370
379 LOCATE 22,5: PRINT " GESAMT = ^ MONAT = \ HAUPTMENÜ = @ "
380 E$=INKEY$: IF E$="" THEN 380
381 IF E$="^" THEN 390
382 IF E$="\" THEN 428
383 IF E$="@" THEN 100
384 GOTO 380
390 GOSUB 60
391 LOCATE 8,5: PRINT "NAME VOR. ORT GEBURTSTAG"
392 V=0: LOCATE 10,5: FOR B=1 TO D: V=V+1
393 PRINT TAB(5)D$(B,2);TAB(26);LEFT$(D$(B,1),3);".";TAB(31);D$(B,5);TAB(64);D$(B,6)".";D$(B,7);".19";D$(B,8)
394 IF V=10 THEN 409
395 IF B=D THEN 399
396 NEXT
399 LOCATE 22,5: PRINT " DATENENDE ZURÜCK = \ HAUPTMENÜ = @ "
400 E$=INKEY$: IF E$="" THEN 400
401 IF E$="\" THEN 418
402 IF E$="@" THEN 100
403 GOTO 400
409 LOCATE 22,5: PRINT " WEITER = ^ ZURÜCK = \ HAUPTMENÜ = @ "
410 E$=INKEY$: IF E$="" THEN 410
411 IF E$="^" THEN V=0: GOSUB 420: LOCATE 10,5: GOTO 396
412 IF E$="\" THEN 415
413 IF E$="@" THEN 100
414 GOTO 410
415 B=B-20
416 IF B<=0 THEN B=1: GOSUB 420: GOTO 392
417 GOSUB 420: LOCATE 10,5: V=0: GOTO 393
418 B=B-V-10: GOTO 416
420 FOR T=1 TO 10: LOCATE 9+T,2: PRINT SPACE$(79): NEXT: RETURN
428 GOSUB 60
429 LOCATE 22,5: PRINT " GEWÜNSCHTER MONAT : MENÜ MIT = * "
430 ZZ$="" : R=22: S=28: L=2: PK%=1: GOSUB 20: MO$=ZZ$: IF MO$="*" THEN 100
431 MO=VAL(MO$): IF MO$=CHR$(13) OR LEN(MO$)<>2 OR MO<=0 OR MO>12 THEN BEEP: GOTO 430
441 LOCATE 8,5: PRINT "NAME VOR. ORT GEBURTSTAG"
442 V=0: LOCATE 10,5: FOR B=1 TO D
443 IF MO$<>D$(B,7) THEN 446 ELSE 444
444 V=V+1: PRINT TAB(5)D$(B,2);TAB(26);LEFT$(D$(B,1),3);".";TAB(31);D$(B,5);TAB(64);D$(B,6)".";D$(B,7);".19";D$(B,8)
445 IF V=10 THEN 459
446 IF B=D THEN 449
447 NEXT
449 LOCATE 22,5: PRINT " DATENENDE NEUSTART = \ HAUPTMENÜ = @ "
450 E$=INKEY$: IF E$="" THEN 450
451 IF E$="\" THEN GOSUB 420: GOTO 442
452 IF E$="@" THEN GOSUB 420: GOTO 429
453 GOTO 400
459 LOCATE 22,5: PRINT " WEITER = ^ NEUSTART = \ HAUPTMENÜ = @ "
460 E$=INKEY$: IF E$="" THEN 460
461 IF E$="\" THEN GOSUB 420: GOTO 442
462 IF E$="^" THEN V=0: GOSUB 420: LOCATE 10,2: GOTO 447
463 IF E$="@" THEN GOSUB 420: GOTO 429
464 GOTO 460
470 GOSUB 92
471 LPRINT TAB(5)"DATENSATZAUSGABE": LPRINT " "
472 LPRINT TAB(5)"NAME :";D$(B,1);" ";D$(B,2)
473 LPRINT TAB(5)"STRASSE :";D$(B,3)
474 LPRINT TAB(5)"PLZ / WOHNORT :";D$(B,4);" ";D$(B,5)
475 LPRINT TAB(5)"GEBURTSTAG :";D$(B,6);".";D$(B,7);".19";D$(B,8)
476 LPRINT TAB(5)"BEMERKUNGEN :";D$(B,9): RETURN
499 LOCATE 22,5: PRINT " GESAMT = ^ MONAT = @ HAUPTMENÜ = \ "
500 E$=INKEY$: IF E$="" THEN 500
501 IF E$="^" THEN 510
502 IF E$="@" THEN 539
503 IF E$="\" THEN 100
504 GOTO 500
510 GOSUB 92
511 GOSUB 512: GOTO 515
512 LPRINT TAB(2)" VORNAME NACHNAME STRASSE PLZ WOHNORT GEBURTSTAG"
513 LPRINT TAB(2)"______________________________________________________________________________": LPRINT " ": RETURN
515 V=0: FOR B=1 TO D: V=V+1
516 LPRINT TAB(2)LEFT$(D$(B,1),7);TAB(11);D$(B,2);TAB(21);D$(B,3);TAB(43);D$(B,4);TAB(48);D$(B,5);TAB(69);D$(B,6);".";D$(B,7);".19";D$(B,8)
517 IF V=55 THEN 529
518 NEXT: LPRINT " "
519 LPRINT TAB(2)"______________________________________________________________________________": LPRINT " "
520 LPRINT TAB(2)"Anzahl der Geburtstage : ";D:GOTO 100
529 LOCATE 22,5: PRINT " NEUES PAPIER EINLEGEN. BELIEBIGE TASTE DRÜCKEN ": GOSUB 90: GOSUB 98: GOSUB 512: GOTO 518
531 MO=VAL(MO$): IF MO$=CHR$(13) OR LEN(MO$)<>2 OR MO<=0 OR MO>12 THEN BEEP: GOTO 540
539 LOCATE 22,5: PRINT " GEWÜNSCHTER MONAT : MENÜ MIT = * "
540 ZZ$="" : R=22: S=28: L=2: PK%=1: GOSUB 20: MO$=ZZ$: IF MO$="*" THEN 100
541 MO=VAL(MO$): IF MO$=CHR$(13) OR LEN(MO$)<>2 OR MO<=0 OR MO>12 THEN BEEP: GOTO 540
542 FOR B=1 TO D
543 IF MO$=D$(B,7) THEN 550
544 NEXT
545 LOCATE 22,5: PRINT " KEINE DATEN GEFUNDEN. BELIEBIGE TASTE DRÜCKEN. ": GOSUB 90: GOTO 539
550 GOSUB 92
551 GOSUB 512: FOR B=1 TO D
552 IF MO$<>D$(B,7) THEN 555 ELSE 553
553 V=V+1: LPRINT TAB(2)LEFT$(D$(B,1),7);TAB(11);D$(B,2);TAB(21);D$(B,3);TAB(43);D$(B,4);TAB(48);D$(B,5);TAB(69);D$(B,6);".";D$(B,7);".19";D$(B,8)
554 IF V=55 THEN 529
555 NEXT: LPRINT " "
556 LPRINT TAB(2)"______________________________________________________________________________": LPRINT " "
557 LPRINT TAB(2)"ANZAHL DER DATENSÄTZE : ";D: GOTO 100
559 LOCATE 22,5: PRINT " NEUES PAPIER EINLEGEN. BELIEBIGE TASTE DRÜCKEN ": GOSUB 90: GOSUB 98: GOSUB 512: GOTO 552
40000 LOCATE 22,5: PRINT " DATENSATZ LÖSCHEN = L ZURÜCK = \ "
40010 E$=INKEY$: IF E$="" THEN 40010
40011 IF E$="L" OR E$="l" THEN 40015
40012 IF E$="\" THEN RETURN
40013 RETURN
40015 IF TEST=1 THEN RETURN
40020 Y=0: J=0: FOR Y=B TO D: FOR J=1 TO 9: D$(Y,J)=D$(Y+1,J): NEXT J,Y
40021 FOR J=1 TO 9: D$(D,J)=" ": NEXT: D=D-1: TEST=1
40022 LOCATE 22,5: PRINT " DATENSATZ IST GELÖSCHT. BELIEBIGE TASTE DRÜCKEN ": GOSUB 90: GOSUB 150: GOSUB 210: RETURN
45000 J=0 : L=0 : I=0 : L=1 : Q(L)=D+1 : M=1
45001 J=Q(L) : I=M-1
45002 IF J-M<3 THEN 45016
45003 M1=INT((I+J)/2)
45004 I=I+1
45005 IF I=J THEN 45012
45007 J=J-1
45008 IF I=J THEN 45012
45009 IF D$(J,N)>= D$(M1,N) THEN 45007
45010 FOR Z=1 TO 9 : D$(O,Z)=D$(I,Z) : D$(I,Z)=D$(J,Z) : D$(J,Z)=D$(O,Z) : NEXT Z
45011 GOTO 45004
45012 IF I>=M1 THEN I=I-1
45013 IF J=M1 THEN 45015
45014 FOR Z=1 TO 9: D$(O,Z)=D$(I,Z) : D$(I,Z)=D$(M1,Z) : D$(M1,Z)=D$(O,Z) : NEXT
45015 L=L+1 : Q(L)=I : GOTO 45001
45016 IF J-M<2 THEN 45019
45017 IF D$(M,N)<D$(M+1,N) THEN 45019
45018 FOR Z=1 TO 9: D$(O,Z)=D$(M,Z) : D$(M,Z)=D$(M+1,Z) : D$(M+1,Z)=D$(O,Z) : NEXT
45019 M=Q(L) +1 : L=L-1
45020 IF L> 0 THEN 45001
45021 RETURN