#ifndef KSGTDatei_H #define KSGTDatei_H #include "Array.h" namespace Framework { class Text; // Verwaltet eine Datei in der Daten tabellarisch abgespeichert werden class KSGTDatei { private: Text *pfad; RCArray< RCArray< Text > > *data; int ref; public: // Konstruktor __declspec( dllexport ) KSGTDatei(); // Konstruktor // pfad: Der Pfad zur Datei __declspec( dllexport ) KSGTDatei( const char *pfad ); // Konstruktor // pfad: Der Pfad zur Datei __declspec( dllexport ) KSGTDatei( Text *pfad ); // Destruktor __declspec( dllexport ) ~KSGTDatei(); // Setzt den Pfad zur Datei // pfad: Der Pfad zur Datei __declspec( dllexport ) void setPfad( const char *pfad ); // Setzt den Pfad zur Datei // pfad: Der Pfad zur Datei __declspec( dllexport ) void setPfad( Text *pfad ); // l�hdt alle Daten aus der angegebenen Datei // return: 1, falls das laden erfolgreich war. 0, wenn ein Fehler beim laden aufgetreten ist __declspec( dllexport ) bool laden(); // F�gt eine Zeile zur Tabelle hinzu // feldAnzahl: Die Anzahl der Felder in der Zeile // zWert: Einen Zeiger auf die Werte in der Zeile ohne erh�hten Reference Counter // return: 1, wenn kein Fehler aufgetreten ist __declspec( dllexport ) bool addZeile( int feldAnzahl, RCArray< Text > *zWert ); // Ersetzt eine existierende Zeile // zeile: Der Index der Zeile, die ersetzt werden soll // feldAnzahl: Die Anzahl der Felder in der Zeile // zWert: Einen Zeiger auf die Werte in der Zeile ohne erh�hten Reference Counter // return: 1, wenn die Zeile existierte und ersetzt wurde. 0, wenn die angegebene Zeile nicht existierte __declspec( dllexport ) bool setZeile( int zeile, int feldAnzahl, RCArray< Text > *zWert ); // L�scht eine Zeile // zeile: Der Index der Zeile, die gel�scht werden soll // return: 1, wenn die Zeile gel�scht wurde. 0, wenn die Zeile nicht gefunden wurde __declspec( dllexport ) bool removeZeile( int zeile ); // F�gt einer Bestimmten Zeile einen Wert hinzu // zeile: Der Index der Zeile, der ein Wert hinzugef�gt werden soll // pos: Die Position in der Zeile, an der der Wert hinzugef�gt werden soll // wert: Der Wert, der gespeichert werden soll // return: 1, falls Der Wert erfolgreich hinzugef�gt wurde. 0, falls die Zeile nicht existiert, oder pos zu gro� ist __declspec( dllexport ) bool addFeld( int zeile, int pos, Text *wert ); // F�gt einer Bestimmten Zeile einen Wert hinzu // zeile: Der Index der Zeile, der ein Wert hinzugef�gt werden soll // pos: Die Position in der Zeile, an der der Wert hinzugef�gt werden soll // wert: Der Wert, der gespeichert werden soll // return: 1, falls Der Wert erfolgreich hinzugef�gt wurde. 0, falls die Zeile nicht existiert, oder pos zu gro� ist __declspec( dllexport ) bool addFeld( int zeile, int pos, const char *wert ); // F�gt einer Bestimmten Zeile am Ende einen Wert hinzu // zeile: Der Index der Zeile, der ein Wert hinzugef�gt werden soll // wert: Der Wert, der gespeichert werden soll // return: 1, falls Der Wert erfolgreich hinzugef�gt wurde. 0, falls die Zeile nicht existiert __declspec( dllexport ) bool addFeld( int zeile, Text *wert ); // F�gt einer Bestimmten Zeile am Ende einen Wert hinzu // zeile: Der Index der Zeile, der ein Wert hinzugef�gt werden soll // wert: Der Wert, der gespeichert werden soll // return: 1, falls Der Wert erfolgreich hinzugef�gt wurde. 0, falls die Zeile nicht existiert __declspec( dllexport ) bool addFeld( int zeile, const char *wert ); // Setzt einen Bestimmten Wert in einer Zeile // zeile: Der Index der Zeile, in der ein Wert ver�ndert werden soll // feld: Die Position in der Zeile, an der der Wert gesetzt werden soll // wert: Der Wert, der gespeichert werden soll // return: 1, falls Der Wert erfolgreich ersetzt wurde. 0, falls die Zeile oder der Wert nicht existiert __declspec( dllexport ) bool setFeld( int zeile, int feld, Text *wert ); // Setzt einen Bestimmten Wert in einer Zeile // zeile: Der Index der Zeile, in der ein Wert ver�ndert werden soll // feld: Die Position in der Zeile, an der der Wert gesetzt werden soll // wert: Der Wert, der gespeichert werden soll // return: 1, falls Der Wert erfolgreich ersetzt wurde. 0, falls die Zeile oder der Wert nicht existiert __declspec( dllexport ) bool setFeld( int zeile, int feld, const char *wert ); // Entfernt einen bestimmten Wert // zeile: Der Index der Zeile, aus der ein Wert gel�scht werden soll // feld: Die Position in der Zeile, an der der Wert gel�scht werden soll // return: 1, falls Der Wert erfolgreich gel�scht wurde. 0, falls die Zeile oder der Wert nicht existiert __declspec( dllexport ) bool removeFeld( int zeile, int feld ); // Speichert die Tabelle in der Datei // return: 1, falls die Tabbelle erfolgreich gespeichert wurde __declspec( dllexport ) bool speichern(); // Gibt die Anzahl der Zeilen zur�ck __declspec( dllexport ) int getZeilenAnzahl() const; // Gibt die Anzahl der Werte (Spalten) in einer Zeile zur�ck // zeile: Der Index der Zeile, von der die Anzahl Werte ermittelt werden soll __declspec( dllexport ) int getFeldAnzahl( int zeile ) const; // Gibt einen bestimmten gespeicherten Wert zur�ck // zeile: Der Index der Zeile, in der der Wert gespeichert wird // feld: Der Index des Wertes in der Zeile // return: Den gespeicherten Wert mit erh�htem Reference Counter __declspec( dllexport ) Text *getFeld( int zeile, int feld ) const; // Gibt einen bestimmten gespeicherten Wert zur�ck // zeile: Der Index der Zeile, in der der Wert gespeichert wird // feld: Der Index des Wertes in der Zeile // return: Den gespeicherten Wert ohne erh�hten Reference Counter __declspec( dllexport ) Text *zFeld( int zeile, int feld ) const; // Erh�ht den Reference Counting Z�hler. // return: this. __declspec( dllexport ) KSGTDatei *getThis(); // Verringert den Reference Counting Z�hler. Wenn der Z�hler 0 erreicht, wird das Zeichnung automatisch gel�scht. // return: 0. __declspec( dllexport ) KSGTDatei *release(); }; } #endif