home *** CD-ROM | disk | FTP | other *** search
/ Power Pack / Power_Pack_5_1992_Alfons_Mittelmeyer_de.d64 / datenverwaltung (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  5KB  |  180 lines

  1. 10 rem datenverwaltung==============c64
  2. 20 rem by alfons mittelmeyer
  3. 30 rem
  4. 40 rem c64
  5. 50 rem basic v2.0
  6. 60 rem ================================
  7. 70 if peek(49154)=174then100
  8. 80 sys57812"sysmc",8,0:poke780,0
  9. 90 poke781,254:poke782,191:sys65493
  10. 100 poke53281,0:poke53280,0:printchr$(14);:gosub880:printcl$;:gosub170
  11. 110 printg$;:syssf:printchr$(14);
  12. 120 printcl$;:gosub770:gosub820
  13. 130 gosub1360:gosub1420:gosub1820:goto120
  14. 140 rem -----------------------------
  15. 150 rem  laden
  16. 160 rem -----------------------------
  17. 170 print"[196]ateiname? ";:sysin:vw$
  18. 180 open8,8,8,vw$+",p,r":input#8,mf$,mf$,df$:close8
  19. 190 open8,8,8,mf$+",p,r":input#8,a$,fz,tz:fz=fz-1:tz=tz-1
  20. 200 dimtx%(tz),ty%(tz),tz$(tz),fx%(fz),fy%(fz),fz%(fz)
  21. 210 gosub300:fori=0totz:sysin:tx%(i):sysin:ty%(i):sysin:tz$(i):next
  22. 220 fori=0tofz:inputfx%(i),fy%(i),fz%(i):next:gosub310
  23. 230 open8,8,8,df$+",p,r":input#8,a$,a,mz,sz
  24. 240 mz=mz-1:nz=sz:sz=sz-1
  25. 250 iffz+1<>athenclose8:end
  26. 260 dimf$(mz,fz):dimz%(mz):if sz<0 then 290
  27. 270 gosub300:forj=0tosz:fori=0tofz
  28. 280 sysin:f$(j,i):next:z%(j)=j:next
  29. 290 gosub310:z=0:return
  30. 300 poke19,8:poke781,8:sys65478:return
  31. 310 close8:sys65484:poke19,0:return
  32. 320 (NULL)
  33. 330 rem ------------------------
  34. 340 rem  speichern
  35. 350 rem ------------------------
  36. 360 open8,8,8,fi$+",p,w":print#8,chr$(1)chr$(1)chr$(0)chr$(0)
  37. 370 print#8,fz+1:print#8,mz+1:print#8,sz+1:ifsz=-1then400
  38. 380 forj=0tosz
  39. 390 fori=0tofz:print#8,f$(z%(j),i):next:next
  40. 400 close8:return
  41. 410 rem ------------------------
  42. 420 rem  vorwaerts
  43. 430 rem ------------------------
  44. 440 z=z+1:ifz>szthenz=z-1
  45. 450 goto820
  46. 460 rem ------------------------
  47. 470 rem  rueckwaerts
  48. 480 rem ------------------------
  49. 490 z=z-1:ifz<0thenz=0
  50. 500 goto820
  51. 510 rem ------------------------
  52. 520 rem  loeschen
  53. 530 rem ------------------------
  54. 540 ifz>szthenreturn
  55. 550 sz=sz-1:ifz>szthenz%(z)=nz:return
  56. 560 fori=ztosz:z%(i)=z%(i+1):next
  57. 570 return
  58. 580 rem ------------------------
  59. 590 rem  einsortieren
  60. 600 rem ------------------------
  61. 610 ifsz=0thenreturn
  62. 620 z=0:a=z%(sz):vw$=f$(a,0):fori=sz-1to0step-1
  63. 630 iff$(z%(i),0)<=vw$thenz=i+1:i=0:goto650
  64. 640 z%(i+1)=z%(i)
  65. 650 next:z%(z)=a:return
  66. 660 rem ------------------------
  67. 670 rem  suchen
  68. 680 rem ------------------------
  69. 690 ug=0:og=sz
  70. 695 fori=0to1step0
  71. 700 if og=<ugtheni=1:goto730
  72. 710 z=int((ug+og)/2)
  73. 720 ifvw$<=f$(z%(z),0)thenog=z:next
  74. 725 ug=z+1
  75. 730 next:z=ug:return
  76. 740 rem -------------------------
  77. 750 rem  textausgabe
  78. 760 rem -------------------------
  79. 770 for i=0 to tz:sysat,tx%(i),ty%(i):printtz$(i);:next
  80. 780 return
  81. 790 rem -------------------------
  82. 800 rem  feldausgabe
  83. 810 rem -------------------------
  84. 820 for i=0 to fz:sysat,fx%(i),fy%(i):print"<";
  85. 830 printw$left$(f$(z%(z),i)+left$(le$,fz%(i)),fz%(i))g$">";
  86. 840 next:return
  87. 850 rem -------------------------
  88. 860 rem  variablendefinition
  89. 870 rem -------------------------
  90. 880 le$="          ":le$=le$+le$
  91. 890 le$=le$+le$:cl$=chr$(147)
  92. 900 in=49465:at=49152:wo=49172:ef=49337
  93. 910 sf=49482:so=49497
  94. 920 w$=chr$(5):g$=chr$(153):return
  95. 1100 rem -----------------------
  96. 1110 rem maskeneingabe
  97. 1120 rem -----------------------
  98. 1130 for i=0tofz
  99. 1140 gosub 1230
  100. 1150 on n goto 1190,1170
  101. 1160 next:return
  102. 1170 ifi>0theni=i-1
  103. 1180 goto1140
  104. 1190 i=fz:goto1160
  105. 1200 rem -----------------------
  106. 1210 rem  feldeingabe
  107. 1220 rem -----------------------
  108. 1230 sysat,fx%(i)+1,fy%(i)
  109. 1240 printw$;
  110. 1250 sysef,fz%(i),n,f$(z%(z),i)
  111. 1310 printg$;
  112. 1320 return
  113. 1330 rem -------------------------
  114. 1340 rem  menue
  115. 1350 rem -------------------------
  116. 1360 sysat,0,23:print"e = erfassen, a = aendern, l = loeschen";
  117. 1370 sysat,0,24:print"s = suchen, d=druck";
  118. 1380 return
  119. 1390 rem ------------------------
  120. 1400 rem  auswahl
  121. 1410 rem ------------------------
  122. 1420 getta$:ifta$=""then1420
  123. 1430 syswo,ta$,"ealsd[145]",n
  124. 1440 ifta$=chr$(3)thenreturn
  125. 1450 on n gosub 1500,1680,1610,1560,1760,440,490
  126. 1460 goto 1420
  127. 1470 rem ------------------------
  128. 1480 rem  erfassen
  129. 1490 rem ------------------------
  130. 1500 if nz=mz+1thensysat,0,22:print"[211]peicher ist voll !";:return
  131. 1510 sz=sz+1:z=sz:z%(z)=nz:nz=nz+1
  132. 1520 gosub820:gosub1130:goto610
  133. 1530 rem ------------------------
  134. 1540 rem  suchen
  135. 1550 rem ------------------------
  136. 1560 sysat,0,22:print"[211]uchbegriff: ";:sysin:vw$
  137. 1570 sysat,0,22:printleft$(le$,39);:gosub690:goto820
  138. 1580 rem ------------------------
  139. 1590 rem  loeschen
  140. 1600 rem ------------------------
  141. 1610 sysat,0,22:print"[215]irklich loeschen j/n?";
  142. 1615 getta$:ifta$=""then1615
  143. 1620 sysat,0,22:printleft$(le$,25);
  144. 1630 ifta$<>"j"thenreturn
  145. 1640 gosub540:goto820
  146. 1650 rem ------------------------
  147. 1660 rem  aendern
  148. 1670 rem ------------------------
  149. 1680 if z>szthen1500
  150. 1690 vw$=f$(z%(z),0):gosub1130
  151. 1700 ifvw$=f$(z%(z),0)thenreturn
  152. 1710 dz=z%(z):gosub540:sz=sz+1
  153. 1720 z=sz:z%(z)=dz:goto610
  154. 1730 rem ------------------------
  155. 1740 rem  drucken
  156. 1750 rem ------------------------
  157. 1760 open4,4,7:poke781,4:sys65481
  158. 1761 if (peek(783)and1)=1then1780
  159. 1762 fori=0tofz
  160. 1770 printf$(z%(z),i)
  161. 1779 next:print#4
  162. 1780 sys65484:close4:return
  163. 1790 rem ------------------------
  164. 1800 rem  sichern? ende?
  165. 1810 rem ------------------------
  166. 1820 printcl$"[196]aten speichern j/n?"
  167. 1830 getta$:ifta$=""then1830
  168. 1840 ifta$="n"then1880
  169. 1850 if ta$<>"j"then1830
  170. 1860 sysat,0,2:print"[198]ilename? @:"df$;
  171. 1870 sysat,10,2:sysin:fi$:gosub360
  172. 1880 printcl$"[208]rogramm beenden j/n?";
  173. 1890 getta$:ifta$=""then1890
  174. 1900 ifta$="j"thensysso:printchr$(142);:end
  175. 1910 ifta$<>"n"then1890
  176. 1920 return
  177. 1930 rem ==============================
  178. 1940 rem  p r o g r a m m e n d e
  179. 1950 rem ==============================
  180.