Sharp PC1360 |
70 | GOSUB 7490 :CHAIN "X:ADBCHN.PRG",70 |
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 |
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 |
2410 | GOSUB 7490 :CHAIN "X:PFLEGADB.CHN",2410 |
3410 | IF F7 OR F6>=G GOTO 3690 |
3420 | IF F6 GOTO 3470 |
3430 | RESTORE 3450 :GOTO 7290 |
3450 | DATA 1,"Keine neuen Daten !" |
3460 | DATA 2,"Sortieren",3690,"DATENPFLEGE",2410,"MENU",70 |
3470 | USING "####":PRINT 0;" % einsortiert":D=3*F6:Z=0 |
3480 | FOR I=F6 TO 1STEP -1 |
3490 | FOR L=0 TO 2 |
3500 | M$(0)=D$(G-I+1,L):IF L=2 LET M$(0)=LEFT$ (D$(G-I+1,5),5):GOSUB 370 :GOTO 3520 |
3510 | GOSUB 260 |
3520 | ON L GOTO 3530 ,3550 |
3530 | IF D$(P,L)=M$(0) GOTO 3630 |
3540 | GOTO 3560 |
3550 | IF LEFT$ (D$(P,5),5)=M$(0) GOTO 3650 |
3560 | FOR J=G-I TO R STEP -1:S(J+1,L)=S(J,L):NEXT J |
3570 | S(R,L)=G-I+1 |
3580 | Z=Z+1:CURSOR 0,0:PRINT Z/D*100 |
3590 | NEXT L:NEXT I |
3600 | CLEAR F6:USING |
3610 | IF F8 GOTO 4180 |
3620 | GOTO 40 |
3630 | IF D$(P,NOT L+2)<D$(G-I+1,NOT L+2) LET R=R+1:P=S(R,L):IF R<G GOTO 3530 |
3640 | GOTO 3560 |
3650 | IF D$(P,0)<D$(G-I+1,0) LET R=R+1:P=S(R,L):IF R<G GOTO 3550 |
3660 | GOTO 3560 |
3670 | E=0:G=-1:F9=1:GOSUB 4480 :CLEAR F6,F9 |
3680 | CLS :PRINT "Bitte Daten eingeben !":GOSUB 6300 :GOTO 2460 |
3690 | D=3*(G+1)^2:Z=0:USING "####.#":PRINT 0;" % sortiert |
3710 | FOR L=0 TO 1:FOR I=0 TO G:K=0:FOR J=0 TO G |
3720 | IF D$(J,L)<=D$(I,L) LET K=K+1:IF D$(I,L)=D$(J,L) GOSUB 3830 |
3730 | Z=Z+1:CURSOR 0,0:PRINT Z/D*100 |
3740 | NEXT J:S(K,L)=I:NEXT I:NEXT L |
3750 | FOR I=0 TO G:K=0:FOR J=0 TO G |
3760 | U=VAL MID$ (D$(I,5),4,2)*31+VAL LEFT$ (D$(I,5),2) |
3770 | V=VAL MID$ (D$(J,5),4,2)*31+VAL LEFT$ (D$(J,5),2) |
3780 | IF V<=U LET K=K+1:IF U=V GOSUB 3830 |
3790 | Z=Z+1:CURSOR 0,0:PRINT Z/D*100 |
3800 | NEXT J:S(K,2)=I:NEXT I |
3810 | USING :CLEAR F7,F6:IF F8 GOTO 4180 |
3820 | GOTO 40 |
3830 | O=-1:K=K-1:IF I=J RETURN |
3840 | O=O+1:IF O=4 GOSUB 3880 :RETURN |
3850 | IF D$(I,O)=D$(J,O) GOTO 3840 |
3860 | IF D$(J,O)<D$(I,O) LET K=K+1 |
3870 | RETURN |
3880 | IF I<J LET K=K+1 |
3890 | IF L OR I>J RETURN |
3900 | BEEP 1,255,200 |
3910 | CLS :PRINT "Doppelter Datensatz:":GOSUB 6300 |
3920 | P=I:GOSUB 690 |
3930 | PRINT " % sortiert":CURSOR 0,0:PRINT Z/D*100 |
3940 | RETURN |
7290 | CLS :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 "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!