home *** CD-ROM | disk | FTP | other *** search
- * Programm.: Zur Verwaltung der Disketteninhalte 1.0
- * Author...: Volker Vogeley
- * Datum....: 23.04.1991
- * Notiz....: Copyright (c) 1991 Volker Vogeley & DMV Verlag
- * Bemerkung: Alle Rechte vorbehalten
- * Reserved.:
- * Datei....: DSKBROWS.PRG
- * Programmiersprache: Clipper 5.0 / Clipper S'87
- *
- *
- ******************************************
- ** Einstellungen der Programmumgebung **
- ******************************************
- *ALTD(1)
- SET DATE GERMAN
- SET TALK OFF
- SET SCOREBOARD OFF
- SET DELETED ON
- SET ESCAPE OFF
- SET ECHO OFF
- SET INTENSITY ON
- SET CURSOR ON
- CLOSE
- **********************************************************
- ** Variablen Definition für die Zuweisung der Farben für *
- ** das gesammte Programm *
- **********************************************************
- IF ISCOLOR() && Wenn Farbkarte gefunden folgende Farben
- farbe1 = "w+/gb"
- farbe2 = "b/gb"
- farbe3 = "gb/b+,gr+/n,n/w,,"
- farbe4 = "r/gb"
- farbe5 = "w+/b,n/w+"
- farbe6 = "w+/b+"
- farbe7 = "GR+/b+"
- RAHME_ein=chr(201)+chr(205)+chr(187)+chr(186)+chr(188)+;
- chr(205)+chr(200)+chr(186)+"▓"
- ELSE && Falls Monochrome Darstellung dann diese Farben
- farbe1 ="w+/n"
- farbe2 ="w/I"
- farbe3 ="w/n,i/w+"
- farbe4 ="w/n"
- farbe5 ="w+/n"
- farbe6 ="w+/i"
- farbe7 ="W/n"
- RAHME_ein=chr(201)+chr(205)+chr(187)+chr(186)+chr(188)+;
- chr(205)+chr(200)+chr(186)+"▓"
- ENDIF
- BOX1 = "┌─┐│┘─└│ "
- BOX3 = "░░░░░░░░░"
- BOX2 = "╔═╗║╝═╚║ "
- ******************************************************************
- ** Festlegung der Druckercodes der einzelnen Schriftarten **
- ** für den späteren Einsatz ist geplant, diese Werte aus einer **
- ** kleinen Datenbank zu holen **
- ** Druckercodes wurden für einen NEC oder EPSON 24 Nadel- **
- ** drucker angepasst. **
- ******************************************************************
- BREITEIN=CHR(27)+CHR(87)+"1"
- BREITAUS=CHR(27)+CHR(87)+"0"
- SCHMALEIN=CHR(15)
- SCHMALAUS=CHR(18)
- FETTEIN=CHR(27)+CHR(69)
- FETTAUS=CHR(27)+CHR(70)
- LQEIN=CHR(27)+"x"+"1"
- LQAUS=CHR(27)+"x"+"0"
- PICA=CHR(27)+CHR(80)
- ELITE=CHR(27)+CHR(77)
- HOCHGEIN=CHR(27)+CHR(83)+"0"
- HOCHGAUS=CHR(27)+CHR(84)
- TIEFGEIN=CHR(27)+CHR(83)+"1"
- TIEFGAUS=CHR(27)+CHR(84)
- *************************************************************
- * Variablen für das gesamte Programm festlegen **
- * Farbvariablen , die im gesammten Programm genutzt werden **
- *************************************************************
- PUBLIC FARBE1, FARBE2, FARBE3, FARBE4, FARBE5, FARBE6, FARBE7
- PUBLIC RAHME_EIN, BOX1, BOX2
- *************************************************************
- ** Druckervariablen, die im gesammten Programm zur Steuer- **
- ** ung der Druckausgabe verwendet werden. **
- *************************************************************
- Public TIEFGEIN, TIEFGAUS, HOCHGEIN, HOCHGAUS, PICA, ELITE, LQEIN
- PUBLIC LQAUS, BREITEIN, BREITAUS, SCHAMLEIN, SCHMALAUS, FETTEIN, FETTAUS
- PUBLIC NAME, STRASSE, ORT, TEL
- *************************************************************
- **** ****
- **** HAUPTPROGRAMM ****
- **** ****
- *************************************************************
- IF FILE("CATALOG.DBF") && Wenn Datei vorhanden
- USE CATALOG.DBF && dann öffnen
- ELSE && ansonsten bitte Datenbank anlegen
- CREATE TATALOG
- USE TATALOG
- APPEND BLANK
- REPLACE field_name WITH "DIR",field_type WITH "C", field_len WITH 67
- APPEND BLANK
- REPLACE field_name WITH "NAME",field_type WITH "C", field_len WITH 8
- APPEND BLANK
- REPLACE field_name WITH "EXT",field_type WITH "C", field_len WITH 4
- APPEND BLANK
- REPLACE field_name WITH "SIZE",field_type WITH "N", field_len WITH 8
- APPEND BLANK
- REPLACE field_name WITH "DATE",field_type WITH "C", field_len WITH 10
- APPEND BLANK
- REPLACE field_name WITH "TIME",field_type WITH "C", field_len WITH 8
- APPEND BLANK
- REPLACE field_name WITH "ATTR",field_type WITH "C", field_len WITH 5
- APPEND BLANK
- REPLACE field_name WITH "VOLUME",field_type WITH "C", field_len WITH 12
- GO TOP
- CLEAR
- USE
- CREATE CATALOG FROM TATALOG
- ERASE IND1.NTX
- ERASE IND2.NTX
- ERASE TATALOG.DBF
- USE CATALOG
- ENDIF
- IF FILE("IND1.NTX") .AND. FILE("IND2.NTX")
- USE CATALOG.DBF INDEX IND1,IND2
- ELSE
- INDEX ON Name TO IND1
- INDEX ON Ext TO IND2
- USE CATALOG.DBF INDEX IND1,IND2
- ENDIF
- SET CONSOLE ON
- CLEAR
- ausw = " "
- DO WHILE .T.
- zeit=time()
- tag=date()
- SET COLOR TO (farbe7) && Menueleiste darstellen
- @ 1,0
- @ 22,0
- text=" **** Disketten-Verwaltung 1.0 **** "+;
- " (C) 1991 by V. Vogeley & DMV Verlag "
- SET COLOR to (farbe5)
- DO zent WITH 1,text
- SET COLOR TO (farbe4)
- DO rahmen
- SET COLOR TO (farbe3)
- * Hauptmenue
- SET WRAP ON
- SET MESSAGE TO 24 CENTER
- @ 22,2 PROMPT "Einlesen" message+;
- "Einlesen einer neuen Diskette "
- @ 22,17 PROMPT "Bearbeiten " message+;
- "Editieren der erfassten Diskette "
- @ 22,33 PROMPT "Information" message+;
- "Information über die Datenbestände von CATALOG.DBF"
- @ 22,49 PROMPT "Drucken" message+;
- "Drucker Ausgabe von Listen Etiketten etc."
- @ 22,63 PROMPT "Index" message+;
- "Indexwechsel der Datenbank (VorsortieRUNg)"
- @ 22,72 PROMPT "Ende" message+;
- "Beenden der Disketten-Verwaltung"
- MENU TO Ausw
- DO CASE
- CASE Ausw=1 && Diskette einlesen
- SAVE SCREEN TO scr
- LW="A:"
- @ 9,9,11,31 BOX BOX3
- @ 8,8 TO 10,30 DOUBLE
- @ 9,9 CLEAR TO 9,29
- @ 8,10 SAY "Laufwerk eingeben !"
- @ 9,10 SAY LW
- @ 9,10 GET LW PICTURE "XXX"
- READ
- STORE UPPER(LW) TO LW
- @ 9,10 SAY LW
- IF .NOT. LASTKEY() = 27
- @ 7,7,11,41 BOX BOX3
- @ 6,6 TO 10,40 DOUBLE
- @ 7,7 CLEAR TO 9,39
- LESE="Laufwerk "+LW+" wird eingelesen !"
- @ 8,10 SAY LESE
- RUN READDIR.EXE &LW DISK.ASC
- APPEND FROM DISK.ASC SDF
- ERASE DISK.ASC
- ENDIF
- RESTORE SCREEN FROM scr
- CASE Ausw=2 && Datenbank bearbeiten
- SAVE SCREEN TO scr
- GO TOP
- SET COLOR TO (farbe3)
- @ 1,0
- DO rahmen
- dtag=date()
- STORE "Editieren von Daten" to option
- DATEI="CATALOG.DBF"
- DO UM_MASK WITH OPTION,DATEI,farbe3
- SET COLOR to (farbe2)
- eing=0
- do while .not. lastkey()=27
- SET COLOR to (farbe2)
- @ 3,4 SAY " Verzeichnis: "
- @ 7,4 SAY " Dateiname: "
- @ 9,4 SAY " Dateiattribute: "
- @ 11,4 SAY " Dateigröße: "
- @ 13,4 SAY " Dateizeit: "
- @ 15,4 SAY " Dateidatum: "
- @ 17,4 SAY " Volume-Label: "
- @ 19,4 SAY " Datensatz Nr.: "
- SET COLOR to (farbe5)
- @ 5,11 SAY CATALOG->DIR
- @ 7,22 SAY CATALOG->NAME
- @ 7,30 SAY CATALOG->EXT
- @ 9,22 SAY CATALOG->ATTR
- @ 11,22 SAY CATALOG->SIZE
- @ 13,22 SAY CATALOG->TIME
- @ 15,22 SAY CATALOG->DATE
- @ 17,22 SAY CATALOG->VOLUME
- @ 19,22 SAY RECNO()
- SET COLOR to (farbe3)
- @ 22,1 CLEAR to 22,78
- @ 22,3 say "<ESC>=Abbruch "
- @ 22,18 say "<F2>=Edit"
- @ 22,29 say "<F3>=Delete"
- @ 22,43 say "<F4>=Browse"
- @ 22,60 say "<F5>=Suchen"
- taste = inkey(0)
- do case
- case taste = 18 && Taste PGUP
- if recno()=lastrec()
- goto top
- ELSE
- skip
- endif
- case taste = 3 && Taste PGDN
- if bof()
- goto bottom
- ELSE
- skip -1
- endif
- case taste = -1 && F2 Taste
- @ 5,11 GET CATALOG->DIR
- @ 7,22 GET CATALOG->NAME
- @ 7,30 GET CATALOG->EXT
- @ 9,22 GET CATALOG->ATTR
- @ 11,22 GET CATALOG->SIZE
- @ 13,22 GET CATALOG->TIME
- @ 15,22 GET CATALOG->DATE
- @ 17,22 GET CATALOG->VOLUME
- read
- case taste = -2 && F3 Taste für löschen
- SAVE SCREEN to temp
- SET COLOR to (Farbe5)
- @ 10,10 to 15,70 double
- SET COLOR to (Farbe3)
- @ 11,11 CLEAR to 14,69
- @ 12, 14 say" Soll der Dantsatz wirklich gelöscht werden (J/N) ? "
- taste = inkey(0)
- if taste = 74 .or. taste = 106
- delete
- endif
- RESTORE SCREEN FROM temp
-
- CASE Taste=-3 && Blättern in Listenform
- SAVE SCREEN TO TEMP
- @ 22,16 SAY " <PGUP><PGDN>=Seitenweises vor- bzw. rückwärts blättern "
- BROWSE(3,1,20,78)
- RESTORE SCREEN FROM TEMP
- CASE taste=-4 && Suchen von Daten
- asatz=recno()
- SET COLOR to (farbe4)
- SAVE SCREEN to svar
- RAHMEN=chr(201)+chr(205)+chr(187)+chr(186)+chr(188)+chr(205)+;
- chr(200)+chr(186)+"░"
- @ 6,10,18,66 BOX RAHMEN
- SET COLOR TO (farbe1)
- @ 5,10 say " Opt: Daten Suchen DBF:CATALOG.DBF "
- @ 19,10 say " <ESC> = Beenden Ihre Eingabe Bitte > "
- SET COLOR TO (farbe2)
- dats=SPACE(8)
- @ 8,13 SAY "Bitte geben Sie den Namen ein: "
- @ 8,44 GET dats
- READ
- IF empty(dats) .or. lastkey()=27
- GO asatz
- ELSE
- GO TOP
- LOCATE FOR NAME=UPPER(dats)
- IF NAME=UPPER(DATS)
- @ 17,12 say "Der Datensatz wurde gefunden !!!! "
- ELSE
- @ 16,12 say "Der Name wurde nicht gefunden, er exestiert noch nicht"
- @ 17,12 say "Der alte Datensatz wird wieder angezeigt........."
- GO asatz
- ENDIF
- Taste=" "
- SET CONSOLE OFF
- @19,69 GET Taste
- READ
- SET CONSOLE on
- ENDIF
- RESTORE SCREEN FROM svar
- ENDCASE
- *
- ** Programmumgebung für die Rückkehr in das Hauptprogramm
- *
- ENDDO
- SET colo to w
- RESTORE SCREEN FROM scr
- CASE AUSW=3 && Suchen und Reorganisation von Daten
- SAVE SCREEN TO scr
- @ 7,9,19,73 BOX BOX3
- @ 6,8 TO 18,72 DOUBLE
- @ 7,9 CLEAR TO 17,71
- @ 6,14 SAY "[■] Information über CATALOG.DBF "
- @ 8,12 SAY "Anzahl der Datensätze/Dateien: "
- @ 8,44 SAY LASTREC()
- @ 10,12 SAY "EXE Dateien: Stück "
- @ 11,12 SAY "COM Dateien: Stück "
- @ 12,12 SAY "BAT Dateien: Stück "
- @ 13,12 SAY "SYS Dateien: Stück "
- @ 14,12 SAY "OVL Dateien: Stück "
- @ 16,12 SAY "Freier Speicherplatz: KByte"
- @ 16,35 SAY LTRIM(STR(ROUND((DISKSPACE()/1024),0)))
- DO Zent WITH 24,"Ich lese die Aktuelle Datei CATALOG.DBF: Bitte warten !!!"
- COUNT TO EXE_file FOR EXT =".EXE"
- COUNT TO COM_file FOR EXT =".COM"
- COUNT TO BAT_file FOR EXT =".BAT"
- COUNT TO SYS_file FOR EXT =".SYS"
- COUNT TO OVL_file FOR EXT =".OVL"
- @ 10,25 SAY EXE_FILE
- @ 11,25 SAY COM_FILE
- @ 12,25 SAY BAT_FILE
- @ 13,25 SAY SYS_FILE
- @ 14,25 SAY OVL_FILE
- DO Zent WITH 24," <ESC>=Beendet die Anzeige der Dateiinformation ! "
- INFO=.F.
- DO WHILE .NOT. INFO
- taste = inkey(0)
- IF taste = 27
- INFO=.T.
- ENDIF
- ENDDO
- RESTORE SCREEN FROM scr
- CASE AUSW=4 && Druckausgabe von Daten
- SAVE SCREEN TO Scr
- go top
- STORE 0 to zeil
- STORE 1 TO seite
- STORE "" TO wahl
- STORE " " TO sp
- drucker= isprinter()
- SET cursor on
- SET CONSOLE on
- SAVE SCREEN to drscr
- NOPRINT=.F.
- do while .not. drucker .OR. NOPRINT
- *If lastkey()=27
- * NOPRINT=.T.
- @ 10,10 to 15,70 double
- @ 11,11 CLEAR to 14,69
- @ 12,13 say "!! Achtung !! der Drucker ist nicht bereit "
- @ 13,13 say "Bitte schalten Sie den Drucker EIN un ONLINE "
- drucker =isprinter()
- readkey()
- If lastkey()=27
- NOPRINT=.T.
- ENDIF
- enddo
- RESTORE SCREEN FROM drscr
- SET printer on
- SET margin to 8
- SET CONSOLE off
- ?? chr(27)+chr(40)+chr(49)+chr(48)+chr(85)
- do while .not. eof()
- ? DIR
- ? NAME
- ?? EXT
- ?? " "
- ?? SIZE
- ?? " "
- ?? ATTR
- ?? " "
- ?? TIME
- ?? " "
- ?? DATE
- ? "----------------------- "
- ?? RECNO()
- ?? " -------------------------"
- STORE zeil+3 to zeil
- if zeil = 60
- ? "****************************************************************"
- datum=date()
- ? "*** Seite Nummer : *** "
- ?? alltrim(str(seite))
- ?? " *** "
- ?? "Vom Datum : "
- ?? DATUM
- ?? " ***"
- ? "****************************************************************"
- STORE 0 to zeil
- STORE seite +1 to seite
- endif
- skip
- enddo
- SET printer off
- SET CONSOLE on
- RESTORE SCREEN FROM Scr
- CASE AUSW=5 && Sortieren und INDEX-Wechsel
- SAVE SCREEN TO INTEMP
- @ 8,12,18,72 BOX BOX3
- @ 6,10,17,70 BOX BOX1
- SET wrap on
- * SET message to 24 center
- @ 7,12 PROMPT "Verzeichnis " message+;
- "Indexwechsel auf das Datenbankfeld DIR"
- @ 8,12 PROMPT "Name" message+;
- "Indexwechsel auf das Datenbankfeld NAME"
- @ 9,12 PROMPT "ErweiteRUNg " message+;
- "Indexwechsel auf das Datenbankfeld EXT"
- @ 10,12 PROMPT "Dateigröße " message+;
- "Indexwechsel auf das Datenbankfeld SIZE"
- @ 11,12 PROMPT "Attribut " message+;
- "Indexwechsel auf das Datenbankfeld ATTR"
- @ 12,12 PROMPT "Datum " message+;
- "Indexwechsel auf das Datenbankfeld DATE"
- @ 13,12 PROMPT "Uhrzeit " message+;
- "Indexwechsel auf das Datenbankfeld TIME"
- @ 14,12 PROMPT "Sortiere " message+;
- "Die Datenbank wird sortiert !! "
- @ 13,12 PROMPT "Volume-Label " message+;
- "Indexwechsel auf das Datenbankfeld VOLUME"
- MENU TO Wahl
- DO CASE
- CASE Wahl = 1
- INDEX ON DIR TO IND3
- USE CATALOG INDEX IND3
- CASE Wahl = 2
- INDEX ON NAME TO IND4
- USE CATALOG INDEX IND4
- CASE Wahl = 3
- INDEX ON EXT TO IND5
- USE CATALOG INDEX IND5
- CASE Wahl = 4
- INDEX ON SIZE TO IND6
- USE CATALOG INDEX IND6
- CASE Wahl = 5
- INDEX ON ATTR TO IND7
- USE CATALOG INDEX IND7
- CASE Wahl = 6
- INDEX ON DATE TO IND8
- USE CATALOG INDEX IND8
- CASE Wahl = 7
- INDEX ON TIME TO IND9
- USE CATALOG INDEX IND9
- CASE Wahl = 8
- sort on name,EXT,DIR,SIZE to TEMP$$
- CLOSE
- RUN ren CATALOG.dbf alt.dbf
- RUN ren temp$$.dbf CATALOG.dbf
- use CATALOG
- ERASE ALT.DBF
- CASE Wahl = 9
- INDEX ON VOLUME TO IND10
- USE CATALOG INDEX IND10
- ENDCASE
- RESTORE SCREEN FROM INTEMP
- CASE AUSW=6 .or. lastkey()=27 && Programmende
- ********************************************
- ** Programmende ( Sicherheitsabfrage ) **
- ********************************************
- SAVE SCREEN to endscr
- SET COLOR to
- CLEAR
- SET COLOR TO (farbe6)
- ende=chr(213)+chr(205)+chr(184)+chr(179)+chr(190)+;
- chr(205)+chr(212)+chr(179)+"▒"
- @ 4,2,14,77 BOX ende
- z=6
- SET COLOR TO (farbe1)
- STORE " Sie haben den Programmpunkt - E N D E- gewählt " TO Text
- DO zent WITH z,text
- STORE " Wollen Sie wirklich B E E N D E N ? J/N " TO Text
- z=z+4 && Zeile neu festlegen
- SET COLOR TO (farbe1)
- DO zent WITH z,text
- *
- TONE(940,5)
- *
- SET COLOR TO
- SET CONSOLE OFF
- SET CURSOR OFF
- @ 24,79
- WAIT TO ewahl
- SET CONSOLE on
- IF ewahl ="J" .or. ewahl="j"
- EXIT
- ELSE
- RESTORE SCREEN FROM endscr
- ausw=" "
- ENDIF
- ENDCASE
- ENDDO
- CLEAR
- SET COLOR TO (farbe4)
- @ 2,8 TO 10,72 DOuble
- @ 3,9 CLEAR TO 9,71
- SET COLOR TO (farbe2)
- z=4
- STORE " Vielen Dank für den Einsatz der Disketten-Verwaltung " TO text
- DO zent WITH z,text
- z=z+2
- STORE " (C) 1991 by Volker Vogeley & DMV Verlag " TO text
- DO zent WITH z,text
- SET cursor off
- FOR e=1 TO 2000
- next
- ?
- ?
- ?
- ?
- ?
- PACK
- SET COLOR TO
- CLOSE all
- SET cursor on
- QUIT
-