#ifndef Text_H #define Text_H #define WIN32_LEAN_AND_MEAN #include namespace Framework { class Text; // aus dieser Datei class TextArray; // aus dieser Datei class Text // Ein ersatz für string ( nur zur übung ) char[] { private: char *txt; int ref; public: // Kostruktor Text(); Text( const char *txt ); // Destruktor ~Text(); // nicht constant void setText( const char *t ); // ersetzt den Text void setText( const char *t, int l ); // ersetzt den Text void setText( Text *t ); void anhängen( const char *t ); // hängt an den Text an void anhängen( const char *t, int l ); // hängt an den Text an void anhängen( Text *t ); void anhängen( int num ); // hängt num an den Text an void anhängen( unsigned int num ); void einfügen( int p, char c ); // Fügt an stelle p ein void einfügen( int p, const char *t ); void einfügen( int p, Text *t ); void ersetzen( int p1, int p2, const char *t ); // Ersetzt den Text von p1 bis p2 ( p2 bleibt da ) void ersetzen( int p1, int p2, Text *t ); void ersetzen( char c1, char c2 ); // ersetzt jedes c1 durch c2 void ersetzen( const char *t1, const char *t2 ); // ersetzt jedes t1 durch t2 void ersetzen( Text *t1, const char *t2 ); void ersetzen( const char *t1, Text *t2 ); void ersetzen( Text *t1, Text *t2 ); void ersetzen( int i, char c1, char c2 ); // ersetzt das i-te c1 durch c2 void ersetzen( int i, const char *t1, const char *t2 ); // ersetzt das i-te t1 durch t2 void ersetzen( int i, Text *t1, const char *t2 ); void ersetzen( int i, const char *t1, Text *t2 ); void ersetzen( int i, Text *t1, Text *t2 ); void füllText( char c, int län ); // setzt den Text zu so vielen c wie län groß ist void löschen( int p ); // löscht p void löschen( int p1, int p2 ); // löscht von p1 zu p2 ( p2 bleibt da ) void löschen( char c ); // löscht jetes c void löschen( const char *t ); // löscht jetes t void löschen( Text *t ); void löschen( int i, char c ); // löscht das i-te c void löschen( int i, const char *t ); // löscht das i-te t void löschen( int i, Text *t ); // constant int getLänge() const; // gibt die Text länge zurück int getLKick( int pos ); int getOKick( int pos ); int getRKick( int pos ); int getUKick( int pos ); bool hat( Text *t ) const; // enthält der Text t bool hat( const char *t ) const; bool hat( char c ) const; // enthält c bool istGleich( const char *t ) const; // prüft ob det Text gleich t ist bool istGleich( Text *t ) const; // enthält c char *getText() const; // gibt Text zurück int anzahlVon( char c ) const; // gibt die Anzahl von c im Text zurück int anzahlVon( const char *t ) const; // gibt die Anzahl von t im Text zurück int anzahlVon( Text *t ) const; int positionVon( char c ) const; // gibt die Position des ersten c zurück int positionVon( const char *t ) const; // gibt die Position des ersten t zurück int positionVon( Text *t ) const; int positionVon( char c, int i ) const; // gibt die Position des i-ten c zurück int positionVon( const char *t, int i ) const; // gibt die Position des i-ten t zurück int positionVon( Text *t, int i ) const; Text *getTeilText( int p1, int p2 ) const; // gibt den Text von p1 bis p2 zurück Text *getTeilText( int p ) const; // gibt den Text von p bis zum Ende zurück // Reference Counting Text *getThis(); Text *release(); }; class TextArray { private: Text *This; TextArray *next; int index; public: // konstruktor TextArray(); // destruktor ~TextArray(); // nicht constant void addText( Text *txt ); // fügt einen Text hinzu void addText( const char *txt ); bool löscheText( Text *txt, bool eins ); // löscht einen Text bool löscheText( unsigned char *txt, bool eins ); bool löscheText( int index, bool eins ); void setNext0(); // setzt den next Zeiger auf null void setIndex( int i ); // setzt den index // constant Text *getText( int index ) const; // gibt den i-ten Text zurück Text *zText( int index ) const; TextArray *getNext() const; // gibt den next Zeiger zurück Text *getThis() const; // gibt den This zeiger zurück }; // Andere Funktionen void ZuWCharT( const char *txt, wchar_t *res ); // wandelt in wchar_t um void ZuChar( const wchar_t *txt, char *res ); // wandelt in char um char KleinOrGroß( char c, bool groß ); // wandelt c in Klein - oder Großbuchstabe um bool istSchreibbar( unsigned char zeichen ); // prüft, ob zeichen ein Schreibbarer Buchstabe ist unsigned int TextZuInt( char *c, int system ); // Konvertiert c zu int unsigned int TextZuInt( char *c, char **c_ende, int system ); char *convert( char *txt, int *error, int *l ); // konvertiert den Text char *deConvert( char *txt ); // dekonvertiert den Text int textLänge( const char *txt ); // gibt die Länge von txt zurück } #endif