Datei.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #ifndef Datei_H
  2. #define Datei_H
  3. #include "Array.h"
  4. #include <fstream>
  5. namespace Framework
  6. {
  7. class Text; // Text.h
  8. class Datei; // aus dieser Datei
  9. namespace D_Style
  10. {
  11. const int lesen = 0x01; // datei wird zum lesen geöffnet
  12. const int schreiben = 0x02; // datei wirt zum schreiben geöffnet
  13. const int ende = 0x04; // setzt dateizeiger ans Ende der Datei
  14. }
  15. class Datei
  16. {
  17. private:
  18. int ref;
  19. std::fstream *stream;
  20. Text *pfad;
  21. __int64 gr;
  22. public:
  23. // Konstruktor
  24. Datei();
  25. // Destruktor
  26. ~Datei();
  27. // nicht constant
  28. void setDatei( const char *pfad ); // setzt die Datei
  29. void setDatei( Text *pfad );
  30. bool umbenennen( const char *pfad ); // benennt die Datei um und verschiebt sie eventuell
  31. bool umbenennen( Text *pfad );
  32. bool löschen(); // löscht die Datei
  33. bool erstellen(); // erstellt die Datei
  34. bool öffnen( int style ); // öffnet die Datei
  35. void setLPosition( __int64 pos, bool ende ); // setzt die Leseposition
  36. void setSPosition( __int64 pos, bool ende ); // setzt die Schreibeposition
  37. void schreibe( char *bytes, int län ); // schreibt bytes in datei
  38. void lese( char *bytes, int län ); // ließt bytes aus datei
  39. Text *leseZeile(); // ließt eine zeile
  40. void schließen(); // schließt die Datei
  41. // constant
  42. bool istOrdner() const; // prüft, ob die Datei ein Ordner ist
  43. bool istOffen() const; // prüft, ob die Datei geöffnet ist
  44. int getUnterdateiAnzahl() const; // gibt die Anzahl der unterdateien an
  45. TArray< Text > *getDateiListe() const; // gibt eine Liste mit unterdateien zurück
  46. __int64 getGröße() const; // gibt die Größe der Datei zurück
  47. bool existiert() const; // prüft, ob die Datei existiert
  48. __int64 getLPosition() const; // gibt die Leseposition zurück
  49. __int64 getSPosition() const; // gibt die Schreibeposition zurück
  50. bool istEnde() const; // prüft, ob die Datei zu ende ist
  51. Text *getPfad() const; // gibt den Dateipfad zurück
  52. Text *zPfad() const;
  53. // Reference Counting
  54. Datei *getThis();
  55. Datei *release();
  56. };
  57. // Datei Funktionen
  58. bool DateiPfadErstellen( Text* pfad ); // Erstellt den vollständigen Pfad mit Datei
  59. bool DateiLöschen( Text *pfad ); // Löscht die angegebene Datei
  60. bool DateiUmbenennen( Text *pfad_alt, Text *pfad_neu ); // Benennt die Datei um
  61. bool DateiExistiert( Text *pfad ); // Prüft, ob Datei existiert
  62. bool DateiIstVerzeichnis( Text *pfad ); // prüft, ob pfad ein Verzeichnis ist
  63. }
  64. #endif