home *** CD-ROM | disk | FTP | other *** search
- '*---------------------------------------------------------*
- '* COMP_ART.BAS *
- '* für Quick-Basic ab V. 4.00 *
- '* (C) 1991 Th.Frins, W.Kehr 1990 & TOOLBOX *
- '*---------------------------------------------------------*
-
- '*------------ Definitionen und Deklarationen: ------------*
-
- '* Prozedurdeklarationen:
- DECLARE SUB Suchen (wahl%, aufgabe$, aendern%)
- DECLARE SUB Artikeleingabe (satznummer%, leersatz AS ANY, _
- aufgabe$)
- DECLARE SUB NichtAktiv (wahlnr%, options$())
- DECLARE SUB Verarbeitung (nummer%, options$(), elemente%)
- DECLARE SUB HellBlinken ()
- DECLARE SUB Unterstrichen ()
- DECLARE SUB Hell ()
- DECLARE SUB Normal ()
- DECLARE SUB Blinken ()
- DECLARE SUB Invers ()
- DECLARE SUB Bildloeschen (zeilelinksoben%, _
- spaltelinksoben%, zeilerechtsunten%, _
- spalterechtsunten%, loeschzeichen$)
- DECLARE SUB Rahmen (zeilelinksoben%, spaltelinksoben%, _
- zeilerechtsunten%, spalterechtsunten%, _
- rahmenzeichen$)
- DECLARE SUB InputNeu (vorgabe$, gueltig$, typ$, _
- laenge%, nachkomma%, zeile%, spalte%, taste$)
- DECLARE SUB Pruefuebergabe (zeile%, spalte%, typ$, _
- laenge%, nachkomma%, gueltig$, vorgabe$, _
- vorzeichen%, komma%, fehler%)
- DECLARE SUB Warten (zeilennr%)
- DECLARE SUB Numerisch (komma%, vorzeichen%, einfmerker%, _
- eingabe$, laenge%, position%, v$)
- DECLARE SUB Zeichen (einfmerker%, eingabe$, laenge%, _
- position%, v$)
- DECLARE SUB FehlMeld (zeilennr%, fehlertext$)
- DECLARE SUB LeseIndizes ()
- DECLARE SUB SpeicherIndizes ()
- DECLARE SUB ErstelleIndizes ()
- DECLARE SUB DosShell ()
- DECLARE SUB DosBefehl ()
- DECLARE SUB Loeschen ()
- DECLARE SUB Meldung (zeile%, spalte%, text$)
- DECLARE SUB JaNein (zeile%, spalte%, text$, ant$)
- DECLARE SUB Druck (wahl%)
-
- '* Funktionsdeklarationen
- DECLARE FUNCTION BalkenMenue% (zeilennr%, SpaltenNr%, _
- elemente%, ErsteWahl%, abstand%, Optionen$())
- DECLARE FUNCTION ZeilenMenue% (zeilennr%, SpaltenNr%, _
- elemente%, ErsteWahl%, Optionen$())
-
- '* Konstantendefinitionen
-
- CONST leer = " "
- CONST wahr = -1
- CONST falsch = NOT wahr
-
-
- '* Datensatzdefinitionen
-
- TYPE Artikelsatz
- Zeitschrift AS STRING * 20
- AusgabeNr AS INTEGER
- Jahrgang AS INTEGER
- ArtikelTyp AS STRING * 10
- HauptStichwort AS STRING * 30
- UnterStichwort1 AS STRING * 30
- UnterStichwort2 AS STRING * 30
- Kurzbeschreibung AS STRING * 77
- Loeschkennung AS INTEGER
- END TYPE
-
- TYPE Zeitindextyp
- Zeitschrift AS STRING * 30
- Satznummer AS INTEGER
- END TYPE
-
- TYPE Jahrindextyp
- Jahrgang AS INTEGER
- Satznummer AS INTEGER
- END TYPE
-
- TYPE Artikelindextyp
- ArtikelTyp AS STRING * 10
- Satznummer AS INTEGER
- END TYPE
-
- TYPE Stichindextyp
- Stichwort AS STRING * 30
- Satznummer AS INTEGER
- END TYPE
-
-
- '* Variablendefinitionen
-
- COMMON /Tools/ InversFlag
- COMMON /CompMod/ Groesse%(), SuchOptionen$()
-
- COMMON SHARED Zeitindex() AS Zeitindextyp
- COMMON SHARED Jahrindex() AS Jahrindextyp
- COMMON SHARED Stichindex() AS Stichindextyp
- COMMON SHARED Artikelindex() AS Artikelindextyp
- COMMON SHARED Loeschliste%(), Anzsaetze%, AnzLoeschSatz%
-
- REM $DYNAMIC
- DIM Loeschliste%(50)
- DIM Zeitindex(1 TO 500) AS Zeitindextyp
- DIM Jahrindex(1 TO 500) AS Jahrindextyp
- DIM Stichindex(1 TO 1500) AS Stichindextyp
- DIM Artikelindex(1 TO 500) AS Artikelindextyp
- REM $STATIC
-
- DIM ZeilenOptionen$(4)
- ZeilenOptionen$(0) = "Artikel bearbeiten"
- ZeilenOptionen$(1) = "Artikel suchen"
- ZeilenOptionen$(2) = "Drucken"
- ZeilenOptionen$(3) = "Dienste"
- ZeilenOptionen$(4) = "Programmende"
-
- DIM BearbeitOptionen$(3)
- BearbeitOptionen$(0) = "Eingabe neuer Artikel"
- BearbeitOptionen$(1) = "Ändern von Artikeln"
- BearbeitOptionen$(2) = "Löschen von Artikeln"
- BearbeitOptionen$(3) = "Zurück"
-
- DIM SuchOptionen$(4)
- SuchOptionen$(0) = "Zeitschrift"
- SuchOptionen$(1) = "Jahrgang"
- SuchOptionen$(2) = "Artikeltyp"
- SuchOptionen$(3) = "Stichwort"
- SuchOptionen$(4) = "Zurück"
-
- DIM DruckOptionen$(3)
- DruckOptionen$(0) = "Alle Datensätze"
- DruckOptionen$(1) = "Einzelnen Datensatz"
- DruckOptionen$(2) = "Selektierte Liste"
- DruckOptionen$(3) = "Zurück"
-
- DIM UtilOptionen$(3)
- UtilOptionen$(0) = "Reorganisation"
- UtilOptionen$(1) = "DOS-Shell aufrufen"
- UtilOptionen$(2) = "DOS-Kommando ausführen"
- UtilOptionen$(3) = "Zurück"
-
- DIM Eintrag AS Artikelsatz
-
- DIM Groesse%(8)
- Groesse%(1) = LEN(Eintrag.Zeitschrift)
- Groesse%(2) = 2
- Groesse%(3) = 2
- Groesse%(4) = LEN(Eintrag.ArtikelTyp)
- Groesse%(5) = LEN(Eintrag.HauptStichwort)
- Groesse%(6) = LEN(Eintrag.UnterStichwort1)
- Groesse%(7) = LEN(Eintrag.UnterStichwort2)
- Groesse%(8) = LEN(Eintrag.Kurzbeschreibung)
-
-
- '*------------------ HAUPTPROGRAMM ------------------------*
-
- OPEN "Comp_art.dat" FOR RANDOM AS #1 LEN = LEN(Eintrag)
- Anzsaetze% = LOF(1) / LEN(Eintrag)
-
- CALL ErstelleIndizes
-
- CLS
- CALL Rahmen(1, 1, 5, 80, CHR$(201))
- LOCATE 2, 3, 0
- Hell
- PRINT "Artikel aus Computerzeitschriften verwalten ";
- Normal
- LOCATE 2, 60, 0: PRINT "(C) THF/WK/DMV 1990"
- CALL Rahmen(6, 1, 20, 80, CHR$(214))
- CALL Rahmen(21, 1, 25, 80, CHR$(201))
- DO
- Hell
- LOCATE 22, 3, 0
- PRINT "Mit "; CHR$(27); " und "; CHR$(26);
- PRINT " selektieren, mit "; CHR$(17); "─┘ aktivieren";
- Normal
- wahl% = ZeilenMenue%(4, 2, 5, 1, ZeilenOptionen$())
- SELECT CASE wahl%
- CASE 1
- Verarbeitung wahl%, BearbeitOptionen$(), 4
- CASE 2
- Verarbeitung wahl%, SuchOptionen$(), 5
- CASE 3
- Verarbeitung wahl%, DruckOptionen$(), 4
- CASE 4
- Verarbeitung wahl%, UtilOptionen$(), 4
- END SELECT
- LOOP UNTIL wahl% = 5
-
- CLOSE
- CLS
- END
-
- '*------------------ ENDE DES HAUPTPROGRAMMS --------------*
-
- SUB NichtAktiv (wahlnr%, options$())
- Bildloeschen 22, 2, 24, 79, " "
- LOCATE 22, 3, 0: PRINT "Sie haben ";
- CALL Hell: PRINT options$(wahlnr% - 1); : Normal
- PRINT " gewählt !";
- LOCATE 23, 3, 0
- PRINT "Dieser Programmteil ist derzeit nicht aktiv !";
- END SUB
-
- SUB Verarbeitung (nummer%, options$(), elemente%)
- DIM leersatz AS Artikelsatz
- SHARED SuchOptionen$()
- Balkenwahl% = 1
- aendern% = falsch
- DO
- Vorhanden% = 0
- LOCATE 22, 2: PRINT leer
- Hell
- LOCATE 22, 3, 0
- PRINT "Mit "; CHR$(24); " und "; CHR$(25);
- PRINT " selektieren, mit "; CHR$(17); "─┘ aktivieren"
- Normal
- SELECT CASE nummer%
- CASE 1
- Balkenwahl% = BalkenMenue%(8, 26, elemente%, _
- Balkenwahl%, 2, options$())
- IF Balkenwahl% = 1 THEN
- CALL Artikeleingabe(Anzsaetze% + 1, leersatz, _
- "Eingabe")
- Vorhanden% = 1
- END IF
- IF Balkenwahl% = 2 THEN
- CALL Bildloeschen(7, 2, 19, 79, "")
- DO
- Balkenwahl% = 1
- Balkenwahl% = BalkenMenue%(8, 26, 5, _
- Balkenwahl%, 2, SuchOptionen$())
- IF Balkenwahl% <> 5 THEN
- CALL Suchen(Balkenwahl%, "Aendern", aendern%)
- END IF
- CALL Bildloeschen(7, 2, 19, 79, "")
- CALL Bildloeschen(22, 2, 24, 79, "")
- CALL JaNein(23, 5, "Weitere Artikel ändern" + _
- " (J/N)", ant$)
- CALL Bildloeschen(22, 2, 24, 79, "")
- CALL Hell
- LOCATE 22, 3, 0
- PRINT "Mit "; CHR$(24); " und "; CHR$(25);
- PRINT " selektieren, mit "; CHR$(17);
- PRINT "─┘ aktivieren"
- CALL Normal
- LOOP UNTIL UCASE$(ant$) = "N"
- IF aendern% = wahr THEN
- CALL Bildloeschen(22, 2, 24, 79, "")
- CALL Meldung(22, 5, "Ich erstelle die Indizes")
- CALL ErstelleIndizes
- CALL Warten(24)
- CALL Normal
- END IF
- Balkenwahl% = 2
- Vorhanden% = 1
- END IF
- IF Balkenwahl% = 3 THEN
- CALL Bildloeschen(7, 2, 19, 79, "")
- DO
- Balkenwahl% = 1
- Balkenwahl% = BalkenMenue%(8, 26, 5, _
- Balkenwahl%, 2, SuchOptionen$())
- IF Balkenwahl% <> 5 THEN
- CALL Suchen(Balkenwahl%, "Loeschen", aendern%)
- END IF
- CALL Bildloeschen(7, 2, 19, 79, "")
- CALL Bildloeschen(22, 2, 24, 79, "")
- CALL JaNein(23, 5, "Weitere Artikel loeschen" +_
- " (J/N)", ant$)
- CALL Bildloeschen(22, 2, 24, 79, "")
- IF UCASE$(ant$) = "J" THEN
- CALL Hell
- LOCATE 22, 3, 0
- PRINT "Mit "; CHR$(24); " und "; CHR$(25);
- PRINT " selektieren, mit "; CHR$(17);
- PRINT "─┘ aktivieren"
- CALL Normal
- END IF
- LOOP UNTIL UCASE$(ant$) = "N"
- IF aendern% = wahr THEN CALL Loeschen
- Balkenwahl% = 3
- Vorhanden% = 1
- END IF
- CASE 2
- Balkenwahl% = BalkenMenue%(8, 26, elemente%, _
- Balkenwahl%, 2, options$())
- IF Balkenwahl% <> 5 THEN
- CALL Suchen(Balkenwahl%, "Suchen", aendern%)
- END IF
- Vorhanden% = 1
- CASE 3
- Balkenwahl% = BalkenMenue%(8, 26, elemente%, _
- Balkenwahl%, 2, options$())
- IF Balkenwahl% = 1 THEN CALL Druck(Balkenwahl%)
- IF Balkenwahl% = 2 THEN
- Balkenwahl% = 1
- CALL Bildloeschen(7, 2, 19, 79, "")
- Balkenwahl% = BalkenMenue%(8, 26, 5, _
- Balkenwahl%, 2, SuchOptionen$())
- IF Balkenwahl% <> 5 THEN
- CALL Suchen(Balkenwahl%, "EinzelDrucken", _
- aendern%)
- END IF
- CALL Bildloeschen(7, 2, 19, 79, "")
- CALL Bildloeschen(22, 2, 24, 79, "")
- Balkenwahl% = 2
- END IF
- IF Balkenwahl% = 3 THEN
- Balkenwahl% = 1
- CALL Bildloeschen(7, 2, 19, 79, "")
- Balkenwahl% = BalkenMenue%(8, 26, 5, _
- Balkenwahl%, 2, SuchOptionen$())
- IF Balkenwahl% <> 5 THEN
- CALL Suchen(Balkenwahl%, "ListDrucken", _
- aendern%)
- END IF
- CALL Bildloeschen(7, 2, 19, 79, "")
- CALL Bildloeschen(22, 2, 24, 79, "")
- Balkenwahl% = 3
- END IF
- Vorhanden% = 1
- CASE 4
- Balkenwahl% = BalkenMenue%(8, 26, elemente%, _
- Balkenwahl%, 2, options$())
- SELECT CASE Balkenwahl%
- CASE IS = 1
- CALL ErstelleIndizes
- CASE IS = 2
- CALL DosShell
- CASE IS = 3
- CALL DosBefehl
- END SELECT
- Vorhanden% = 1
- END SELECT
- IF options$(Balkenwahl% - 1) <> "Zurück" AND _
- Vorhanden% = 0 THEN
- CALL NichtAktiv(Balkenwahl%, options$())
- CALL Warten(24)
- END IF
- CALL Bildloeschen(7, 2, 19, 79, "")
- CALL Bildloeschen(22, 2, 24, 79, "")
- LOOP UNTIL Balkenwahl% = elemente%
- END SUB