home *** CD-ROM | disk | FTP | other *** search
- ************************************************************
- * *
- * Sprache : Clipper Summer '87 *
- * *
- * Funktion : CHECKDBF *
- * Prüfung, ob externe Änderung in DBF *
- * *
- * Syntax : CHECKDBF( <cDateiname>, <cAttribut> ) *
- * *
- * Parameter : <cDateiname> übergibt den Namen der *
- * Datenbank ohne Extension *
- * <cAttr> = "L" liest DOS-Informationen *
- * aus einer Memory-Datei und vergleicht *
- * diese mit derzeitigem Zustand *
- * <cAttr> = "S" speichert DOS-Infos *
- * in Memory-Datei *
- * *
- * Rückgabe : <cAttr> = "L" gibt Rückgabe .F. wenn *
- * Datenbank extern geändert, sonst .T. *
- * <cAttr> = "S" gibt Rückgabe .T. wenn *
- * Memory-Datei geschrieben wurde, sonst *
- * Rückgabe .F. *
- * *
- * (c) 1992 Ingo Berg & DMV-Verlag *
- * *
- ************************************************************
-
- FUNCTION CHECKDBF
-
- PARAMETERS Alias, Attribut
-
- alidbf = Alias + ".DBF"
- alimem = Alias + ".MEM"
-
- dbf_anz = ADIR( alidbf )
- Declare dbf_name[ dbf_anz ]
- Declare dbf_byte[ dbf_anz ]
- Declare dbf_datu[ dbf_anz ]
- Declare dbf_zeit[ dbf_anz ]
-
- Do Case
-
- Case Attribut = "L"
-
- * - Prüfung, ob Datenbank seit letztmaligem
- * - Programmeinsatz EXTERN geändert wurde
-
- If .Not. File( alimem )
- * - Memory-Datei nicht vorhanden,
- * - ... mutwillige Zerstörung möglich ...
- Rueck = .F.
- Tone( 100, 4 )
- Else
- Restore From &alimem Additive
- Adir( alidbf, dbf_name, dbf_byte, ;
- dbf_datu, dbf_zeit )
-
- If v_name <> dbf_name[ dbf_anz ] ;
- .Or. v_byte <> dbf_byte[ dbf_anz ] ;
- .Or. v_datu <> dbf_datu[ dbf_anz ] ;
- .Or. v_zeit <> dbf_zeit[ dbf_anz ]
- * - Datenbank EXTERN geändert !
- Rueck = .F.
- Tone( 100, 4 )
- Else
- * - Keine externe Änderung erfolgt !
- * - DOS-Informationen identisch ...
- Rueck = .T.
- Tone( 800, 1 )
- Endif
- Erase &alimem && Mem-Datei wird gelöscht,
- && um einen Programmabsturz
- && später abzufangen
- Endif
-
- Case Attribut = "S"
-
- * - Vor Verlassen des Programmes werden die
- * - DOS-Informationen gespeichert
- * - Wichtig, Datei darf zu diesem Zeitpunkt
- * - nicht mehr im Zugriff sein
-
- Adir( alidbf, dbf_name, dbf_byte, ;
- dbf_datu, dbf_zeit )
- v_name = dbf_name[ dbf_anz ]
- v_byte = dbf_byte[ dbf_anz ]
- v_datu = dbf_datu[ dbf_anz ]
- v_zeit = dbf_zeit[ dbf_anz ]
-
- Save All Like v_* To &alimem
-
- If File( alimem )
- Rueck = .T.
- Else
- Rueck = .F.
- Endif
-
- Endcase
-
- Return Rueck
-
- ***********************************************************
- * Ende von Funktion CHECKDBF *
- ***********************************************************
-
-
- *
- *---< Hier beginnt Funktion DRUCKOK >---*
- *
-
-
- ************************************************************
- * *
- * Sprache : Clipper Summer '87 *
- * *
- * Funktion : DRUCKOK *
- * Prüfung, ob Drucker LPT1 bereit *
- * oder Umleitung in ASCII-Datei *
- * *
- * Syntax : DRUCKOK() *
- * *
- * (c) 1992 Ingo Berg & DMV-Verlag *
- * *
- ************************************************************
-
- FUNCTION DRUCKOK
-
- druckmsk = SaveScreen( 12, 10, 14, 70 )
- @ 12, 10 To 14, 70 Double
-
- ausgabe = "LPT1"
- text1 = " Ausgabe auf Drucker "
- text2 = "Wenn Drucker bereit, beliebige Taste " + ;
- "drücken ..."
-
- @ 12, FMitte( text1 ) Say text1
-
- Do While .t.
- @ 13, 11 Say Space(58)
- @ 13, FMitte( text2 ) Say text2
- Inkey(0)
- Set Printer To &ausgabe
- If Isprinter()
- Exit
- Else
- @ 13, FMitte( text2 ) Say Space(Len(text2))
- frage = "N"
- @ 13, 18 Say "Drucker nicht bereit ... " + ;
- "Abbrechen (J/N) ? " ;
- Get frage Picture "!" ;
- Valid frage $ "JN"
- Read
- @ 13, 11 Say Space(58)
- If frage = "J"
- ausgabe = "PRINT.ME"
- Exit
- Endif
- Endif
- Enddo
-
- @ 13, 11 Say Space(58)
- text3 = "Druckausgabe nach " + ausgabe
- @ 13, FMitte( text3 ) Say text3
- Inkey(2)
-
- RestScreen( 12, 10, 14, 70, druckmsk )
-
- Set Printer To &ausgabe
-
- Return .t.
-
- ***********************************************************
- * Ende von Funktion DRUCKOK *
- ***********************************************************
-
-
- *
- *---< Hier beginnt Funktion FMITTE >---*
- *
-
-
- ************************************************************
- * *
- * Sprache : Clipper Summer '87 *
- * *
- * Funktion : FMITTE *
- * Zentrieren einer Meldung *
- * *
- * Syntax : FMITTE( <cMeldung> ) *
- * *
- * Parameter : <cDateiname> übergibt den Namen der *
- * Datenbank ohne Extension *
- * *
- * (c) 1991 Anatol Gardner & DMV-Verlag *
- * in DOS-International, Ausgabe 11'91 *
- * *
- ************************************************************
-
- FUNCTION FMITTE
-
- PARAMETERS FString
-
- FMitte = Round( 40 - ( Len( FString ) / 2 ), 0 )
- Return FMitte
-
- ***********************************************************
- * Ende von Funktion FMitte *
- ***********************************************************
-
-
- *
- *---< Hier beginnt Funktion DBFBACK >---*
- *
-
-
- ************************************************************
- * *
- * Sprache : Clipper Summer '87 *
- * *
- * Funktion : DBFBACK *
- * Datensicherung von dBASE.Dateien auf *
- * Diskettenlaufwerk *
- * *
- * Syntax : DBFBACK( <nZeile>, <cQuelldatei>, *
- * <cZieldatei> ) *
- * Parameter : <nZeile> übergibt die Zeile für *
- * Kommentare *
- * <cQuell> übergibt den Namen der Quelldatei *
- * von Laufwerk C: *
- * <cZiel> übergibt den Namen der Zieldatei *
- * von Laufwerk A: *
- * Die Dateierweiterung *.DBF wird automat. *
- * angehangen. *
- * *
- * Rückgabe : .T. = Wenn Datensicherung erfolgreich *
- * .F. = bei aufgetretenen Fehlern *
- * *
- * (c) 1992 Ingo Berg & DMV-Verlag *
- * *
- ************************************************************
-
- FUNCTION DBFBACK
-
- PARAMETERS zeile, quell, ziel
- Private diskette, kennung, kopiere, ngroesse
- Private rueck, vorhanden
-
- quell = "C:" + quell + ".DBF"
- ziel = "A:\" + ziel + ".DBF"
-
- If dskready()
- kopiere = .T.
- vorhanden = .F.
- If File( ziel )
- frage = " "
- @ zeile, 0 Say " Soll Sicherungskopie" +;
- " überschrieben werden (J/N) ? " ;
- Get frage Picture "!" Valid frage $ "JN"
- Read
- @ zeile, 0
- If frage = "J"
- vorhanden = .T.
- Else
- kopiere = .F.
- Endif
- Endif
-
- If kopiere = .T.
- @ zeile, 0 Say " Datei wird gelesen ... "
- If File( quell )
- Use &quell
- ngroesse = Int(Recsize() * Lastrec() + ;
- Header() + 1 )
- dgroesse = Diskspace(1)
- If vorhanden = .T.
- dgroesse = Diskspace(1) + ngroesse
- Endif
- Use
- @ zeile, 0
- If dgroesse > ngroesse
- @ zeile, 0 Say " Kopiere " +quell+ " --> " +;
- ziel
- Copy File &quell To &ziel
- If File( ziel )
- rueck = .T.
- Else
- rueck = .F.
- Endif
- Inkey(2)
- @ zeile, 0
- Else
- @ zeile, 0 Say " Zuwenig Plattenkapazität "+;
- Alltrim( Str( dgroesse ) ) +;
- " Bytes frei / " +;
- Alltrim( Str( ngroesse ) ) +;
- " Bytes "
- Inkey(0)
- @ zeile, 0
- rueck = .F.
- Endif
- Else
- @ zeile, 0 Say " Datei : " + quell +;
- " nicht gefunden ..." +;
- " weiter mit beliebiger Taste "
- Inkey(0)
- rueck = .F.
- @ zeile, 0
- Endif
- Else
- rueck = .F.
- Endif
- Else
- rueck = .F.
- Endif
-
- Return rueck
-
- ***********************************************************
- * Ende von Funktion DBFBACK *
- ***********************************************************
-
-
- *
- *---< Hier beginnt Funktion DBFREST >---*
- *
-
-
- ************************************************************
- * *
- * Sprache : Clipper Summer '87 *
- * *
- * Funktion : DBFRESTORE *
- * Einlesen einer gesicherten dBASE-Datei *
- * *
- * Syntax : DBFREST( <nZeile>, <cQuelldatei>, *
- * <cZieldatei> ) *
- * Parameter : <nZeile> übergibt die Zeile für *
- * Kommentare *
- * <cQuell> übergibt den Namen der Quelldatei *
- * von Laufwerk A: *
- * <cZiel> übergibt den Namen der Zieldatei *
- * von Laufwerk C: *
- * Die Dateierweiterung *.DBF wird automat. *
- * angehangen. *
- * *
- * Rückgabe : .T. = Wenn Einlesen erfolgreich *
- * .F. = bei aufgetretenen Fehlern *
- * *
- * (c) 1992 Ingo Berg & DMV-Verlag *
- * *
- ************************************************************
-
-
- FUNCTION DBFREST
-
- PARAMETERS zeile, quell, ziel
- Private diskette, kennung, kopiere,
- Private rueck
-
- quell = "A:\" + quell + ".DBF"
- ziel = "C:" + ziel + ".DBF"
-
- If dskready()
- If File( quell )
- Use &quell
- @ zeile, 0 Say " Kopiere " + quell + " --> " + ziel
- Copy File &quell To &ziel
- If File( ziel )
- rueck = .T.
- Else
- rueck = .F.
- Endif
- Inkey(2)
- @ zeile, 0
- Else
- @ zeile, 0 Say " Datei : " + quell +;
- " nicht gefunden ..." +;
- " weiter mit beliebiger Taste "
- Inkey(0)
- rueck = .F.
- @ zeile, 0
- Endif
- Else
- rueck = .F.
- Endif
-
- Return rueck
-
- ***********************************************************
- * Ende von Funktion DBFREST *
- ***********************************************************
-
-
- *
- *---< Hier beginnt Funktion DSKREADY >---*
- *
-
-
- ************************************************************
- * *
- * Sprache : Clipper Summer '87 *
- * *
- * Funktion : DSKREADY *
- * Prüft Bereitschaft Diskettenlaufwerk A: *
- * *
- * Parameter : <nZeile> übergibt die Zeile für *
- * Kommentare *
- * *
- * Syntax : DSKREADY() *
- * *
- * (c) 1992 Ingo Berg & DMV-Verlag *
- * *
- ************************************************************
-
-
- FUNCTION DSKREADY
-
- PARAMETERS zeile
- Private dummy, rueck
-
- If PCount() = 0
- zeile = Row() && Aktuelle Zeile
- Endif
-
- dummy = "A:\DUMMY.TMP"
-
- @ zeile, 0
-
- Do While .t.
-
- @ zeile, 0 Say " Wenn Diskette bereit ..." + ;
- " beliebige Taste drücken"
- Inkey(0)
- @ zeile, 0
- kennung = FCreate( dummy ) && Versuch, temporäre
- && Datei zu erzeugen
-
- If FError() <> 0 && Fehlercode abfangen
- frage = " "
- @ zeile, 0 Say dosfehler() + " Abbrechen (J/N) ? ";
- Get frage Picture "!" Valid frage $ "JN"
- Read
- @ zeile, 0
- If frage = "J"
- rueck = .F.
- Exit
- Endif
- Else
- FClose( kennung ) && Datei schließen
- Erase &dummy && und löschen
- rueck = .T.
- Exit
- Endif
-
- Enddo
-
- Return rueck
-
- ***********************************************************
- * Ende von Funktion DSKREADY *
- ***********************************************************
-
-
- *
- *---< Hier beginnt Funktion DOSFEHLER >---*
- *
-
-
- ************************************************************
- * *
- * Sprache : Clipper Summer '87 *
- * *
- * Funktion : DOSFEHLER *
- * Gibt letzte DOS-Fehlernummer im Klartext *
- * zurück bei Low-level Dateifunktionen *
- * *
- * Syntax : DOSFEHLER() *
- * *
- * Rückgabe : <cString> DOS-Fehler im Klartext *
- * *
- * (c) 1992 Ingo Berg & DMV-Verlag *
- * *
- ************************************************************
-
-
- FUNCTION DOSFEHLER
-
- Private rueck
-
- Do Case
- Case FError() = 2
- rueck = "Dos-Fehler (2) Datei nicht gefunden"
- Case FError() = 3
- rueck = "Dos-Fehler (3) Verzeichnis nicht " +;
- "gefunden"
- Case FError() = 4
- rueck = "Dos-Fehler (4) Zuviele Dateien geöffnet"
- Case FError() = 5
- rueck = "Dos-Fehler (5) Zugriff verweigert"
- Case FError() = 6
- rueck = "Dos-Fehler (6) Ungültiger DOS-Handler"
- Case FError() = 8
- rueck = "Dos-Fehler (8) Kein Speicher mehr " +;
- "vorhanden"
- Case FError() = 15
- rueck = "Dos-Fehler (15) Ungültige Lauf" +;
- "werksangabe"
- Case FError() = 19
- rueck = "Dos-Fehler (19) Datenträger schreib" +;
- "geschützt"
- Case FError() = 21
- rueck = "Dos-Fehler (21) Laufwerk nicht bereit"
- Case FError() = 23
- rueck = "Dos-Fehler (23) CRC Datenfehler " +;
- "(Checksumme)"
- Case FError() = 29
- rueck = "Dos-Fehler (29) Schreibfehler"
- Case FError() = 30
- rueck = "Dos-Fehler (30) Lesefehler"
- Otherwise
- rueck = "Dos-Fehler (" + Alltrim(Str(FError)) +;
- ") ... Nicht definiert ..."
- Endcase
-
- Return rueck
-
- ************************************************************
- * Ende von Funktion DOSFEHLER *
- ************************************************************
-
-