Text.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. #ifndef Text_H
  2. #define Text_H
  3. #define WIN32_LEAN_AND_MEAN
  4. #include <Windows.h>
  5. namespace Framework
  6. {
  7. class Text; // aus dieser Datei
  8. class TextArray; // aus dieser Datei
  9. class Text // Ein ersatz für string ( nur zur übung ) char[]
  10. {
  11. private:
  12. char *txt;
  13. int ref;
  14. public:
  15. // Kostruktor
  16. Text();
  17. Text( const char *txt );
  18. // Destruktor
  19. ~Text();
  20. // nicht constant
  21. void setText( const char *t ); // ersetzt den Text
  22. void setText( const char *t, int l ); // ersetzt den Text
  23. void setText( Text *t );
  24. void anhängen( const char *t ); // hängt an den Text an
  25. void anhängen( const char *t, int l ); // hängt an den Text an
  26. void anhängen( Text *t );
  27. void anhängen( int num ); // hängt num an den Text an
  28. void anhängen( unsigned int num );
  29. void einfügen( int p, char c ); // Fügt an stelle p ein
  30. void einfügen( int p, const char *t );
  31. void einfügen( int p, Text *t );
  32. void ersetzen( int p1, int p2, const char *t ); // Ersetzt den Text von p1 bis p2 ( p2 bleibt da )
  33. void ersetzen( int p1, int p2, Text *t );
  34. void ersetzen( char c1, char c2 ); // ersetzt jedes c1 durch c2
  35. void ersetzen( const char *t1, const char *t2 ); // ersetzt jedes t1 durch t2
  36. void ersetzen( Text *t1, const char *t2 );
  37. void ersetzen( const char *t1, Text *t2 );
  38. void ersetzen( Text *t1, Text *t2 );
  39. void ersetzen( int i, char c1, char c2 ); // ersetzt das i-te c1 durch c2
  40. void ersetzen( int i, const char *t1, const char *t2 ); // ersetzt das i-te t1 durch t2
  41. void ersetzen( int i, Text *t1, const char *t2 );
  42. void ersetzen( int i, const char *t1, Text *t2 );
  43. void ersetzen( int i, Text *t1, Text *t2 );
  44. void füllText( char c, int län ); // setzt den Text zu so vielen c wie län groß ist
  45. void löschen( int p ); // löscht p
  46. void löschen( int p1, int p2 ); // löscht von p1 zu p2 ( p2 bleibt da )
  47. void löschen( char c ); // löscht jetes c
  48. void löschen( const char *t ); // löscht jetes t
  49. void löschen( Text *t );
  50. void löschen( int i, char c ); // löscht das i-te c
  51. void löschen( int i, const char *t ); // löscht das i-te t
  52. void löschen( int i, Text *t );
  53. // constant
  54. int getLänge() const; // gibt die Text länge zurück
  55. int getLKick( int pos );
  56. int getOKick( int pos );
  57. int getRKick( int pos );
  58. int getUKick( int pos );
  59. bool hat( Text *t ) const; // enthält der Text t
  60. bool hat( const char *t ) const;
  61. bool hat( char c ) const; // enthält c
  62. bool istGleich( const char *t ) const; // prüft ob det Text gleich t ist
  63. bool istGleich( Text *t ) const; // enthält c
  64. char *getText() const; // gibt Text zurück
  65. int anzahlVon( char c ) const; // gibt die Anzahl von c im Text zurück
  66. int anzahlVon( const char *t ) const; // gibt die Anzahl von t im Text zurück
  67. int anzahlVon( Text *t ) const;
  68. int positionVon( char c ) const; // gibt die Position des ersten c zurück
  69. int positionVon( const char *t ) const; // gibt die Position des ersten t zurück
  70. int positionVon( Text *t ) const;
  71. int positionVon( char c, int i ) const; // gibt die Position des i-ten c zurück
  72. int positionVon( const char *t, int i ) const; // gibt die Position des i-ten t zurück
  73. int positionVon( Text *t, int i ) const;
  74. Text *getTeilText( int p1, int p2 ) const; // gibt den Text von p1 bis p2 zurück
  75. Text *getTeilText( int p ) const; // gibt den Text von p bis zum Ende zurück
  76. // Reference Counting
  77. Text *getThis();
  78. Text *release();
  79. };
  80. class TextArray
  81. {
  82. private:
  83. Text *This;
  84. TextArray *next;
  85. int index;
  86. public:
  87. // konstruktor
  88. TextArray();
  89. // destruktor
  90. ~TextArray();
  91. // nicht constant
  92. void addText( Text *txt ); // fügt einen Text hinzu
  93. void addText( const char *txt );
  94. bool löscheText( Text *txt, bool eins ); // löscht einen Text
  95. bool löscheText( unsigned char *txt, bool eins );
  96. bool löscheText( int index, bool eins );
  97. void setNext0(); // setzt den next Zeiger auf null
  98. void setIndex( int i ); // setzt den index
  99. // constant
  100. Text *getText( int index ) const; // gibt den i-ten Text zurück
  101. Text *zText( int index ) const;
  102. TextArray *getNext() const; // gibt den next Zeiger zurück
  103. Text *getThis() const; // gibt den This zeiger zurück
  104. };
  105. // Andere Funktionen
  106. void ZuWCharT( const char *txt, wchar_t *res ); // wandelt in wchar_t um
  107. void ZuChar( const wchar_t *txt, char *res ); // wandelt in char um
  108. char KleinOrGroß( char c, bool groß ); // wandelt c in Klein - oder Großbuchstabe um
  109. bool istSchreibbar( unsigned char zeichen ); // prüft, ob zeichen ein Schreibbarer Buchstabe ist
  110. unsigned int TextZuInt( char *c, int system ); // Konvertiert c zu int
  111. unsigned int TextZuInt( char *c, char **c_ende, int system );
  112. char *convert( char *txt, int *error, int *l ); // konvertiert den Text
  113. char *deConvert( char *txt ); // dekonvertiert den Text
  114. int textLänge( const char *txt ); // gibt die Länge von txt zurück
  115. }
  116. #endif