home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 09 / einsteig / gwbsp4_a.bas < prev    next >
Encoding:
BASIC Source File  |  1990-08-03  |  16.3 KB  |  427 lines

  1.  3 REM *****************************************************
  2.  5 REM   Basic-Kurs(4)   (C) Th.Frins/W.Kehr & toolbox 1990
  3. 10 REM ******************** GBWBSP4_A.BAS ******************
  4. 20 REM KALKULATION DER SELBSTKOSTEN
  5. 30 REM PROGRAMMIERER:   XYZ
  6. 40 REM Variablenbeschreibungen wie in den vorhergehenden
  7. 50 REM Fassungen
  8. 60 :
  9. 230 REM *** AB HIER BEGINNT DAS HAUPTPROGRAMM **************
  10. 240 :
  11. 250 REM ************** Variableninitialisierung ************
  12. 260 LEER$ = SPACE$(55)
  13. 270 WARTEN$ = "j"
  14. 275 GOSUB 61000         'INITIALISIERUNG FÜR EINGABEROUTINE
  15. 280 REM ************** Beginn der Hauptschleife ************
  16. 290 WHILE WARTEN$ = "j" OR WARTEN$ = "J"
  17. 300     GOSUB 1000           'MASKE
  18. 310     GOSUB 2000           'AUSWAHL
  19. 320     IF WAHL$ = "3" THEN WARTEN$ = "n"
  20. 330     IF WAHL$ <> "3" THEN GOSUB 6000: GOSUB 7000  'BERECHNUNG : AUSGABE
  21. 340 WEND
  22. 500 END
  23. 510 REM *** ENDE DES HAUPTPROGRAMMS ************************
  24. 520 :
  25. 1000 REM *** BEGINN UNTERPROGRAMM MASKE ********************
  26. 1005 :
  27. 1006 REM Haben wir letztes Mal versäumt, als Schleife umzubauen
  28. 1007 REM Sie haben es doch sicherlich gleich entdeckt und
  29. 1008 REM selbst erledigt !?
  30. 1010 CLS : KEY OFF
  31. 1020 LOCATE 2, 5: PRINT STRING$(1, 201); STRING$(70, 205); STRING$(1, 187)
  32. 1030 FOR I = 3 TO 22
  33. 1040    LOCATE I, 5: PRINT STRING$(1, 186): LOCATE I, 76: PRINT STRING$(1, 186)
  34. 1050 NEXT I
  35. 1230 LOCATE 23, 5: PRINT STRING$(1, 200); STRING$(70, 205); STRING$(1, 188)
  36. 1240 REM ******** Bearbeitungsart wählen *******************
  37. 1250 LOCATE 3, 15: PRINT "Bearbeitungsart wählen"
  38. 1260 LOCATE 5, 15: PRINT "[ 1 ]  Gemeinkostenzuschläge selbst eingeben"
  39. 1270 LOCATE 7, 15: PRINT "[ 2 ]  Gemeinkostenzuschläge - Standardwerte übernehmen"
  40. 1280 LOCATE 9, 15: PRINT "[ 3 ]  Programm abbrechen"
  41. 1290 LOCATE 11, 15: PRINT "Die Standardwerte lauten wie folgt:"
  42. 1300 LOCATE 13, 15: PRINT "Materialgemeinkosten    :  20 %"
  43. 1310 LOCATE 15, 15: PRINT "Fertigungsgemeinkosten  :  50 %"
  44. 1320 LOCATE 17, 15: PRINT "Verwaltungsgemeinkosten :  10 %"
  45. 1330 LOCATE 19, 15: PRINT "Vertriebsgemeinkosten   :   5 %"
  46. 1340 LOCATE 22, 15: PRINT "Bitte mit der Ziffer '1' oder '2' oder '3' wählen ";
  47. 1350 RETURN
  48. 1360 :
  49. 1370 REM *** ENDE UNTERPROGRAMM MASKE **********************
  50. 1380 :
  51. 2000 REM *** BEGINN UNTERPROGRAMM AUSWAHL ******************
  52. 2005 :
  53. 2010 WAHLSCHLEIFE = 1
  54. 2020 WHILE WAHLSCHLEIFE = 1
  55. 2030    WAHL$ = INKEY$
  56. 2040    IF WAHL$ = "1" OR WAHL$ = "2" OR WAHL$ = "3" THEN WAHLSCHLEIFE = 0
  57. 2050    IF WAHL$ <> "1" AND WAHL$ <> "2" AND WAHL$ <> "3" AND WAHL$ <> "" THEN BEEP
  58. 2060 WEND
  59. 2070 IF WAHL$ = "3" THEN 2300    'Sprung zum RETURN
  60. 2080 ZEILE = 3
  61. 2090 WHILE ZEILE < 20
  62. 2100    LOCATE ZEILE, 15
  63. 2120    PRINT LEER$
  64. 2130    ZEILE = ZEILE + 2
  65. 2140 WEND
  66. 2160 REM ******* Ersatzweise mit einer FOR-Schleife ********
  67. 2170 REM FOR ZEILE = 3 TO 19 STEP 2
  68. 2180 REM     LOCATE ZEILE, 15
  69. 2190 REM     PRINT LEER$
  70. 2200 REM NEXT ZEILE
  71. 2210 LOCATE 22, 15: PRINT LEER$
  72. 2220 GOSUB 5000              'MATERIAL & LOHN
  73. 2225 WAHL = VAL(WAHL$)
  74. 2230 ON WAHL GOSUB 3000, 4000  'EIGENWERTE,STANDARDWERTE
  75. 2300 RETURN
  76. 2310 :
  77. 2320 REM *** ENDE DES UNTERPROGRAMMS AUSWAHL ***************
  78. 2330 :
  79. 3000 REM *** BEGINN UNTERPROGRAMM EIGENWERTE ***************
  80. 3005 :
  81. 3010 LOCATE 12, 10: PRINT "MATERIALGEMEINKOSTEN IN % (max. 100.0 %) .......: "
  82. 3020 ZEILE = 12: SPALTE = 60: WORT$ = SPACE$(5): LAENGE = 5: ERLAUBT$ = ZAHLEN$
  83. 3022 VWORT$ = WORT$
  84. 3030 GOSUB 60000     'EINGABEROUTINE
  85. 3045 MGPR = VAL(WORT$)
  86. 3050 LOCATE 14, 10: PRINT "FERTIGUNGSGEMEINKOSTEN IN % (max. 100.0 %) .....: "
  87. 3060 ZEILE = 14: SPALTE = 60: WORT$ = SPACE$(5): LAENGE = 5: ERLAUBT$ = ZAHLEN$
  88. 3062 VWORT$ = WORT$
  89. 3070 GOSUB 60000     'EINGABEROUTINE
  90. 3085 FPR = VAL(WORT$)
  91. 3090 LOCATE 16, 10: PRINT "VERWALTUNGSGEMEINKOSTEN IN % (max. 100.0 %) ....: "
  92. 3100 ZEILE = 16: SPALTE = 60: WORT$ = SPACE$(5): LAENGE = 5: ERLAUBT$ = ZAHLEN$
  93. 3102 VWORT$ = WORT$
  94. 3110 GOSUB 60000     'EINGABEROUTINE
  95. 3125 VWPR = VAL(WORT$)
  96. 3130 LOCATE 18, 10: PRINT "VERTRIEBSGEMEINKOSTEN IN % (max. 100.0 %) ......: "
  97. 3140 ZEILE = 18: SPALTE = 60: WORT$ = SPACE$(5): LAENGE = 5: ERLAUBT$ = ZAHLEN$
  98. 3141 VWORT$ = WORT$
  99. 3142 GOSUB 60000     'EINGABEROUTINE
  100. 3145 VPR = VAL(WORT$)
  101. 3150 PRINT
  102. 3170 PRINT
  103. 3180 GOSUB 8000              'WARTEN
  104. 3300 RETURN
  105. 3310 :
  106. 3320 REM *** ENDE DES UNTERPROGRAMMS EIGENWERTE ************
  107. 3330 :
  108. 4000 REM *** BEGINN UNTERPROGRAMM STANDARDWERTE ************
  109. 4005 :
  110. 4010 MGPR = 20: FPR = 50: VWPR = 10: VPR = 5: LOCATE 20, 1
  111. 4020 GOSUB 8000              'WARTEN
  112. 4300 RETURN
  113. 4310 :
  114. 4320 REM *** ENDE DES UNTERPROGRAMMS STANDARDWERTE *********
  115. 4330 :
  116. 5000 REM *** BEGINN UNTERPROGRAMM MATERIAL & LOHN **********
  117. 5005 :
  118. 5010 COLOR 0, 7
  119. 5020 LOCATE 1, 25: PRINT "KALKULATION DER SELBSTKOSTEN"
  120. 5030 COLOR 7, 0
  121. 5040 LOCATE 4, 20: PRINT "Dezimalstelle mit PUNKT oder KOMMA eingeben:"
  122. 5050 PRINT
  123. 5060 LOCATE 8, 10: PRINT "FERTIGUNGSMATERIAL IN DM (max. 99999.99 DM) ....: "
  124. 5070 ZEILE = 8: SPALTE = 60: WORT$ = SPACE$(8): LAENGE = 8: ERLAUBT$ = ZAHLEN$
  125. 5072 VWORT$ = WORT$
  126. 5073 GOSUB 60000     'EINGABEROUTINE
  127. 5075 FM = VAL(WORT$)
  128. 5080 LOCATE 10, 10: PRINT "FERTIGUNGSLÖHNE IN DM (max. 99999.99 DM) .......: "
  129. 5090 ZEILE = 10: SPALTE = 60: WORT$ = SPACE$(8): LAENGE = 8: ERLAUBT$ = ZAHLEN$
  130. 5092 VWORT$ = WORT$
  131. 5095 GOSUB 60000   'EINGABEROUTINE
  132. 5100 FL = VAL(WORT$)
  133. 5110 RETURN
  134. 5120 :
  135. 5130 REM *** ENDE DES UNTERPROGRAMMS MATERIAL & LOHN *******
  136. 5140 :
  137. 6000 REM *** BEGINN UNTERPROGRAMM BERECHNUNG ***************
  138. 6005 :
  139. 6020 LET MGDM = FM * MGPR / 100
  140. 6030 FDM = FL * FPR / 100
  141. 6040 H = FM + FL + MGDM + FDM
  142. 6050 VWDM = H * VWPR / 100
  143. 6060 VDM = H * VPR / 100
  144. 6070 S = H + VWDM + VDM
  145. 6080 RETURN
  146. 6090 :
  147. 6100 REM *** ENDE DES UNTERPROGRAMMS BERECHNUNG ************
  148. 6110 :
  149. 7000 REM *** BEGINN UNTERPROGRAMM AUSGABE ******************
  150. 7005 :
  151. 7007 CLS
  152. 7010 PRINT
  153. 7015 DATUM$ = MID$(DATE$, 4, 3) + MID$(DATE$, 1, 3) + MID$(DATE$, 7, 4)
  154. 7020 PRINT "KALKULATION DER SELBSTKOSTEN VOM "; DATUM$
  155. 7025 PRINT
  156. 7030 PRINT "FERTIGUNGSMATERIAL";
  157. 7035 COLOR 15, 0: PRINT TAB(40); USING "######.## DM"; FM: COLOR 7, 0
  158. 7040 PRINT "+  ";
  159. 7045 PRINT USING "###.##"; MGPR;
  160. 7050 PRINT " % MATERIALGEMEINKOSTEN";
  161. 7055 COLOR 15, 0: PRINT TAB(40); USING "######.## DM"; MGDM: COLOR 7, 0
  162. 7060 PRINT "FERTIGUNGSLÖHNE";
  163. 7065 COLOR 15, 0: PRINT TAB(40); USING "######.## DM"; FL: COLOR 7, 0
  164. 7070 PRINT "+  ";
  165. 7075 PRINT USING "###.##"; FPR;
  166. 7080 PRINT " % FERTIGUNGSGEMEINKOSTEN";
  167. 7090 COLOR 15, 0: PRINT TAB(40); USING "######.## DM"; FDM: COLOR 7, 0
  168. 7100 PRINT "---------------------------------------------------"
  169. 7105 PRINT "HERSTELLKOSTEN";
  170. 7110 COLOR 15, 0: PRINT TAB(40); USING "######.## DM"; H: COLOR 7, 0
  171. 7115 PRINT "+  ";
  172. 7120 PRINT USING "###.##"; VWPR;
  173. 7125 PRINT " % VERWALTUNGSGEMEINKOSTEN";
  174. 7130 COLOR 15, 0: PRINT TAB(40); USING "######.## DM"; VWDM: COLOR 7, 0
  175. 7135 PRINT "+  ";
  176. 7140 PRINT USING "###.##"; VPR;
  177. 7145 PRINT " % VERTRIEBSGEMEINKOSTEN";
  178. 7150 COLOR 15, 0: PRINT TAB(40); USING "######.## DM"; VDM: COLOR 7, 0
  179. 7155 PRINT "---------------------------------------------------"
  180. 7160 COLOR 31, 0
  181. 7165 PRINT "SELBSTKOSTEN";
  182. 7170 PRINT TAB(39); USING "#######.## DM"; S
  183. 7175 COLOR 7, 0
  184. 7180 PRINT TAB(40); "============"
  185. 7182 PRINT : PRINT : PRINT
  186. 7185 GOSUB 8000              'WARTEN
  187. 7280 RETURN
  188. 7290 :
  189. 7300 REM *** ENDE DES UNTERPROGRAMMS AUSGABE ***************
  190. 7310 :
  191. 8000 REM *** BEGINN UNTERPROGRAMM WARTEN *******************
  192. 8005 :
  193. 8010 LOCATE , 20: PRINT "Weiter mit einer beliebigen Taste";
  194. 8020 DUMMY$ = INPUT$(1)
  195. 8030 RETURN
  196. 8040 :
  197. 8050 REM *** ENDE DES UNTERPROGRAMMS WARTEN ****************
  198. 8060 :
  199. 9000 REM *** BEGINN UNTERPROGRAMM "LADEN" ***
  200. 9005 :
  201. 9010 ON ERROR GOTO 11000
  202. 9020 OPEN "KALK.DAT" FOR INPUT AS #1
  203. 9030 INPUT #1, MGPR, FPR, VWPR, VPR
  204. 9040 LOCATE 19, 20
  205. 9050 PRINT "Geladen wurden die Werte: "; MGPR; FPR; VWPR; VPR
  206. 9060 GOSUB 8000
  207. 9070 CLOSE #1
  208. 9080 ON ERROR GOTO 0
  209. 9090 RETURN
  210. 9100 :
  211. 9110 REM *** ENDE DES UNTERPROGRAMMS "LADEN" ***
  212. 9120 :
  213. 10000 REM *** BEGINN UNTERPROGRAMM "SPEICHERN" ***
  214. 10005 :
  215. 10010 ON ERROR GOTO 11000
  216. 10020 OPEN "KALK.DAT" FOR OUTPUT AS #1
  217. 10030 PRINT #1, MGPR, FPR, VWPR, VPR
  218. 10040 LOCATE 19, 20
  219. 10050 PRINT "Gespeichert wurden die Werte: "; MGPR; FPR; VWPR; VPR
  220. 10060 GOSUB 8000
  221. 10070 CLOSE #1
  222. 10080 ON ERROR GOTO 0
  223. 10090 RETURN
  224. 10100 :
  225. 10110 REM *** ENDE DES UNTERPROGRAMMS "SPEICHERN" ***
  226. 10120 :
  227. 11000 REM *** BEGINN DER ANWEISUNGEN BEI EINEM DATEIFEHLER *
  228. 11005 :
  229. 11010 FEHLNR = ERR
  230. 11020 WHILE FEHLNR = 53
  231. 11030   LOCATE 18, 20: BEEP
  232. 11040   PRINT "Datei nicht vorhanden!"
  233. 11042   LOCATE 19, 20
  234. 11044   PRINT "Verarbeitet werden jetzt die Werte: "; MGPR; FPR; VWPR; VPR
  235. 11050   GOSUB 8000
  236. 11060   FEHLNR = 0
  237. 11070 WEND
  238. 11080 IF ERR = 53 THEN RESUME 9070
  239. 11090 WHILE FEHLNR = 55
  240. 11100   LOCATE 19, 20: BEEP
  241. 11110   PRINT "Datei bereits geöffnet!"
  242. 11120   GOSUB 8000
  243. 11130   FEHLNR = 0
  244. 11140 WEND
  245. 11150 IF ERR = 55 AND ERL = 9020 THEN RESUME 9030
  246. 11160 IF ERR = 55 AND ERL = 10020 THEN RESUME 10030
  247. 11170 :
  248. 11180 REM *** ENDE DER ANWEISUNGEN BEI EINEM DATEIFEHLER **
  249. 11190 :
  250. 59990 REM Hier folgt die Eingaberoutine,
  251. 59991 REM das sind die Zeilen 60000 ff.
  252. 59992 REM aus dem Programm "NEWINPUT_A.BAS"!
  253. 60000 REM *************************************************
  254. 59990 REM hier folgt die Eingaberoutine
  255. 59991 REM das sind die Zeilen 60000 ff
  256. 59992 REM aus dem Programm NEWINPUT_A.BAS
  257. 60000 REM *************************************************
  258. 60005 REM                   EINGABEROUTINE
  259. 60010 REM *************************************************
  260. 60015 :
  261. 60020 REM ***************** SCHLEIFENVORLAUF **************
  262. 60025 :
  263. 60030 REM ***************** VORBESETZUNGEN ****************
  264. 60035 :
  265. 60037 CURSOR = 7                    'CURSORGRÖSSE FESTLEGEN
  266. 60040 ANFANG = 1                    'CURSOR-ANFANGSPOSITION
  267. 60045 EINF = 0                      'UEBERSCHREIBMODUS EIN
  268. 60050 IF ERLAUBT$ = ZAHLEN$ THEN NUMERISCH = 1 ELSE NUMERISCH = 0
  269. 60055 LOCATE ZEILE, SPALTE, 1, 6, CURSOR
  270. 60060 'VORGABE ERSTELLEN
  271. 60065 WORT$ = WORT$ + STRING$(LAENGE - LEN(WORT$), " ")
  272. 60067 IF INSTR(WORT$, ".") <> 0 THEN KOMMA = 1 ELSE KOMMA = 0
  273. 60068 IF INSTR(WORT$, "+") <> 0 OR INSTR(WORT$, "-") <> 0 THEN VORZEICHEN = 1 ELSE VORZEICHEN = 0
  274. 60070 COLOR 0, 7                   'INVERSE DARSTELLUNG EIN
  275. 60075 PRINT WORT$                  'VORGABE AUSGEBEN
  276. 60080 :
  277. 60085 REM ***************** EINGABESCHLEIFE ***************
  278. 60090 :
  279. 60095 EINGABESCHLEIFE = 1
  280. 60100 WHILE EINGABESCHLEIFE = 1
  281. 60105       LOCATE ZEILE, SPALTE + ANFANG - 1, 1, 6, CURSOR
  282. 60110       A$ = ""
  283. 60115       WHILE A$ = ""
  284. 60120           A$ = INKEY$
  285. 60125       WEND
  286. 60130       'RETURN
  287. 60135       IF A$ = ENDE$ THEN EINGABESCHLEIFE = 0
  288. 60137       'ESC
  289. 60138       IF A$ = ESC$ THEN EINGABESCHLEIFE = 0: WORT$ = VWORT$: LOCATE ZEILE, SPALTE: PRINT SPACE$(LAENGE): LOCATE ZEILE, SPALTE: PRINT WORT$
  290. 60140       'UNGÜLTIGE ZEICHEN
  291. 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)
  292. 60150       'GÜLTIGE ZEICHEN
  293. 60155       IF LEN(A$) = 1 AND INSTR(ERLAUBT$, A$) <> 0 THEN GOSUB 60250    'ZEICHEN VERARBEITEN
  294. 60160       IF ASC(LEFT$(A$, 1)) = 8 THEN GOSUB 60485  'BACKSPACE
  295. 60165       IF LEN(A$) = 2 THEN ON INSTR(STEUER$, RIGHT$(A$, 1)) GOSUB 60360, 60385, 60400, 60425, 60450, 60530:
  296. 60167       'Unterprogramme für verschiedene Steuertasten
  297. 60170       LOCATE , , 1, 6, CURSOR
  298. 60175 WEND
  299. 60180 :
  300. 60185 REM ****************** SCHLEIFENNACHLAUF ************
  301. 60190 :
  302. 60195 REM ***** LEERZEICHEN AM STRINGENDE ENTFERNEN *******
  303. 60200 :
  304. 60205 WHILE RIGHT$(WORT$, 1) = " " AND LEN(WORT$) <> 0
  305. 60210       WORT$ = LEFT$(WORT$, LEN(WORT$) - 1)
  306. 60215 WEND
  307. 60220 LOCATE , , 1, 6, CURSOR
  308. 60225 COLOR 7, 0              'INVERSDARSTELLUNG AUS
  309. 60230 RETURN                  'RÜCKSPRUNG ZUM HAUPTPROGRAMM
  310. 60235 :
  311. 60240 REM******************* ZEICHENEINGABE ***************
  312. 60245 :
  313. 60250 IF EINF = 1 THEN GOSUB 60305 ELSE GOSUB 60265
  314. 60255 RETURN
  315. 60260 :
  316. 60265 REM *** ÜBERSCHREIBMODUS TEXT ****
  317. 60270 :
  318. 60275 IF NUMERISCH = 1 THEN GOSUB 60560: RETURN          'ÜBERSCHREIBEN ZAHLEN
  319. 60276 IF NUMERISCH = 0 THEN MID$(WORT$, ANFANG, 1) = A$  'ZEICHEN DURCH EINGABE ERSETZEN
  320. 60280 LOCATE ZEILE, SPALTE + ANFANG - 1, 1, 6, CURSOR
  321. 60285 PRINT A$
  322. 60290 IF ANFANG < LAENGE THEN ANFANG = ANFANG + 1
  323. 60295 RETURN
  324. 60300 :
  325. 60305 REM *** EINFÜGEMODUS TEXT ****
  326. 60310 :
  327. 60315 IF RIGHT$(WORT$, 1) <> " " THEN PRINT CHR$(7): RETURN
  328. 60320 IF NUMERISCH = 1 THEN GOSUB 60610: RETURN          'EINFÜGEN ZAHLEN
  329. 60321 IF NUMERISCH = 0 THEN WORT$ = LEFT$(WORT$, ANFANG - 1) + A$ + MID$(WORT$, ANFANG, LEN(WORT$) - ANFANG) 'ZEICHEN EINFUEGEN
  330. 60325 LOCATE ZEILE, SPALTE, 1, 6, CURSOR
  331. 60330 PRINT WORT$
  332. 60335 IF ANFANG < LAENGE THEN ANFANG = ANFANG + 1
  333. 60340 RETURN
  334. 60345 :
  335. 60350 REM *** CURSOR RECHTS TASTE *****
  336. 60355 :
  337. 60360 IF ERLAUBT$ <> ZAHLEN$ THEN IF ANFANG < LAENGE THEN ANFANG = ANFANG + 1: RETURN ELSE BEEP: RETURN
  338. 60361 IF MID$(WORT$, ANFANG, 1) = " " THEN BEEP ELSE IF ANFANG < LAENGE THEN ANFANG = ANFANG + 1 ELSE BEEP
  339. 60365 RETURN
  340. 60370 :
  341. 60375 REM *** CURSOR LINKS TASTE ******
  342. 60380 :
  343. 60385 IF ANFANG > 1 THEN ANFANG = ANFANG - 1 ELSE BEEP
  344. 60390 RETURN
  345. 60395 :
  346. 60400 REM *** HOME TASTE ***
  347. 60405 :
  348. 60410 ANFANG = 1          'CURSOR AN DEN ANFANG DER EINGABE
  349. 60415 RETURN
  350. 60420 :
  351. 60425 REM *** END TASTE ****
  352. 60430 :
  353. 60435 IF ERLAUBT$ <> ZAHLEN$ THEN ANFANG = LAENGE: RETURN
  354. 60436 FOR I = ANFANG TO LAENGE
  355. 60437   IF MID$(WORT$, I, 1) = " " THEN ANFANG = I: I = LAENGE ELSE ANFANG = I
  356. 60438 NEXT I
  357. 60440 RETURN
  358. 60445 :
  359. 60450 REM *** DELETE TASTE ****
  360. 60455 :
  361. 60457 LOESCH$ = MID$(WORT$, ANFANG, 1)
  362. 60460 WORT$ = LEFT$(WORT$, ANFANG - 1) + RIGHT$(WORT$, LAENGE - ANFANG) + " "           'STRING KORRIGIEREN
  363. 60461 IF NUMERISCH = 1 AND LOESCH$ = "." THEN KOMMA = 0
  364. 60462 IF NUMERISCH = 1 AND (LOESCH$ = "+" OR LOESCH$ = "-") THEN VORZEICHEN = 0
  365. 60465 LOCATE ZEILE, SPALTE, 1, 6, CURSOR
  366. 60470 PRINT WORT$
  367. 60475 RETURN
  368. 60480 :
  369. 60485 REM****BACKSPACE TASTE******
  370. 60490 :
  371. 60495 IF ANFANG = 1 THEN PRINT CHR$(7): RETURN      'SCHON AM ANFANG
  372. 60497 LOESCH$ = MID$(WORT$, ANFANG - 1, 1):
  373. 60500 WORT$ = LEFT$(WORT$, ANFANG - 2) + RIGHT$(WORT$, LAENGE - ANFANG + 1) + " "       'STRING KORRIGIEREN
  374. 60501 IF NUMERISCH = 1 AND LOESCH$ = "." THEN KOMMA = 0
  375. 60502 IF NUMERISCH = 1 AND (LOESCH$ = "+" OR LOESCH$ = "-") THEN VORZEICHEN = 0
  376. 60505 LOCATE ZEILE, SPALTE, 1, 6, CURSOR
  377. 60510 PRINT WORT$
  378. 60515 ANFANG = ANFANG - 1    'ZEICHENPOSITION AKTUALISIEREN
  379. 60520 RETURN
  380. 60525 :
  381. 60530 REM*****INS TASTE********
  382. 60535 :
  383. 60540 EINF = EINF XOR 1      'EINF UMSCHALTEN
  384. 60545 IF CURSOR = 7 THEN CURSOR = 12 ELSE CURSOR = 7
  385. 60550 RETURN
  386. 60555 :
  387. 60560 REM *** ÜBERSCHREIBMODUS ZAHLEN ***
  388. 60565 :
  389. 60570 IF (A$ = "+" OR A$ = "-") AND ANFANG > 1 THEN PRINT CHR$(7): RETURN
  390. 60572 IF (A$ = "+" OR A$ = "-") AND ANFANG = 1 THEN VORZEICHEN = 1
  391. 60575 IF (A$ = "," OR A$ = ".") AND KOMMA = 1 THEN PRINT CHR$(7): RETURN
  392. 60577 IF (A$ = "," OR A$ = ".") AND KOMMA = 0 THEN A$ = ".": KOMMA = 1
  393. 60580 MID$(WORT$, ANFANG, 1) = A$       'ZEICHEN DURCH EINGABE ERSETZEN
  394. 60585 LOCATE ZEILE, SPALTE + ANFANG - 1, 1, 6, CURSOR
  395. 60590 PRINT A$
  396. 60595 IF ANFANG < LAENGE THEN ANFANG = ANFANG + 1
  397. 60600 RETURN
  398. 60605 :
  399. 60610 REM *** EINFÜGEMODUS ZAHLEN ****
  400. 60615 :
  401. 60620 IF (A$ = "+" OR A$ = "-") AND ANFANG > 1 THEN PRINT CHR$(7): RETURN
  402. 60621 IF (A$ = "+" OR A$ = "-") AND ANFANG = 1 AND VORZEICHEN = 1 THEN PRINT CHR$(7): RETURN
  403. 60622 IF (A$ = "+" OR A$ = "-") AND ANFANG = 1 THEN VORZEICHEN = 1
  404. 60623 IF (A$ = "," OR A$ = ".") AND KOMMA = 1 THEN PRINT CHR$(7): RETURN
  405. 60625 IF (A$ = "," OR A$ = ".") AND KOMMA = 0 THEN A$ = ".": KOMMA = 1
  406. 60630 WORT$ = LEFT$(WORT$, ANFANG - 1) + A$ + MID$(WORT$, ANFANG, LEN(WORT$) - ANFANG)       'ZEICHEN EINFUEGEN
  407. 60635 LOCATE ZEILE, SPALTE, 1, 6, CURSOR
  408. 60640 PRINT WORT$
  409. 60645 IF ANFANG < LAENGE THEN ANFANG = ANFANG + 1
  410. 60650 RETURN
  411. 60655 :
  412. 61000 REM*********************INITIALISIERUNG**************
  413. 61005 :
  414. 61010 STEUER$ = CHR$(77) + CHR$(75) + CHR$(71) + CHR$(79) + CHR$(83) + CHR$(82)  'STEUERZEICHEN
  415. 61015 ABSCHLUSS$ = CHR$(13)       'RETURN IST ABSCHLUSS DER EINGABE
  416. 61016 ESC$ = CHR$(27)
  417. 61020 ENDE$ = ABSCHLUSS$
  418. 61025 ZAHLEN$ = "1234567890+-.,"  'ZEICHEN FÜR ZAHLENEINGABE
  419. 61030 BUCHSTABEN$ = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW äöüÄÖÜß"
  420. 61035 SONDER$ = " !$%&/()=?[]{}µ|ⁿ²'`*,.-:;_<>\+-^°@~" + CHR$(34)
  421. 61040 ALLE$ = ""
  422. 61041 FOR I = 1 TO 255
  423. 61042   IF I <> 13 AND I <> 27 THEN ALLE$ = ALLE$ + CHR$(I)
  424. 61043 NEXT I
  425. 61045 RETURN
  426.  
  427.