home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 10 / einsteig / rdatdm_a.bas < prev    next >
BASIC Source File  |  1990-07-17  |  17KB  |  443 lines

  1. 10 ' ************** RDATDEMO.BAS **************************
  2. 20 '
  3. 30 ' ************** HAUPTPROGRAMM *************************
  4. 40 '
  5. 50 GOSUB 500        'Vorbereitungen,Initialisierungen
  6. 60 GOSUB 1000       'Hauptschleife
  7. 70 GOSUB 750        'Nachbereitungen
  8. 80 END
  9. 90 '
  10. 100 ' ************** Ende des Hauptprogramms **************
  11. 110 '
  12. 490 ' ************** UP - Vorbereitung, Initialisierung ***
  13. 495 '
  14. 500 OPEN "RELDATEI.DAT" FOR RANDOM AS #1
  15. 510 FIELD #1, 2 AS PLIEFNR$, 25 AS PLIEFNAME$, 4 AS PLETZTUMSATZ$, 8 AS PGESAMTUMSATZ$, 2 AS PLKZ$
  16. 520 OPTION BASE 1
  17. 530 DIM OPTIONEN$(5)
  18. 540 OPTIONEN$(1) = "ANLEGEN"
  19. 550 OPTIONEN$(2) = "ZEIGEN"
  20. 560 OPTIONEN$(3) = "ÄNDERN"
  21. 570 OPTIONEN$(4) = "LÖSCHEN"
  22. 580 OPTIONEN$(5) = "BEENDEN"
  23. 590 LKZ% = 0
  24. 600 KEY OFF: CLS
  25. 610 LOCATE 1, 15: PRINT "Programm zur Demonstration der relativen Datei"
  26. 620 LOCATE 2, 1: PRINT STRING$(80, "─");
  27. 630 LOCATE 24, 1: PRINT STRING$(80, "─");
  28. 640 LOCATE 25, 15: PRINT "(C)reated by Th. Frins  &  W.Kehr anno domini 1990";
  29. 680 VIEW PRINT 3 TO 23
  30. 690 GOSUB 61000    'Initialisierungen für Eingaberoutine
  31. 700 RETURN
  32. 710 '
  33. 720 ' ************* Ende UP - Vorbereitung, Initialisierung
  34. 730 '
  35. 740 ' ************* UP - Nachbereitungen ******************
  36. 745 '
  37. 750 CLOSE #1
  38. 760 VIEW PRINT: : CLS : KEY ON
  39. 770 '
  40. 780 RETURN
  41. 790 '
  42. 800 ' ************* Ende UP - Nachbereitungen *************
  43. 810 '
  44. 990 ' '************ UP - Hauptschleife ********************
  45. 995 '
  46. 1000 SCHLEIFE% = -1
  47. 1010 WHILE SCHLEIFE%
  48. 1015    CLS 2           'Datenbereich löschen
  49. 1020    GOSUB 1500      'Auswahlmaske
  50. 1030    GOSUB 1750      'Auswahl
  51. 1040    IF OPTNR% = 5 THEN SCHLEIFE% = 0
  52. 1050    ON OPTNR% GOSUB 2500, 3000, 3500, 4000
  53. 1055    'UP's Anlegen, Zeigen, Ändern, Löschen
  54. 1060 WEND
  55. 1070 '
  56. 1080 RETURN
  57. 1090 '
  58. 1100 ' ************ Ende UP - Hauptschleife ***************
  59. 1110 '
  60. 1490 ' ************ UP - Auswahlmaske *********************
  61. 1495 '
  62. 1500 FOR I = 1 TO 5
  63. 1510    LOCATE 4 + I * 2, 15, 0
  64. 1520    PRINT "["; I; "]";
  65. 1530    LOCATE 4 + I * 2, 30, 0
  66. 1540    PRINT OPTIONEN$(I)
  67. 1560 NEXT
  68. 1570 LOCATE 20, 5, 0
  69. 1580 PRINT "Mit Cursortasten, Anfangsbuchstaben oder Ziffern 1-5 anwählen"
  70. 1585 LOCATE 21, 5: PRINT "Mit <RETURN> ausführen"
  71. 1590 '
  72. 1600 RETURN
  73. 1610 '
  74. 1620 ' ************ Ende UP - Auswahlmaske ****************
  75. 1630 '
  76. 1740 ' ************ UP - Auswahl **************************
  77. 1745 '
  78. 1750 WAHL$ = "": IF VOPTION% = 0 THEN OPTNR% = 1 ELSE OPTNR% = VOPTION%
  79. 1760 COLOR 0, 7: LOCATE 4 + OPTNR% * 2, 30, 0
  80. 1770 PRINT OPTIONEN$(OPTNR%)
  81. 1780 COLOR 7, 0
  82. 1790 WHILE WAHL$ <> CHR$(13)
  83. 1800    WAHL$ = INKEY$
  84. 1810    REM IF WAHL$ = "" OR WAHL$ = CHR$(13) THEN 1790
  85. 1811    IF WAHL$ = "A" OR WAHL$ = "a" THEN WAHL$ = "1"
  86. 1812    IF WAHL$ = "Z" OR WAHL$ = "z" THEN WAHL$ = "2"
  87. 1813    IF WAHL$ = "Ä" OR WAHL$ = "ä" THEN WAHL$ = "3"
  88. 1814    IF WAHL$ = "L" OR WAHL$ = "l" THEN WAHL$ = "4"
  89. 1815    IF WAHL$ = "B" OR WAHL$ = "b" THEN WAHL$ = "5"
  90. 1820    WHILE WAHL$ > "0" AND WAHL$ < "6"
  91. 1830        LOCATE 4 + OPTNR% * 2, 30, 0
  92. 1840        PRINT OPTIONEN$(OPTNR%);
  93. 1850        COLOR 0, 7
  94. 1860        OPTNR% = VAL(WAHL$)
  95. 1870        LOCATE 4 + OPTNR% * 2, 30, 0
  96. 1880        PRINT OPTIONEN$(OPTNR%);
  97. 1890        COLOR 7, 0
  98. 1900        WAHL$ = "": VOPTION% = OPTNR%
  99. 1910    WEND
  100. 1920    WHILE LEN(WAHL$) = 2
  101. 1930        WAHL$ = RIGHT$(WAHL$, 1)
  102. 1940        WHILE WAHL$ = "H"
  103. 1950            LOCATE 4 + OPTNR% * 2, 30, 0
  104. 1960            PRINT OPTIONEN$(OPTNR%);
  105. 1970            COLOR 0, 7
  106. 1980            IF OPTNR% = 1 THEN OPTNR% = 5 ELSE OPTNR% = OPTNR% - 1
  107. 1990            LOCATE 4 + OPTNR% * 2, 30, 0
  108. 2000            PRINT OPTIONEN$(OPTNR%);
  109. 2010            COLOR 7, 0
  110. 2020            WAHL$ = "": VOPTION% = OPTNR%
  111. 2030        WEND
  112. 2040        WHILE WAHL$ = "P"
  113. 2050            LOCATE 4 + OPTNR% * 2, 30, 0
  114. 2060            PRINT OPTIONEN$(OPTNR%);
  115. 2070            COLOR 0, 7
  116. 2080            IF OPTNR% = 5 THEN OPTNR% = 1 ELSE OPTNR% = OPTNR% + 1
  117. 2090            LOCATE 4 + OPTNR% * 2, 30, 0
  118. 2100            PRINT OPTIONEN$(OPTNR%);
  119. 2110            COLOR 7, 0
  120. 2120            WAHL$ = "": VOPTION% = OPTNR%
  121. 2130        WEND
  122. 2140    WEND
  123. 2150    IF WAHL$ <> "" AND WAHL$ <> CHR$(13) THEN BEEP
  124. 2160 WEND
  125. 2170 '
  126. 2180 RETURN
  127. 2190 '
  128. 2200 ' ************ Ende UP - Auswahl *********************
  129. 2210 '
  130. 2490 ' ************ UP - ANLEGEN **************************
  131. 2495 '
  132. 2500 CLS 2
  133. 2510 GOSUB 5000        'Verarbeitungsmaske
  134. 2512 LOCATE 18, 30: PRINT 0
  135. 2520 FERTIG$ = ""
  136. 2530 WHILE FERTIG$ <> CHR$(27)
  137. 2540    ZEILE = 6: SPALTE = 30: WORT$ = SPACE$(4): LAENGE = 4: ERLAUBT$ = ZAHLEN$
  138. 2550    VWORT$ = WORT$
  139. 2560    GOSUB 60000   'EINGABEROUTINE
  140. 2570    LIEFNR% = VAL(WORT$)
  141. 2571    WHILE LIEFNR% < 1000
  142. 2572        LOCATE 21, 15, 0: PRINT "Falsche Lieferantennummer !   <TASTE>";
  143. 2573        DUMMY$ = INPUT$(1)
  144. 2574        LOCATE 21, 15, 0: PRINT SPACE$(60)
  145. 2575        LIEFNR% = 10000
  146. 2576    WEND
  147. 2577    WHILE LIEFNR% <> 10000
  148. 2580        ZEILE = 9: SPALTE = 30: WORT$ = SPACE$(25): LAENGE = 25: ERLAUBT$ = BUCHSTABEN$
  149. 2590        VWORT$ = WORT$
  150. 2600        GOSUB 60000   'EINGABEROUTINE
  151. 2610        LIEFNAME$ = WORT$
  152. 2620        ZEILE = 12: SPALTE = 30: WORT$ = SPACE$(5): LAENGE = 5: ERLAUBT$ = ZAHLEN$
  153. 2630        VWORT$ = WORT$
  154. 2640        GOSUB 60000   'EINGABEROUTINE
  155. 2650        LETZTUMSATZ = VAL(WORT$)
  156. 2655        LOCATE 15, 30, 0: PRINT LETZTUMSATZ
  157. 2670        LSET PLIEFNR$ = MKI$(LIEFNR%)
  158. 2680        LSET PLIEFNAME$ = LIEFNAME$
  159. 2690        LSET PLETZTUMSATZ$ = MKS$(LETZTUMSATZ)
  160. 2700        LSET PGESAMTUMSATZ$ = MKD$(LETZTUMSATZ)
  161. 2710        LSET PLKZ$ = MKI$(0)
  162. 2720        PUT #1, LIEFNR% - 999
  163. 2721        LIEFNR% = 10000
  164. 2722    WEND
  165. 2730    LOCATE 21, 15, 0: PRINT "Weiter = <TASTE>,  Ende = <ESC>"
  166. 2740    FERTIG$ = INPUT$(1)
  167. 2750    WHILE FERTIG$ <> CHR$(27) AND FERTIG$ <> CHR$(255)
  168. 2760        LOCATE 6, 30, 0: PRINT SPACE$(5)
  169. 2770        LOCATE 9, 30, 0: PRINT SPACE$(25)
  170. 2780        LOCATE 12, 30, 0: PRINT SPACE$(6)
  171. 2785        LOCATE 15, 30, 0: PRINT SPACE$(9)
  172. 2790        LOCATE 21, 15, 0: PRINT SPACE$(60)
  173. 2795        FERTIG$ = CHR$(255)
  174. 2800    WEND
  175. 2810 WEND
  176. 2820 '
  177. 2830 RETURN
  178. 2840 '
  179. 2850 ' ************ Ende UP - Auswahl *********************
  180. 2860 '
  181. 2990 ' ************ UP - Zeigen ***************************
  182. 2995 '
  183. 3000 CLS 2
  184. 3010 GOSUB 5000        'Verarbeitungsmaske
  185. 3012 FERTIG$ = ""
  186. 3015 WHILE FERTIG$ <> CHR$(27)
  187. 3020    LOCATE 22, 5, 0
  188. 3030    PRINT "Lieferantennummer eingeben:"
  189. 3040    ZEILE = 22: SPALTE = 40: WORT$ = SPACE$(4): LAENGE = 4: ERLAUBT$ = ZAHLEN$
  190. 3050    VWORT$ = WORT$
  191. 3060    GOSUB 60000   'EINGABEROUTINE
  192. 3070    VLIEFNR% = VAL(WORT$)
  193. 3080    LOCATE 22, 5, 0: PRINT SPACE$(60)
  194. 3081    WHILE VLIEFNR% < 1000
  195. 3082        LOCATE 21, 15, 0: PRINT "Falsche Lieferantennummer !   <TASTE>";
  196. 3083        DUMMY$ = INPUT$(1)
  197. 3084        LOCATE 21, 15: PRINT SPACE$(60)
  198. 3085        VLIEFNR% = 10000
  199. 3086    WEND
  200. 3087    WHILE VLIEFNR% <> 10000
  201. 3089        VLIEFNR% = VLIEFNR% - 999
  202. 3090        GET #1, VLIEFNR%
  203. 3100        LIEFNR% = CVI(PLIEFNR$)
  204. 3110        LIEFNAME$ = PLIEFNAME$
  205. 3120        LETZTUMSATZ = CVS(PLETZTUMSATZ$)
  206. 3130        GESAMTUMSATZ# = CVD(PGESAMTUMSATZ$)
  207. 3140        IF VLIEFNR% + 999 = LIEFNR% THEN GEFUNDEN% = -1 ELSE GEFUNDEN% = 0
  208. 3150        WHILE GEFUNDEN% = -1
  209. 3160            LOCATE 6, 30: PRINT LIEFNR%
  210. 3170            LOCATE 9, 30: PRINT LIEFNAME$
  211. 3180            LOCATE 12, 30: PRINT LETZTUMSATZ
  212. 3190            LOCATE 15, 30: PRINT GESAMTUMSATZ#
  213. 3200            LOCATE 18, 30: PRINT LKZ%
  214. 3210            GEFUNDEN% = 1
  215. 3220        WEND
  216. 3230        WHILE GEFUNDEN% = 0
  217. 3240            LOCATE 22, 5, 0
  218. 3250            PRINT "Satz nicht vorhanden   <TASTE>"
  219. 3260            DUMMY$ = INPUT$(1)
  220. 3270            LOCATE 22, 5, 0: PRINT SPACE$(60)
  221. 3280            GEFUNDEN% = 1
  222. 3290        WEND
  223. 3292        VLIEFNR% = 10000
  224. 3294    WEND
  225. 3300    LOCATE 21, 15, 0: PRINT "Weiter = <TASTE>,  Ende = <ESC>";
  226. 3310    FERTIG$ = INPUT$(1)
  227. 3320    WHILE FERTIG$ <> CHR$(27) AND FERTIG$ <> CHR$(255)
  228. 3330        LOCATE 6, 30, 0: PRINT SPACE$(5)
  229. 3340        LOCATE 9, 30, 0: PRINT SPACE$(25)
  230. 3350        LOCATE 12, 30, 0: PRINT SPACE$(6)
  231. 3353        LOCATE 15, 30, 0: PRINT SPACE$(9)
  232. 3356        LOCATE 18, 30, 0: PRINT SPACE$(2)
  233. 3360        LOCATE 21, 15, 0: PRINT SPACE$(60)
  234. 3370        FERTIG$ = CHR$(255)
  235. 3380    WEND
  236. 3390 WEND
  237. 3400 '
  238. 3410 RETURN
  239. 3420 '
  240. 3430 ' ************ Ende UP - Zeigen **********************
  241. 3440 '
  242. 3490 ' ************ UP - Ändern ***************************
  243. 3495 '
  244. 3500 CLS 2
  245. 3510 GOSUB 5000        'Verarbeitungsmaske
  246. 3520 LOCATE 22, 15, 0: COLOR 0, 7: PRINT "Ändern angewählt"
  247. 3530 DUMMY$ = INPUT$(1): COLOR 7, 0
  248. 3540 '
  249. 3550 RETURN
  250. 3560 '
  251. 3570 ' ************ Ende UP - Ändern **********************
  252. 3580 '
  253. 3990 ' ************ UP - Löschen **************************
  254. 3995 '
  255. 4000 CLS 2
  256. 4010 GOSUB 5000        'Verarbeitungsmaske
  257. 4020 LOCATE 22, 15, 0: COLOR 0, 7: PRINT "Löschen angewählt"
  258. 4030 DUMMY$ = INPUT$(1): COLOR 7, 0
  259. 4040 '
  260. 4050 RETURN
  261. 4060 '
  262. 4070 ' ************ Ende UP - Löschen *********************
  263. 4080 '
  264. 4990 ' ************ UP - Verarbeitungsmaske **************
  265. 4995 '
  266. 5000 LOCATE 4, 5: COLOR 0, 7: PRINT OPTIONEN$(OPTNR%): COLOR 7, 0
  267. 5010 LOCATE 6, 5: PRINT "Lieferanten-Nummer :"
  268. 5020 LOCATE 9, 5: PRINT "Lieferanten-Name   :"
  269. 5030 LOCATE 12, 5: PRINT "Aktueller Umsatz   :"
  270. 5040 LOCATE 15, 5: PRINT "Gesamtumsatz       :"
  271. 5050 LOCATE 18, 5: PRINT "Löschkennzeichen   :"
  272. 5060 '
  273. 5070 RETURN
  274. 5080 '
  275. 5090 ' ************ Ende UP - Verarbeitungsmaske **********
  276. 5100 '
  277. 60000 REM *************************************************
  278. 60005 REM                   EINGABEROUTINE
  279. 60010 REM *************************************************
  280. 60015 :
  281. 60020 REM ***************** SCHLEIFENVORLAUF **************
  282. 60025 :
  283. 60030 REM ***************** VORBESETZUNGEN ****************
  284. 60035 :
  285. 60037 CURSOR = 7                    'CURSORGRÖSSE FESTLEGEN
  286. 60040 ANFANG = 1                    'CURSOR-ANFANGSPOSITION
  287. 60045 EINF = 0                      'UEBERSCHREIBMODUS EIN
  288. 60050 IF ERLAUBT$ = ZAHLEN$ THEN NUMERISCH = 1 ELSE NUMERISCH = 0
  289. 60055 LOCATE ZEILE, SPALTE, 1, 6, CURSOR
  290. 60060 'VORGABE ERSTELLEN
  291. 60065 WORT$ = WORT$ + STRING$(LAENGE - LEN(WORT$), " ")
  292. 60067 IF INSTR(WORT$, ".") <> 0 THEN KOMMA = 1 ELSE KOMMA = 0
  293. 60068 IF INSTR(WORT$, "+") <> 0 OR INSTR(WORT$, "-") <> 0 THEN VORZEICHEN = 1 ELSE VORZEICHEN = 0
  294. 60070 COLOR 0, 7                   'INVERSE DARSTELLUNG EIN
  295. 60075 PRINT WORT$                  'VORGABE AUSGEBEN
  296. 60080 :
  297. 60085 REM ***************** EINGABESCHLEIFE ***************
  298. 60090 :
  299. 60095 EINGABESCHLEIFE = 1
  300. 60100 WHILE EINGABESCHLEIFE = 1
  301. 60105       LOCATE ZEILE, SPALTE + ANFANG - 1, 1, 6, CURSOR
  302. 60110       A$ = ""
  303. 60115       WHILE A$ = ""
  304. 60120           A$ = INKEY$
  305. 60125       WEND
  306. 60130       'RETURN
  307. 60135       IF A$ = ENDE$ THEN EINGABESCHLEIFE = 0
  308. 60137       'ESC
  309. 60138       IF A$ = ESC$ THEN EINGABESCHLEIFE = 0: WORT$ = VWORT$
  310. 60140       'UNGÜLTIGE ZEICHEN
  311. 60145       IF LEN(A$) = 1 AND INSTR(ERLAUBT$, A$) = 0 AND ASC(LEFT$(A$, 1)) <> 8 AND A$ <> ENDE$ AND A$ <> ESC$ THEN PRINT CHR$(7)
  312. 60150       'GÜLTIGE ZEICHEN
  313. 60155       IF LEN(A$) = 1 AND INSTR(ERLAUBT$, A$) <> 0 THEN GOSUB 60250    'ZEICHEN VERARBEITEN
  314. 60160       IF ASC(LEFT$(A$, 1)) = 8 THEN GOSUB 60485
  315. 60165       IF LEN(A$) = 2 THEN ON INSTR(STEUER$, RIGHT$(A$, 1)) GOSUB 60360, 60385, 60400, 60425, 60450, 60530:
  316. 60170       LOCATE , , 1, 6, CURSOR
  317. 60175 WEND
  318. 60180 :
  319. 60185 REM ****************** SCHLEIFENNACHLAUF ************
  320. 60190 :
  321. 60195 REM ***** LEERZEICHEN AM STRINGENDE ENTFERNEN *******
  322. 60200 :
  323. 60205 WHILE RIGHT$(WORT$, 1) = " " AND LEN(WORT$) <> 0
  324. 60210       WORT$ = LEFT$(WORT$, LEN(WORT$) - 1)
  325. 60215 WEND
  326. 60220 LOCATE , , 1, 6, CURSOR
  327. 60225 COLOR 7, 0              'INVERSDARSTELLUNG AUS
  328. 60230 RETURN                  'RÜCKSPRUNG ZUM HAUPTPROGRAMM
  329. 60235 :
  330. 60240 REM******************* ZEICHENEINGABE ***************
  331. 60245 :
  332. 60250 IF EINF = 1 THEN GOSUB 60305 ELSE GOSUB 60265
  333. 60255 RETURN
  334. 60260 :
  335. 60265 REM *** ÜBERSCHREIBMODUS TEXT ****
  336. 60270 :
  337. 60275 IF NUMERISCH = 1 THEN GOSUB 60560: RETURN 'ÜBERSCHREIBEN ZAHLEN
  338. 60276 IF NUMERISCH = 0 THEN MID$(WORT$, ANFANG, 1) = A$  'ZEICHEN DURCH EINGABE ERSETZEN
  339. 60280 LOCATE ZEILE, SPALTE + ANFANG - 1, 1, 6, CURSOR
  340. 60285 PRINT A$
  341. 60290 IF ANFANG < LAENGE THEN ANFANG = ANFANG + 1
  342. 60295 RETURN
  343. 60300 :
  344. 60305 REM *** EINFÜGEMODUS TEXT ****
  345. 60310 :
  346. 60315 IF RIGHT$(WORT$, 1) <> " " THEN PRINT CHR$(7): RETURN
  347. 60320 IF NUMERISCH = 1 THEN GOSUB 60610: RETURN 'EINFÜGEN ZAHLEN
  348. 60321 IF NUMERISCH = 0 THEN WORT$ = LEFT$(WORT$, ANFANG - 1) + A$ + MID$(WORT$, ANFANG, LEN(WORT$) - ANFANG)'ZEICHEN EINFUEGEN
  349. 60325 LOCATE ZEILE, SPALTE, 1, 6, CURSOR
  350. 60330 PRINT WORT$
  351. 60335 IF ANFANG < LAENGE THEN ANFANG = ANFANG + 1
  352. 60340 RETURN
  353. 60345 :
  354. 60350 REM *** CURSOR RECHTS TASTE *****
  355. 60355 :
  356. 60360 IF ANFANG < LAENGE THEN ANFANG = ANFANG + 1 ELSE BEEP
  357. 60365 RETURN
  358. 60370 :
  359. 60375 REM *** CURSOR LINKS TASTE ******
  360. 60380 :
  361. 60385 IF ANFANG > 1 THEN ANFANG = ANFANG - 1 ELSE BEEP
  362. 60390 RETURN
  363. 60395 :
  364. 60400 REM *** HOME TASTE ***
  365. 60405 :
  366. 60410 ANFANG = 1          'CURSOR AN DEN ANFANG DER EINGABE
  367. 60415 RETURN
  368. 60420 :
  369. 60425 REM *** END TASTE ****
  370. 60430 :
  371. 60435 ANFANG = LAENGE     'CURSOR AN ENDE DER EINGABE
  372. 60440 RETURN
  373. 60445 :
  374. 60450 REM *** DELETE TASTE ****
  375. 60455 :
  376. 60457 LOESCH$ = MID$(WORT$, ANFANG, 1)
  377. 60460 WORT$ = LEFT$(WORT$, ANFANG - 1) + RIGHT$(WORT$, LAENGE - ANFANG) + " " 'STRING KORRIGIEREN
  378. 60461 IF NUMERISCH = 1 AND LOESCH$ = "." THEN KOMMA = 0
  379. 60462 IF NUMERISCH = 1 AND (LOESCH$ = "+" OR LOESCH$ = "-") THEN VORZEICHEN = 0
  380. 60465 LOCATE ZEILE, SPALTE, 1, 6, CURSOR
  381. 60470 PRINT WORT$
  382. 60475 RETURN
  383. 60480 :
  384. 60485 REM****BACKSPACE TASTE******
  385. 60490 :
  386. 60495 IF ANFANG = 1 THEN PRINT CHR$(7): RETURN  'SCHON AM ANFANG
  387. 60497 LOESCH$ = MID$(WORT$, ANFANG - 1, 1):
  388. 60500 WORT$ = LEFT$(WORT$, ANFANG - 2) + RIGHT$(WORT$, LAENGE - ANFANG + 1) + " "'STRING KORRIGIEREN
  389. 60501 IF NUMERISCH = 1 AND LOESCH$ = "." THEN KOMMA = 0
  390. 60502 IF NUMERISCH = 1 AND (LOESCH$ = "+" OR LOESCH$ = "-") THEN VORZEICHEN = 0
  391. 60505 LOCATE ZEILE, SPALTE, 1, 6, CURSOR
  392. 60510 PRINT WORT$
  393. 60515 ANFANG = ANFANG - 1    'ZEICHENPOSITION AKTUALISIEREN
  394. 60520 RETURN
  395. 60525 :
  396. 60530 REM*****INS TASTE********
  397. 60535 :
  398. 60540 EINF = EINF XOR 1      'EINF UMSCHALTEN
  399. 60545 IF CURSOR = 7 THEN CURSOR = 12 ELSE CURSOR = 7
  400. 60550 RETURN
  401. 60555 :
  402. 60560 REM *** ÜBERSCHREIBMODUS ZAHLEN ***
  403. 60565 :
  404. 60570 IF (A$ = "+" OR A$ = "-") AND ANFANG > 1 THEN PRINT CHR$(7): RETURN
  405. 60572 IF (A$ = "+" OR A$ = "-") AND ANFANG = 1 THEN VORZEICHEN = 1
  406. 60575 IF (A$ = "," OR A$ = ".") AND KOMMA = 1 THEN PRINT CHR$(7): RETURN
  407. 60577 IF (A$ = "," OR A$ = ".") AND KOMMA = 0 THEN A$ = ".": KOMMA = 1
  408. 60578 IF MID$(WORT$, ANFANG, 1) = "." AND A$ <> "." THEN KOMMA = 0
  409. 60580 MID$(WORT$, ANFANG, 1) = A$  'ZEICHEN DURCH EINGABE ERSETZEN
  410. 60585 LOCATE ZEILE, SPALTE + ANFANG - 1, 1, 6, CURSOR
  411. 60590 PRINT A$
  412. 60595 IF ANFANG < LAENGE THEN ANFANG = ANFANG + 1
  413. 60600 RETURN
  414. 60605 :
  415. 60610 REM *** EINFÜGEMODUS ZAHLEN ****
  416. 60615 :
  417. 60620 IF (A$ = "+" OR A$ = "-") AND ANFANG > 1 THEN PRINT CHR$(7): RETURN
  418. 60621 IF (A$ = "+" OR A$ = "-") AND ANFANG = 1 AND VORZEICHEN = 1 THEN PRINT CHR$(7): RETURN
  419. 60622 IF (A$ = "+" OR A$ = "-") AND ANFANG = 1 THEN VORZEICHEN = 1
  420. 60623 IF (A$ = "," OR A$ = ".") AND KOMMA = 1 THEN PRINT CHR$(7): RETURN
  421. 60625 IF (A$ = "," OR A$ = ".") AND KOMMA = 0 THEN A$ = ".": KOMMA = 1
  422. 60630 WORT$ = LEFT$(WORT$, ANFANG - 1) + A$ + MID$(WORT$, ANFANG, LEN(WORT$) - ANFANG)'ZEICHEN EINFUEGEN
  423. 60635 LOCATE ZEILE, SPALTE, 1, 6, CURSOR
  424. 60640 PRINT WORT$
  425. 60645 IF ANFANG < LAENGE THEN ANFANG = ANFANG + 1
  426. 60650 RETURN
  427. 60655 :
  428. 61000 REM*********************INITIALISIERUNG**************
  429. 61005 :
  430. 61010 STEUER$ = CHR$(77) + CHR$(75) + CHR$(71) + CHR$(79) + CHR$(83) + CHR$(82)  'STEUERZEICHEN
  431. 61015 ABSCHLUSS$ = CHR$(13)       'RETURN IST ABSCHLUSS DER EINGABE
  432. 61016 ESC$ = CHR$(27)
  433. 61020 ENDE$ = ABSCHLUSS$          'RETURN IST ABSCHLUSS DER EINGABE
  434. 61025 ZAHLEN$ = "1234567890+-.,"  'ZEICHEN FÜR ZAHLENEINGABE
  435. 61030 BUCHSTABEN$ = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ äöüÄÖÜß"
  436. 61035 SONDER$ = " !$%&/()=?[]{}µ|ⁿ²'`*,.-:;_<>\+-^°@~" + CHR$(34)
  437. 61040 ALLE$ = ""
  438. 61041 FOR I = 1 TO 255
  439. 61042   IF I <> 13 AND I <> 27 THEN ALLE$ = ALLE$ + CHR$(I)
  440. 61043 NEXT I
  441. 61045 RETURN
  442.  
  443.