KSGTDatei.h 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #ifndef KSGTDatei_H
  2. #define KSGTDatei_H
  3. #include "Array.h"
  4. namespace Framework
  5. {
  6. class Text;
  7. //! Verwaltet eine Datei in der Daten tabellarisch abgespeichert werden
  8. class KSGTDatei
  9. {
  10. private:
  11. Text *pfad;
  12. RCArray< RCArray< Text > > *data;
  13. int ref;
  14. public:
  15. //! Konstruktor
  16. __declspec( dllexport ) KSGTDatei();
  17. //! Konstruktor
  18. //! \param pfad Der Pfad zur Datei
  19. __declspec( dllexport ) KSGTDatei( const char *pfad );
  20. //! Konstruktor
  21. //! \param pfad Der Pfad zur Datei
  22. __declspec( dllexport ) KSGTDatei( Text *pfad );
  23. //! Destruktor
  24. __declspec( dllexport ) ~KSGTDatei();
  25. //! Setzt den Pfad zur Datei
  26. //! \param pfad Der Pfad zur Datei
  27. __declspec( dllexport ) void setPfad( const char *pfad );
  28. //! Setzt den Pfad zur Datei
  29. //! \param pfad Der Pfad zur Datei
  30. __declspec( dllexport ) void setPfad( Text *pfad );
  31. //! lähdt alle Daten aus der angegebenen Datei
  32. //! \return 1, falls das laden erfolgreich war. 0, wenn ein Fehler beim laden aufgetreten ist
  33. __declspec( dllexport ) bool laden();
  34. //! Fügt eine Zeile zur Tabelle hinzu
  35. //! \param feldAnzahl Die Anzahl der Felder in der Zeile
  36. //! \param zWert Einen Zeiger auf die Werte in der Zeile ohne erhöhten Reference Counter
  37. //! \return 1, wenn kein Fehler aufgetreten ist
  38. __declspec( dllexport ) bool addZeile( int feldAnzahl, RCArray< Text > *zWert );
  39. //! Ersetzt eine existierende Zeile
  40. //! \param zeile Der Index der Zeile, die ersetzt werden soll
  41. //! \param feldAnzahl Die Anzahl der Felder in der Zeile
  42. //! \param zWert Einen Zeiger auf die Werte in der Zeile ohne erhöhten Reference Counter
  43. //! \return 1, wenn die Zeile existierte und ersetzt wurde. 0, wenn die angegebene Zeile nicht existierte
  44. __declspec( dllexport ) bool setZeile( int zeile, int feldAnzahl, RCArray< Text > *zWert );
  45. //! Löscht eine Zeile
  46. //! \param zeile Der Index der Zeile, die gelöscht werden soll
  47. //! \return 1, wenn die Zeile gelöscht wurde. 0, wenn die Zeile nicht gefunden wurde
  48. __declspec( dllexport ) bool removeZeile( int zeile );
  49. //! Fügt einer Bestimmten Zeile einen Wert hinzu
  50. //! \param zeile Der Index der Zeile, der ein Wert hinzugefügt werden soll
  51. //! \param pos Die Position in der Zeile, an der der Wert hinzugefügt werden soll
  52. //! \param wert Der Wert, der gespeichert werden soll
  53. //! \return 1, falls Der Wert erfolgreich hinzugefügt wurde. 0, falls die Zeile nicht existiert, oder pos zu groß ist
  54. __declspec( dllexport ) bool addFeld( int zeile, int pos, Text *wert );
  55. //! Fügt einer Bestimmten Zeile einen Wert hinzu
  56. //! \param zeile Der Index der Zeile, der ein Wert hinzugefügt werden soll
  57. //! \param pos Die Position in der Zeile, an der der Wert hinzugefügt werden soll
  58. //! \param wert Der Wert, der gespeichert werden soll
  59. //! \return 1, falls Der Wert erfolgreich hinzugefügt wurde. 0, falls die Zeile nicht existiert, oder pos zu groß ist
  60. __declspec( dllexport ) bool addFeld( int zeile, int pos, const char *wert );
  61. //! Fügt einer Bestimmten Zeile am Ende einen Wert hinzu
  62. //! \param zeile Der Index der Zeile, der ein Wert hinzugefügt werden soll
  63. //! \param wert Der Wert, der gespeichert werden soll
  64. //! \return 1, falls Der Wert erfolgreich hinzugefügt wurde. 0, falls die Zeile nicht existiert
  65. __declspec( dllexport ) bool addFeld( int zeile, Text *wert );
  66. //! Fügt einer Bestimmten Zeile am Ende einen Wert hinzu
  67. //! \param zeile Der Index der Zeile, der ein Wert hinzugefügt werden soll
  68. //! \param wert Der Wert, der gespeichert werden soll
  69. //! \return 1, falls Der Wert erfolgreich hinzugefügt wurde. 0, falls die Zeile nicht existiert
  70. __declspec( dllexport ) bool addFeld( int zeile, const char *wert );
  71. //! Setzt einen Bestimmten Wert in einer Zeile
  72. //! \param zeile Der Index der Zeile, in der ein Wert verändert werden soll
  73. //! \param feld Die Position in der Zeile, an der der Wert gesetzt werden soll
  74. //! \param wert Der Wert, der gespeichert werden soll
  75. //! \return 1, falls Der Wert erfolgreich ersetzt wurde. 0, falls die Zeile oder der Wert nicht existiert
  76. __declspec( dllexport ) bool setFeld( int zeile, int feld, Text *wert );
  77. //! Setzt einen Bestimmten Wert in einer Zeile
  78. //! \param zeile Der Index der Zeile, in der ein Wert verändert werden soll
  79. //! \param feld Die Position in der Zeile, an der der Wert gesetzt werden soll
  80. //! \param wert Der Wert, der gespeichert werden soll
  81. //! \return 1, falls Der Wert erfolgreich ersetzt wurde. 0, falls die Zeile oder der Wert nicht existiert
  82. __declspec( dllexport ) bool setFeld( int zeile, int feld, const char *wert );
  83. //! Entfernt einen bestimmten Wert
  84. //! \param zeile Der Index der Zeile, aus der ein Wert gelöscht werden soll
  85. //! \param feld Die Position in der Zeile, an der der Wert gelöscht werden soll
  86. //! \return 1, falls Der Wert erfolgreich gelöscht wurde. 0, falls die Zeile oder der Wert nicht existiert
  87. __declspec( dllexport ) bool removeFeld( int zeile, int feld );
  88. //! Speichert die Tabelle in der Datei
  89. //! \return 1, falls die Tabbelle erfolgreich gespeichert wurde
  90. __declspec( dllexport ) bool speichern();
  91. //! Gibt die Anzahl der Zeilen zurück
  92. __declspec( dllexport ) int getZeilenAnzahl() const;
  93. //! Gibt die Anzahl der Werte (Spalten) in einer Zeile zurück
  94. //! \param zeile Der Index der Zeile, von der die Anzahl Werte ermittelt werden soll
  95. __declspec( dllexport ) int getFeldAnzahl( int zeile ) const;
  96. //! Gibt einen bestimmten gespeicherten Wert zurück
  97. //! \param zeile Der Index der Zeile, in der der Wert gespeichert wird
  98. //! \param feld Der Index des Wertes in der Zeile
  99. //! \return Den gespeicherten Wert mit erhöhtem Reference Counter
  100. __declspec( dllexport ) Text *getFeld( int zeile, int feld ) const;
  101. //! Gibt einen bestimmten gespeicherten Wert zurück
  102. //! \param zeile Der Index der Zeile, in der der Wert gespeichert wird
  103. //! \param feld Der Index des Wertes in der Zeile
  104. //! \return Den gespeicherten Wert ohne erhöhten Reference Counter
  105. __declspec( dllexport ) Text *zFeld( int zeile, int feld ) const;
  106. //! Erhöht den Reference Counting Zähler.
  107. //! \return this.
  108. __declspec( dllexport ) KSGTDatei *getThis();
  109. //! Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  110. //! \return 0.
  111. __declspec( dllexport ) KSGTDatei *release();
  112. };
  113. }
  114. #endif