Sharp PC1360 |
10 | AUTOGOTO 70 |
70 | "A" GOSUB 7490 :CHAIN "X:ADBCHN.PRG",70 |
170 | RESTORE 190 :GOTO 7290 |
190 | DATA 1,"SUCHE",2,"Nachname",210,"Vorname",220,"Geburtstag",360 |
210 | PRINT "Nachname:":L=0:GOTO 230 |
220 | PRINT "Vorname:":L=1 |
230 | M$(0)="A":INPUT M$(0) |
240 | IF LEN M$(0)<3 LET M$(0)=M$(0)+"aa" |
250 | GOSUB 6490 :IF F5 GOTO 230 |
260 | POKE 12348,16:CLEAR A:B=G |
270 | P=S(0,L):IF M$(0)<D$(P,L) LET R=0:RETURN |
280 | R=INT ((A+B)/2) |
290 | P=S(R,L) |
300 | IF D$(P,L)=M$(0) GOTO 340 |
310 | IF B-A=1 LET R=R+1:P=S(R,L):RETURN |
320 | IF D$(P,L)<M$(0) LET A=R:GOTO 280 |
330 | B=R:GOTO 280 |
340 | IF R IF D$(S(R-1,L),L)=M$(0) LET R=R-1:P=S(R,L):GOTO 340 |
350 | RETURN |
360 | PRINT "Geburtstag:":INPUT M$(0) |
370 | L=2:CLEAR A:B=G:IF M$(0)="" CLEAR U,V:GOTO 400 |
380 | U=VAL LEFT$ (M$(0),2):V=VAL MID$ (M$(0),4,2):W=1900:GOSUB 490 |
390 | IF F5 GOSUB 6510 :GOTO 360 |
400 | W=U+V*31 |
410 | P=S(0,2):IF W<VAL LEFT$ (D$(P,5),2)+31*VAL MID$ (D$(P,5),4,2) LET R=0:RETURN |
420 | R=INT ((A+B)/2):P=S(R,2):H=VAL LEFT$ (D$(P,5),2)+31*VAL MID$ (D$(P,5),4,2) |
430 | IF H=W GOTO 470 |
440 | IF B-A=1 LET R=R+1:P=S(R,L):RETURN |
450 | IF H<W LET A=R:GOTO 420 |
460 | B=R:GOTO 420 |
470 | IF R LET H=S(R-1,2):IF VAL LEFT$ (D$(H,5),2)+31*VAL MID$ (D$(H,5),4,2)=W LET P=H:R=R-1:GOTO 470 |
480 | RETURN |
490 | CLEAR F5:IF U<1 OR U>31 OR V<1 OR V>12 OR W<1890 OR W>1999 LET F5=1:GOTO 520 |
500 | IF (V=4 OR V=6 OR V=9 OR V=11) AND U>30 LET F5=1:GOTO 520 |
510 | IF V=2 AND U>29 LET F5=1 |
520 | RETURN |
530 | RESTORE 550 :GOTO 7290 |
550 | DATA 1,LEFT$ (D$(P,1)+" "+D$(P,0),24),2,"o.k.",610 |
560 | DATA "weiter",570,"zurueck",590 |
570 | R=R+1:IF R>G BEEP 1,255,100:R=G |
580 | P=S(R,L):GOTO 530 |
590 | R=R-1:IF -R CLEAR R:BEEP 1,255,100 |
600 | P=S(R,L):GOTO 530 |
610 | RETURN |
690 | F4=LEN (D$(P,0)+D$(P,1))<24 |
700 | IF F4 PRINT D$(P,1);" ";D$(P,0):GOTO 720 |
710 | PRINT D$(P,1):PRINT D$(P,0) |
720 | PRINT D$(P,2):IF F4=0WAIT |
730 | PRINT D$(P,3):IF F4=0WAIT 0:GOTO 750 |
740 | IF F4 GOSUB 6300 |
750 | WAIT 0:CLS :FOR W=4 TO 6:PRINT D$(P,W):NEXT W:GOSUB 6300 |
760 | RETURN |
2410 | IF F1=0 BEEP 1,255,100:PRINT "Keine Datei !":GOSUB 6300 :GOTO 40 |
2420 | RESTORE 2430 :GOTO 7290 |
2430 | DATA 1,"PFLEGE",5,"Satz dazu",2450,"Datei neu",7450,"Aenderung",2750 |
2440 | DATA "Loeschen",3190,"Sortieren",3410,"MENU",70 |
2450 | IF G=M PRINT "Speicher voll !":GOSUB 6300 :GOTO 70 |
2460 | G=G+1:F6=F6+1:CLEAR F2 |
2470 | M$(0)="":PRINT "Name:":INPUT M$(0) |
2480 | GOSUB 6490 :IF F5GOTO 2470 |
2490 | D$(G,0)=M$(0) |
2500 | M$(0)="":PRINT "Vorname:":INPUT M$(0) |
2510 | CLS :IF M$(0)=""GOTO 2530 |
2520 | GOSUB 6490 :IF F5GOTO 2500 |
2530 | D$(G,1)=M$(0) |
2540 | M$(0)="":PRINT "Strasse:":INPUT M$(0) |
2550 | GOSUB 6490 :IF F5GOTO 2540 |
2560 | D$(G,2)=M$(0) |
2570 | PRINT "PLZ Ort:":INPUT D$(G,3) |
2580 | CLS :IF VAL D$(G,3)=0 LET M$(0)=D$(G,3):GOTO 2600 |
2590 | M$(0)=RIGHT$ (D$(G,3),(LEN D$(G,3)-LEN STR$ VAL D$(G,3)-1)) |
2600 | GOSUB 6490 |
2610 | IF F5 GOTO 2570 |
2620 | PRINT "Telefon:":INPUT D$(G,4) |
2630 | CLS :M$(0)="":PRINT "Geburtsdatum:":INPUT M$(0) |
2640 | IF M$(0)="" CLEAR U,V:GOTO 2710 |
2650 | CLEAR F5:IF LEN M$(0)<>10 LET F5=1:GOTO 2690 |
2660 | U=VAL LEFT$ (M$(0),2):V=VAL MID$ (M$(0),4,2):W=VAL RIGHT$ (M$(0),4) |
2670 | GOSUB 490 |
2680 | IF V=2 AND (W/4<>INT (W/4) OR W/400=INT (W/400)) AND U>28 LET F5=1 |
2690 | GOSUB 6510 :IF F5 GOTO 2630 |
2700 | D$(G,5)=M$(0) |
2710 | CLS :PRINT "Bemerkung:":INPUT D$(G,6) |
2720 | POKE 12348,16:CLS :P=G |
2730 | PRINT "Kontrollausgabe:":GOSUB 6300 |
2740 | GOSUB 690 :RESTORE 2745 :GOTO 7290 |
2745 | DATA 1,"Datensatz",1,"o.k.",2410,"aendern",2770 |
2750 | PRINT "Zu aendernder Datensatz:":GOSUB 6300 |
2760 | GOSUB 170 :GOSUB 530 |
2770 | PRINT "alter Name:":PRINT D$(P,0):PRINT "neuer Name:" |
2780 | M$(0)=D$(P,0):INPUT M$(0) |
2790 | CLS :POKE 12348,16:IF M$(0)=D$(P,0)GOTO 2820 |
2800 | GOSUB 6490 :IF F5 GOTO 2770 |
2810 | F7=1:F2=0:D$(P,0)=M$(0) |
2820 | PRINT "alter Vorname:":PRINT D$(P,1):PRINT "neuer Vorname:" |
2830 | M$(0)=D$(P,1):INPUT M$(0) |
2840 | CLS :POKE 12348,16:IF M$(0)=D$(P,1)GOTO 2870 |
2850 | GOSUB 6490 :IF F5 GOTO 2820 |
2860 | F7=1:F2=0:D$(P,1)=M$(0) |
2870 | PRINT "alte Strasse:":PRINT D$(P,2):PRINT "neue Strasse:" |
2880 | M$(0)=D$(P,2):INPUT M$(0) |
2890 | CLS :POKE 12348,16:IF M$(0)=D$(P,2) GOTO 2920 |
2900 | GOSUB 6490 :IF F5 GOTO 2870 |
2910 | F2=0:D$(P,2)=M$(0) |
2920 | PRINT "alter Ort:":PRINT D$(P,3):PRINT "neuer Ort:" |
2930 | M$(0)=D$(P,3):INPUT M$(0) |
2940 | CLS :POKE 12348,16:IF M$(0)=D$(P,3) GOTO 2980 |
2950 | F2=0:D$(P,3)=M$(0) |
2960 | M$(0)=RIGHT$ (M$(0),LEN M$(0)-LEN STR$ VAL M$(0)-1):GOSUB 6490 |
2970 | IF F5 GOTO 2920 |
2980 | PRINT "alte Telefonnr.:":PRINT D$(P,4):PRINT "neue Telefonnr.:" |
2990 | M$(0)=D$(P,4):INPUT M$(0) |
3000 | CLS :IF M$(0)=D$(P,4) GOTO 3020 |
3010 | F2=0:D$(P,4)=M$(0) |
3020 | PRINT "alter Geburtstag:":PRINT D$(P,5):PRINT "neuer Geburtstag:" |
3030 | CLEAR F5:M$(0)=D$(P,5):INPUT M$(0) |
3040 | CLS :IF D$(P,5)=M$(0) GOTO 3130 |
3050 | IF M$(0)=" " CLEAR U,V:GOTO 3120 |
3060 | U=VAL LEFT$ (M$(0),2):V=VAL MID$ (M$(0),4,2):W=VAL RIGHT$ (M$(0),4) |
3070 | IF U<1 OR U>31 OR V<1 OR V>12 OR W<1890 OR W>1999 LET F5=1:GOTO 3110 |
3080 | IF (V=4 OR V=6 OR V=9 OR V=11) AND U>30 LET F5=1:GOTO 3110 |
3090 | IF V=2 AND U>29 LET F5=1:GOTO 3110 |
3100 | IF V=2 AND (W/4<>INT (W/4) OR W/400=INT (W/400)) AND U>28 LET F5=1 |
3110 | GOSUB 6510 :IF F5 GOTO 3020 |
3120 | F7=1:F2=0:D$(P,5)=M$(0) |
3130 | PRINT "alte Bemerkung:":PRINT D$(P,6):PRINT "neue Bemerkung:" |
3140 | M$(0)=D$(P,6):INPUT M$(0) |
3150 | CLS :POKE 12348,16:IF D$(P,6)=M$(0) GOTO 2730 |
3160 | F2=0:D$(P,6)=M$(0) |
3180 | GOTO 2730 |
3190 | PRINT "Zu loeschender Datensatz:":GOSUB 6300 |
3200 | GOSUB 170 :GOSUB 530 :GOSUB 690 |
3210 | RESTORE 3230 :GOTO 7290 |
3230 | DATA 1,">>> ACHTUNG <<<",1,"PFLEGEMENU",2410,"Datensatz loeschen |
3240 | DATA 3250 |
3250 | CLEAR F2:IF P=GGOTO 3270 |
3260 | FOR I=0 TO 6:D$(P,I)=D$(G,I):NEXT I |
3270 | FOR L=0 TO 2:U=-1:V=-1:FOR I=0 TO G |
3280 | IF S(I,L)=P LET U=I |
3290 | IF S(I,L)=G LET V=I |
3300 | IF U>-1 AND V>-1 LET I=G |
3310 | NEXT I |
3320 | S(V,L)=P |
3330 | IF U=G GOTO 3370 |
3340 | FOR I=U+1 TO G |
3350 | S(I-1,L)=S(I,L) |
3360 | NEXT I |
3370 | NEXT L |
3380 | FOR I=0 TO 6:D$(G,I)="":NEXT I:FOR I=0 TO 2:S(G,I)=0:NEXT I |
3390 | G=G-1:PRINT "Datensatz geloescht !":GOSUB 6300 |
3400 | GOTO 70 |
6300 | WAIT :CURSOR 17,3:PRINT CHR$ 91;"ENTER";CHR$ 93:WAIT 0:BEEP 1,1,25:CLS :RETURN |
6490 | CLEAR F5:H=ASC LEFT$ (M$(0),1):IF H<65 OR H>90 AND H<>32 AND H<>0 LET F5=1 |
6500 | H=ASC MID$ (M$(0),2,1):IF H<97 OR H>122 AND H<>46 AND H<>32 AND H<>0 LET F5=1 |
6510 | CLS :IF F5 BEEP 1,255,200:RESTORE 6550 :GOTO 7290 |
6520 | POKE 12348,16 |
6530 | RETURN |
7290 | CLS :WAIT 0:READ F0:IF F0 READ M$(0):PRINT M$(0) |
7300 | X=0:Y=F0:READ N:Q=INT (N/(4-F0)):S=16-4*Q |
7310 | FOR I=0 TO N:J=INT (I/(4-F0)):CURSOR J*S,I-(4-F0)*J+F0:READ M$(0),Z(I) |
7320 | PRINT " ";LEFT$ (M$(0),S+6-8*SGN Q):NEXT I |
7330 | K=Y-F0+(4-F0)*X:IF K>N LET X=Q:Y=F0+N-(4-F0)*X:K=N |
7340 | CURSOR X*S,Y:PRINT "->" |
7350 | T=ASC INKEY$ :IF T=0 GOTO 7350 |
7360 | BEEP 1,1,25 |
7370 | IF T=5 CURSOR X*S,Y:PRINT " ":Y=Y+1:IF Y>3 LET Y=F0:X=X+1:IF X>Q CLEAR X |
7380 | IF T=4 CURSOR X*S,Y:PRINT " ":Y=Y-1:IF Y<F0 LET Y=3:X=X-1:IF -X CLEAR X |
7390 | IF T=14 CURSOR X*S,Y:PRINT " ":X=X+1:IF X>Q CLEAR X |
7400 | IF T=15 CURSOR X*S,Y:PRINT " ":X=X-1:IF X<0 LET X=Q |
7410 | IF T=13 CLS :CLEAR X,Y:GOTO Z(K) |
7420 | GOTO 7330 |
7490 | RESTORE 7500 :GOTO 7290 |
7500 | DATA 1,"Externer Programmteil !",1,"CE-140F o.k.",7510,"Abbruch",7520 |
7510 | RETURN |
7520 | CLS :END |
Falls diese Seite ohne Navigationsleiste angezeigt wird, aktivieren Sie Javascript oder klicken Sie hier!