home *** CD-ROM | disk | FTP | other *** search
- 10 rem datenverwaltung==============c64
- 20 rem by alfons mittelmeyer
- 30 rem
- 40 rem c64
- 50 rem basic v2.0
- 60 rem ================================
- 70 if peek(49154)=174then100
- 80 sys57812"sysmc",8,0:poke780,0
- 90 poke781,254:poke782,191:sys65493
- 100 poke53281,0:poke53280,0:printchr$(14);:gosub880:printcl$;:gosub170
- 110 printg$;:syssf:printchr$(14);
- 120 printcl$;:gosub770:gosub820
- 130 gosub1360:gosub1420:gosub1820:goto120
- 140 rem -----------------------------
- 150 rem laden
- 160 rem -----------------------------
- 170 print"[196]ateiname? ";:sysin:vw$
- 180 open8,8,8,vw$+",p,r":input#8,mf$,mf$,df$:close8
- 190 open8,8,8,mf$+",p,r":input#8,a$,fz,tz:fz=fz-1:tz=tz-1
- 200 dimtx%(tz),ty%(tz),tz$(tz),fx%(fz),fy%(fz),fz%(fz)
- 210 gosub300:fori=0totz:sysin:tx%(i):sysin:ty%(i):sysin:tz$(i):next
- 220 fori=0tofz:inputfx%(i),fy%(i),fz%(i):next:gosub310
- 230 open8,8,8,df$+",p,r":input#8,a$,a,mz,sz
- 240 mz=mz-1:nz=sz:sz=sz-1
- 250 iffz+1<>athenclose8:end
- 260 dimf$(mz,fz):dimz%(mz):if sz<0 then 290
- 270 gosub300:forj=0tosz:fori=0tofz
- 280 sysin:f$(j,i):next:z%(j)=j:next
- 290 gosub310:z=0:return
- 300 poke19,8:poke781,8:sys65478:return
- 310 close8:sys65484:poke19,0:return
- 320 (NULL)
- 330 rem ------------------------
- 340 rem speichern
- 350 rem ------------------------
- 360 open8,8,8,fi$+",p,w":print#8,chr$(1)chr$(1)chr$(0)chr$(0)
- 370 print#8,fz+1:print#8,mz+1:print#8,sz+1:ifsz=0then400
- 380 forj=0tosz
- 390 fori=0tofz:print#8,f$(z%(j),i):next:next
- 400 close8:return
- 410 rem ------------------------
- 420 rem vorwaerts
- 430 rem ------------------------
- 440 z=z+1:ifz>szthenz=z-1
- 450 goto820
- 460 rem ------------------------
- 470 rem rueckwaerts
- 480 rem ------------------------
- 490 z=z-1:ifz<0thenz=0
- 500 goto820
- 510 rem ------------------------
- 520 rem loeschen
- 530 rem ------------------------
- 540 ifz>szthenreturn
- 550 sz=sz-1:ifz>szthenz%(z)=nz:return
- 560 fori=ztosz:z%(i)=z%(i+1):next
- 570 return
- 580 rem ------------------------
- 590 rem einsortieren
- 600 rem ------------------------
- 610 ifsz=0thenreturn
- 620 z=0:a=z%(sz):vw$=f$(a,0):fori=sz-1to0step-1
- 630 iff$(z%(i),0)<=vw$thenz=i+1:i=0:goto650
- 640 z%(i+1)=z%(i)
- 650 next:z%(z)=a:return
- 660 rem ------------------------
- 670 rem suchen
- 680 rem ------------------------
- 690 ug=0:og=sz
- 695 fori=0to1step0
- 700 if og=<ugtheni=1:goto730
- 710 z=int((ug+og)/2)
- 720 ifvw$<=f$(z%(z),0)thenog=z:next
- 725 ug=z+1
- 730 next:z=ug:return
- 740 rem -------------------------
- 750 rem textausgabe
- 760 rem -------------------------
- 770 for i=0 to tz:sysat,tx%(i),ty%(i):printtz$(i);:next
- 780 return
- 790 rem -------------------------
- 800 rem feldausgabe
- 810 rem -------------------------
- 820 for i=0 to fz:sysat,fx%(i),fy%(i):print"<";
- 830 printw$left$(f$(z%(z),i)+left$(le$,fz%(i)),fz%(i))g$">";
- 840 next:return
- 850 rem -------------------------
- 860 rem variablendefinition
- 870 rem -------------------------
- 880 le$=" ":le$=le$+le$
- 890 le$=le$+le$:cl$=chr$(147)
- 900 in=49465:at=49152:wo=49172:ef=49337
- 910 sf=49482:so=49497
- 920 w$=chr$(5):g$=chr$(153):return
- 1100 rem -----------------------
- 1110 rem maskeneingabe
- 1120 rem -----------------------
- 1130 for i=0tofz
- 1140 gosub 1230
- 1150 on n goto 1190,1170
- 1160 next:return
- 1170 ifi>0theni=i-1
- 1180 goto1140
- 1190 i=fz:goto1160
- 1200 rem -----------------------
- 1210 rem feldeingabe
- 1220 rem -----------------------
- 1230 sysat,fx%(i)+1,fy%(i)
- 1240 printw$;
- 1250 sysef,fz%(i),n,f$(z%(z),i)
- 1310 printg$;
- 1320 return
- 1330 rem -------------------------
- 1340 rem menue
- 1350 rem -------------------------
- 1360 sysat,0,23:print"e = erfassen, a = aendern, l = loeschen";
- 1370 sysat,0,24:print"s = suchen, d=druck";
- 1380 return
- 1390 rem ------------------------
- 1400 rem auswahl
- 1410 rem ------------------------
- 1420 getta$:ifta$=""then1420
- 1430 syswo,ta$,"ealsd[145]",n
- 1440 ifta$=chr$(3)thenreturn
- 1450 on n gosub 1500,1680,1610,1560,1760,440,490
- 1460 goto 1420
- 1470 rem ------------------------
- 1480 rem erfassen
- 1490 rem ------------------------
- 1500 if nz=mz+1thensysat,0,22:print"[211]peicher ist voll !";:return
- 1510 sz=sz+1:z=sz:z%(z)=nz:nz=nz+1
- 1520 gosub820:gosub1130:goto610
- 1530 rem ------------------------
- 1540 rem suchen
- 1550 rem ------------------------
- 1560 sysat,0,22:print"[211]uchbegriff: ";:sysin:vw$
- 1570 sysat,0,22:printleft$(le$,39);:gosub690:goto820
- 1580 rem ------------------------
- 1590 rem loeschen
- 1600 rem ------------------------
- 1610 sysat,0,22:print"[215]irklich loeschen j/n?";
- 1615 getta$:ifta$=""then1615
- 1620 sysat,0,22:printleft$(le$,25);
- 1630 ifta$<>"j"thenreturn
- 1640 gosub540:goto820
- 1650 rem ------------------------
- 1660 rem aendern
- 1670 rem ------------------------
- 1680 if z>szthen1500
- 1690 vw$=f$(z%(z),0):gosub1130
- 1700 ifvw$=f$(z%(z),0)thenreturn
- 1710 dz=z%(z):gosub540:sz=sz+1
- 1720 z=sz:z%(z)=dz:goto610
- 1730 rem ------------------------
- 1740 rem drucken
- 1750 rem ------------------------
- 1760 open4,4,7:poke781,4:sys65481
- 1761 if (peek(783)and1)=1then1780
- 1762 fori=0tofz
- 1770 printf$(z%(z),i)
- 1779 next:print#4
- 1780 sys65484:close4:return
- 1790 rem ------------------------
- 1800 rem sichern? ende?
- 1810 rem ------------------------
- 1820 printcl$"[196]aten speichern j/n?"
- 1830 getta$:ifta$=""then1830
- 1840 ifta$="n"then1880
- 1850 if ta$<>"j"then1830
- 1860 sysat,0,2:print"[198]ilename? @:"df$;
- 1870 sysat,10,2:sysin:fi$:gosub360
- 1880 printcl$"[208]rogramm beenden j/n?";
- 1890 getta$:ifta$=""then1890
- 1900 ifta$="j"thensysso:printchr$(142);:end
- 1910 ifta$<>"n"then1890
- 1920 return
- 1930 rem ==============================
- 1940 rem p r o g r a m m e n d e
- 1950 rem ==============================
-