home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 12 / einsteig / comp_art.bas next >
Encoding:
BASIC Source File  |  1990-10-26  |  5.9 KB  |  174 lines

  1. '***********************************************************
  2. '*              Comp_art.bas für Quick Basic               *
  3. '*           (C) Th.Frins/W.Kehr und toolbox               *
  4. '*                                                         *
  5. '*                                                         *
  6. '***********************************************************
  7.  
  8.  
  9. '* Sub-Deklarationen
  10.  
  11. DECLARE SUB Suchen (wahl%)
  12. DECLARE SUB ArtikelEingabe ()
  13. DECLARE SUB NichtAktiv (WahlNr%, Options$())
  14. DECLARE SUB Verarbeitung (Nummer%, Options$(), Elemente%)
  15. DECLARE SUB HellBlinken ()
  16. DECLARE SUB Unterstrichen ()
  17. DECLARE SUB hell ()
  18. DECLARE SUB normal ()
  19. DECLARE SUB Blinken ()
  20. DECLARE SUB invers ()
  21. DECLARE SUB bildloeschen (ZeileLinksOben%, SpalteLinksOben%, ZeileRechtsUnten%, SpalteRechtsUnten%, LoeschZeichen$)
  22. DECLARE SUB rahmen (ZeileLinksOben%, SpalteLinksOben%, ZeileRechtsUnten%, SpalteRechtsUnten%, RahmenZeichen$)
  23. DECLARE SUB InputNeu (vorgabe$, gueltig$, typ$, laenge%, nachkomma%, zeile%, spalte%, taste$)
  24. DECLARE SUB pruefuebergabe (zeile%, spalte%, typ$, laenge%, nachkomma%, gueltig$, vorgabe$, vorzeichen%, komma%, fehler%)
  25. DECLARE SUB warten (ZeilenNr%)
  26. DECLARE SUB numerisch (komma%, vorzeichen%, einfmerker%, eingabe$, laenge%, position%, v$)
  27. DECLARE SUB zeichen (einfmerker%, eingabe$, laenge%, position%, v$)
  28. DECLARE SUB fehlmeld (ZeilenNr%, Fehlertext$)
  29.  
  30. 'Funktionsdeklarationen
  31.  
  32. DECLARE FUNCTION BalkenMenue% (ZeilenNr%, SpaltenNr%, Elemente%, ErsteWahl%, abstand%, Optionen$())
  33. DECLARE FUNCTION ZeilenMenue% (ZeilenNr%, SpaltenNr%, Elemente%, ErsteWahl%, Optionen$())
  34.  
  35. 'Konstantendefinitionen
  36.  
  37. CONST leer = "                                                                              "
  38.  
  39. 'Datensatzdefinitionen
  40.  
  41. TYPE Artikelsatz
  42.     Zeitschrift AS STRING * 20
  43.     AusgabeNr AS INTEGER
  44.     Jahrgang AS INTEGER
  45.     ArtikelTyp AS STRING * 10
  46.     HauptStichwort AS STRING * 30
  47.     UnterStichwort1 AS STRING * 30
  48.     UnterStichwort2 AS STRING * 30
  49.     Kurzbeschreibung AS STRING * 77
  50.     Loeschkennung AS INTEGER
  51. END TYPE
  52.  
  53. 'Variablendefinitionen
  54.  
  55. COMMON /Tools/ InversFlag
  56.  
  57. COMMON /CompMod/ groesse%(), SuchOptionen$()
  58.  
  59. DIM ZeilenOptionen$(4)
  60. ZeilenOptionen$(0) = "Artikel bearbeiten"
  61. ZeilenOptionen$(1) = "Artikel suchen"
  62. ZeilenOptionen$(2) = "Drucken"
  63. ZeilenOptionen$(3) = "Dienste"
  64. ZeilenOptionen$(4) = "Programmende"
  65.  
  66. DIM BearbeitOptionen$(3)
  67. BearbeitOptionen$(0) = "Eingabe neuer Artikel"
  68. BearbeitOptionen$(1) = "Ändern von Artikeln"
  69. BearbeitOptionen$(2) = "Löschen von Artikeln"
  70. BearbeitOptionen$(3) = "Zurück"
  71.  
  72. DIM SuchOptionen$(4)
  73. SuchOptionen$(0) = "Zeitschrift"
  74. SuchOptionen$(1) = "Jahrgang"
  75. SuchOptionen$(2) = "Stichwort"
  76. SuchOptionen$(3) = "Artikeltyp"
  77. SuchOptionen$(4) = "Zurück"
  78.  
  79. DIM DruckOptionen$(3)
  80. DruckOptionen$(0) = "Alle Datensätze"
  81. DruckOptionen$(1) = "Einzelnen Datensatz"
  82. DruckOptionen$(2) = "Selektierte Liste"
  83. DruckOptionen$(3) = "Zurück"
  84.  
  85. DIM UtilOptionen$(3)
  86. UtilOptionen$(0) = "Reorganisation"
  87. UtilOptionen$(1) = "DOS-Shell aufrufen"
  88. UtilOptionen$(2) = "DOS-Kommando ausführen"
  89. UtilOptionen$(3) = "Zurück"
  90.  
  91. DIM Eintrag AS Artikelsatz
  92.  
  93. DIM groesse%(8)
  94. groesse%(1) = LEN(Eintrag.Zeitschrift)
  95. groesse%(2) = 2
  96. groesse%(3) = 2
  97. groesse%(4) = LEN(Eintrag.ArtikelTyp)
  98. groesse%(5) = LEN(Eintrag.HauptStichwort)
  99. groesse%(6) = LEN(Eintrag.UnterStichwort1)
  100. groesse%(7) = LEN(Eintrag.UnterStichwort2)
  101. groesse%(8) = LEN(Eintrag.Kurzbeschreibung)
  102.  
  103. '----------------------------------------------------------
  104. '
  105. '------------------ HAUPTPROGRAMM -------------------------
  106. CLS
  107. CALL rahmen(1, 1, 5, 80, CHR$(201))
  108. LOCATE 2, 3, 0: hell: PRINT "Artikel aus Computerzeitschriften verwalten  "; : normal
  109. LOCATE 2, 60, 0: PRINT "(C) THF/WK/DMV 1990"
  110. CALL rahmen(6, 1, 20, 80, CHR$(214))
  111. CALL rahmen(21, 1, 25, 80, CHR$(201))
  112. DO
  113.     hell
  114.     LOCATE 22, 3, 0: PRINT "Mit "; CHR$(27); " und "; CHR$(26); " selektieren, mit "; CHR$(17); "─┘ aktivieren";
  115.     normal
  116.     wahl% = ZeilenMenue%(4, 2, 5, 1, ZeilenOptionen$())
  117.     SELECT CASE wahl%
  118.         CASE 1
  119.             Verarbeitung wahl%, BearbeitOptionen$(), 4
  120.         CASE 2
  121.             Verarbeitung wahl%, SuchOptionen$(), 5
  122.         CASE 3
  123.             Verarbeitung wahl%, DruckOptionen$(), 4
  124.         CASE 4
  125.             Verarbeitung wahl%, UtilOptionen$(), 4
  126.     END SELECT
  127. LOOP UNTIL wahl% = 5
  128. CLS
  129. END
  130.  
  131. '------------------- ENDE DES HAUPTPROGRAMMS --------------
  132.  
  133. SUB NichtAktiv (WahlNr%, Options$())
  134.     bildloeschen 22, 2, 24, 79, " "
  135.     LOCATE 22, 3, 0: PRINT "Sie haben ";
  136.     CALL hell: PRINT Options$(WahlNr% - 1); : normal
  137.     PRINT " gewählt !";
  138.     LOCATE 23, 3, 0: PRINT "Dieser Programmteil ist derzeit nicht aktiv !";
  139. END SUB
  140.  
  141. SUB Verarbeitung (Nummer%, Options$(), Elemente%)
  142.     Balkenwahl% = 1
  143.     DO
  144.         Vorhanden% = 0
  145.         LOCATE 22, 2: PRINT leer
  146.         hell
  147.         LOCATE 22, 3, 0: PRINT "Mit "; CHR$(24); " und "; CHR$(25); " selektieren, mit "; CHR$(17); "─┘ aktivieren"
  148.         normal
  149.         SELECT CASE Nummer%
  150.             CASE 1
  151.                 Balkenwahl% = BalkenMenue%(8, 26, Elemente%, Balkenwahl%, 2, Options$())
  152.                 IF Balkenwahl% = 1 THEN
  153.                    CALL ArtikelEingabe
  154.                    Vorhanden% = 1
  155.                 END IF
  156.             CASE 2
  157.                 Balkenwahl% = BalkenMenue%(8, 26, Elemente%, Balkenwahl%, 2, Options$())
  158.                 IF Balkenwahl% <> 5 THEN CALL Suchen(Balkenwahl%)
  159.                 Vorhanden% = 1
  160.             CASE 3
  161.                 Balkenwahl% = BalkenMenue%(8, 26, Elemente%, Balkenwahl%, 2, Options$())
  162.             CASE 4
  163.                 Balkenwahl% = BalkenMenue%(8, 26, Elemente%, Balkenwahl%, 2, Options$())
  164.         END SELECT
  165.         IF Options$(Balkenwahl% - 1) <> "Zurück" AND Vorhanden% = 0 THEN
  166.             CALL NichtAktiv(Balkenwahl%, Options$())
  167.             CALL warten(24)
  168.         END IF
  169.         CALL bildloeschen(7, 2, 19, 79, "")
  170.         CALL bildloeschen(22, 2, 24, 79, "")
  171.     LOOP UNTIL Balkenwahl% = Elemente%
  172. END SUB
  173.  
  174.