#ifndef KSGTDatei_H #define KSGTDatei_H #include "Array.h" namespace Framework { class Text; //! Verwaltet eine Datei in der Daten tabellarisch abgespeichert werden class KSGTDatei : public virtual ReferenceCounter { private: Text* pfad; RCArray>* data; public: //! Konstruktor DLLEXPORT KSGTDatei(); //! Konstruktor //! \param pfad Der Pfad zur Datei DLLEXPORT KSGTDatei(const char* pfad); //! Konstruktor //! \param pfad Der Pfad zur Datei DLLEXPORT KSGTDatei(Text* pfad); //! Destruktor DLLEXPORT ~KSGTDatei(); //! Setzt den Pfad zur Datei //! \param pfad Der Pfad zur Datei DLLEXPORT void setPfad(const char* pfad); //! Setzt den Pfad zur Datei //! \param pfad Der Pfad zur Datei DLLEXPORT void setPfad(Text* pfad); //! laehdt alle Daten aus der angegebenen Datei //! \return 1, falls das laden erfolgreich war. 0, wenn ein Fehler beim //! laden aufgetreten ist DLLEXPORT bool laden(); //! Fuegt eine Zeile zur Tabelle hinzu //! \param feldAnzahl Die Anzahl der Felder in der Zeile //! \param zWert Einen Zeiger auf die Werte in der Zeile ohne erhoehten //! Reference Counter \return 1, wenn kein Fehler aufgetreten ist DLLEXPORT bool addZeile(int feldAnzahl, RCArray* zWert); //! Ersetzt eine existierende Zeile //! \param zeile Der Index der Zeile, die ersetzt werden soll //! \param feldAnzahl Die Anzahl der Felder in der Zeile //! \param zWert Einen Zeiger auf die Werte in der Zeile ohne erhoehten //! Reference Counter \return 1, wenn die Zeile existierte und ersetzt //! wurde. 0, wenn die angegebene Zeile nicht existierte DLLEXPORT bool setZeile( int zeile, int feldAnzahl, RCArray* zWert); //! Loescht eine Zeile //! \param zeile Der Index der Zeile, die geloescht werden soll //! \return 1, wenn die Zeile geloescht wurde. 0, wenn die Zeile nicht //! gefunden wurde DLLEXPORT bool removeZeile(int zeile); //! Fuegt einer Bestimmten Zeile einen Wert hinzu //! \param zeile Der Index der Zeile, der ein Wert hinzugefuegt werden //! soll \param pos Die Position in der Zeile, an der der Wert //! hinzugefuegt werden soll \param wert Der Wert, der gespeichert werden //! soll \return 1, falls Der Wert erfolgreich hinzugefuegt wurde. 0, //! falls die Zeile nicht existiert, oder pos zu gross ist DLLEXPORT bool addFeld(int zeile, int pos, Text* wert); //! Fuegt einer Bestimmten Zeile einen Wert hinzu //! \param zeile Der Index der Zeile, der ein Wert hinzugefuegt werden //! soll \param pos Die Position in der Zeile, an der der Wert //! hinzugefuegt werden soll \param wert Der Wert, der gespeichert werden //! soll \return 1, falls Der Wert erfolgreich hinzugefuegt wurde. 0, //! falls die Zeile nicht existiert, oder pos zu gross ist DLLEXPORT bool addFeld(int zeile, int pos, const char* wert); //! Fuegt einer Bestimmten Zeile am Ende einen Wert hinzu //! \param zeile Der Index der Zeile, der ein Wert hinzugefuegt werden //! soll \param wert Der Wert, der gespeichert werden soll \return 1, //! falls Der Wert erfolgreich hinzugefuegt wurde. 0, falls die Zeile //! nicht existiert DLLEXPORT bool addFeld(int zeile, Text* wert); //! Fuegt einer Bestimmten Zeile am Ende einen Wert hinzu //! \param zeile Der Index der Zeile, der ein Wert hinzugefuegt werden //! soll \param wert Der Wert, der gespeichert werden soll \return 1, //! falls Der Wert erfolgreich hinzugefuegt wurde. 0, falls die Zeile //! nicht existiert DLLEXPORT bool addFeld(int zeile, const char* wert); //! Setzt einen Bestimmten Wert in einer Zeile //! \param zeile Der Index der Zeile, in der ein Wert veraendert werden //! soll \param feld Die Position in der Zeile, an der der Wert gesetzt //! werden soll \param wert Der Wert, der gespeichert werden soll //! \return 1, falls Der Wert erfolgreich ersetzt wurde. 0, falls die //! Zeile oder der Wert nicht existiert DLLEXPORT bool setFeld(int zeile, int feld, Text* wert); //! Setzt einen Bestimmten Wert in einer Zeile //! \param zeile Der Index der Zeile, in der ein Wert veraendert werden //! soll \param feld Die Position in der Zeile, an der der Wert gesetzt //! werden soll \param wert Der Wert, der gespeichert werden soll //! \return 1, falls Der Wert erfolgreich ersetzt wurde. 0, falls die //! Zeile oder der Wert nicht existiert DLLEXPORT bool setFeld(int zeile, int feld, const char* wert); //! Entfernt einen bestimmten Wert //! \param zeile Der Index der Zeile, aus der ein Wert geloescht werden //! soll \param feld Die Position in der Zeile, an der der Wert geloescht //! werden soll \return 1, falls Der Wert erfolgreich geloescht wurde. 0, //! falls die Zeile oder der Wert nicht existiert DLLEXPORT bool removeFeld(int zeile, int feld); //! Speichert die Tabelle in der Datei //! \return 1, falls die Tabbelle erfolgreich gespeichert wurde DLLEXPORT bool speichern(); //! Gibt die Anzahl der Zeilen zurueck DLLEXPORT int getZeilenAnzahl() const; //! Gibt die Anzahl der Werte (Spalten) in einer Zeile zurueck //! \param zeile Der Index der Zeile, von der die Anzahl Werte ermittelt //! werden soll DLLEXPORT int getFeldAnzahl(int zeile) const; //! Gibt einen bestimmten gespeicherten Wert zurueck //! \param zeile Der Index der Zeile, in der der Wert gespeichert wird //! \param feld Der Index des Wertes in der Zeile //! \return Den gespeicherten Wert mit erhoehtem Reference Counter DLLEXPORT Text* getFeld(int zeile, int feld) const; //! Gibt einen bestimmten gespeicherten Wert zurueck //! \param zeile Der Index der Zeile, in der der Wert gespeichert wird //! \param feld Der Index des Wertes in der Zeile //! \return Den gespeicherten Wert ohne erhoehten Reference Counter DLLEXPORT Text* zFeld(int zeile, int feld) const; }; } // namespace Framework #endif