Text.h 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461
  1. #ifndef Text_H
  2. #define Text_H
  3. #include "Reader.h"
  4. namespace Framework
  5. {
  6. class Text; // aus dieser Datei
  7. // Ein ersatz für String
  8. class Text
  9. {
  10. private:
  11. char *txt;
  12. char suchGBeg;
  13. char suchGEnd;
  14. int precision;
  15. int ref;
  16. public:
  17. // Erstellt ein neues Text Objekt mit dem Wert ""
  18. __declspec( dllexport ) Text();
  19. // Erstellt ein neues Text Objekt indem der Wert aus (txt) kopiert wird
  20. // txt: Der Text, der kopiert werden soll
  21. __declspec( dllexport ) Text( const Text &txt );
  22. // Erstellt ein neues Text Objekt indem der Wert aus (txt) kopiert wird
  23. // txt: Die Zeichenkette, die kopiert werden soll
  24. __declspec( dllexport ) Text( const char *txt );
  25. // Erstellt ein neues Text Objekt mit einer zahl als text
  26. // zahl: Die Zahl, die im Text sein soll
  27. __declspec( dllexport ) Text( int zahl );
  28. // Erstellt ein neues Text Objekt mit einer zahl als text
  29. // num: Die Zahl, die im Text sein soll
  30. __declspec( dllexport ) Text( double num );
  31. // Erstellt ein neues Text Objekt mit einer zahl als text
  32. // num: Die Zahl, die im Text sein soll
  33. __declspec( dllexport ) Text( float num );
  34. // Löscht den Text
  35. __declspec( dllexport ) ~Text();
  36. // Wandelt alle buchstaben in großbuchstaben um
  37. __declspec( dllexport ) void toUpperCase();
  38. // Wandelt alle buchstaben in kleinbuchstaben um
  39. __declspec( dllexport ) void toLowerCase();
  40. // Legt die Suchgrenzen fest, die von den Suchfunktionen verwendet werden.
  41. // gBeg: Das Zeichen, bei dem die Suche beginnen soll
  42. // gEnd: Das Zeichen, bei dem die Suche enden soll
  43. __declspec( dllexport ) void setSuchGrenzen( char gBeg, char gEnd );
  44. // Setzt den Text, den das Zeichnung speichert
  45. // t: Eine Zeichenkette, deren Inhalt kopiert wird
  46. __declspec( dllexport ) void setText( const char *t );
  47. // Setzt den Text, den das Zeichnung speichert
  48. // t: Eine Zeichenkette, deren Inhalt kopiert wird
  49. // l: Die Länge des Textes, der aus (t) kopiert werden soll
  50. __declspec( dllexport ) void setText( const char *t, int l );
  51. // Setzt den Text, den das Zeichnung speichert
  52. // t: Das TextZeichnung, dessen Inahlt kopiert werden soll
  53. __declspec( dllexport ) void setText( Text *t );
  54. // Hängt eine Zeichenfolge ans Ende des Textes an, die von der Schrift Klasse beim zeichnen interpretiert wird, so dass der nachfolgende Text in einer anderen Farbe gezeichnet wird.
  55. // fc: Der Farbcode im A8R8G8B8 Format
  56. __declspec( dllexport ) void appendColor( int fc );
  57. // Hängt die übergebene Zahl als Hex Text (0-F) ans Ende des Textes an.
  58. // num: Die Zahl, die ins Hex System umgewandelt und angehängt werden soll
  59. __declspec( dllexport ) void appendHex( int num );
  60. // Fügt den übergebenen Buchtaben der Zeichenkette hinzu
  61. // c: Der Buchstabe, der angehängt werden soll
  62. __declspec( dllexport ) void append( char c );
  63. // Hängt die übergebene Zeichenkette ans Ende des Textes an
  64. // t: Die Zeichenkette, deren Kopie ans Ende des Textes angehängt werden soll
  65. __declspec( dllexport ) void append( const char *t );
  66. // Hängt einen Teil der übergebenen Zeichenkette ans Ende des Textes an
  67. // t: Die Zeichenkette, deren Kopie angehängt werden soll
  68. // l: Die Länge des Textabschnittes der angehängt werden soll
  69. __declspec( dllexport ) void append( const char *t, int l );
  70. // Hängt den Inhalt des eines Textes ans Ende des Textes an
  71. // t: Der Text, dessen Kopie ans Ende des Textes angehängt werden soll
  72. __declspec( dllexport ) void append( Text *t );
  73. // Hängt eine Zahl ans Ende Des Textes an
  74. // num: Die Zahl, die in einen Text umgewandelt und am Ende angehängt werden soll
  75. __declspec( dllexport ) void append( int num );
  76. // Hängt eine Zahl ans Ende Des Textes an
  77. // num: Die Zahl, die in einen Text umgewandelt und am Ende angehängt werden soll
  78. __declspec( dllexport ) void append( __int64 num );
  79. // Hängt eine Zahl ohne Vorzeichenbit am Ende des Textes an
  80. // num: Die Zahl, die in einen Text umgewandelt und am Ende angehängt werden soll
  81. __declspec( dllexport ) void append( unsigned int num );
  82. // Hängt eine Kommazahl am Ende des Textes an
  83. // num: Die Kommazahl, die am Ende des Textes angehängt werden soll
  84. __declspec( dllexport ) void append( double num );
  85. // Hängt eine Kommazahl am Ende des Textes an
  86. // num: Die Kommazahl, die am Ende des Textes angehängt werden soll
  87. __declspec( dllexport ) void append( float num );
  88. // Fügt an einer Bestimmten Stelle ein Zeichen in den Text ein
  89. // p: Die position im Text bei der das Zeichen eingefügt werden soll
  90. // c: Das Zeichen, das eingefügt werden soll
  91. __declspec( dllexport ) void insert( int p, char c );
  92. // Fügt an einer Bestimmten Stelle im Text eine Zeichenkette ein
  93. // p: Die position im Text bei der die Zeichenkette eingefügt werden soll
  94. // t: Die Zeichenkette, deren Kopie an eingefügt werden soll
  95. __declspec( dllexport ) void insert( int p, const char *t );
  96. // Fügt den Inhalt eines Textes an einer Bestimmten Stelle im Text ein
  97. // p: Die Position im Text, bei der der inhalt des Textest eingefügt werden soll
  98. // t: Der Text, dessen Kopie an der Stelle eingefügt werden soll
  99. __declspec( dllexport ) void insert( int p, Text *t );
  100. // Ersetzt einen bestimmten Textabschnitt mit einer anderen Zeichenkette
  101. // p1: Die Startposition des zu ersetzenden Textabschnittes
  102. // p2: Die Endposition des zu ersetzenden Textabschnittes
  103. // t: Die Zeichenkette, die an die entsprechende Stelle kopiert werden soll
  104. // Beispiel: ( "Hallo Welt" ).ersetzen( 2, 5, "lt" ); ergibt: "Halt Welt"
  105. __declspec( dllexport ) void ersetzen( int p1, int p2, const char *t );
  106. // Ersetzt einen bestimmten Textabschnitt mit dem Inhalt eines anderen Textes
  107. // p1: Die Startposition des zu ersetzenden Textabschnittes
  108. // p2: Die Endposition des zu ersetzenden Textabschnittes
  109. // t: Der Text, dessen Inhalt an die entsprechende Stelle kopiert werden soll
  110. // Beispiel: ( "Hallo Welt" ).ersetzen( 2, 5, new Text( "lt" ) ); ergibt: "Halt Welt"
  111. __declspec( dllexport ) void ersetzen( int p1, int p2, Text *t );
  112. // Sucht und erstetzt jedes Vorkommen eines bestimmten Buchstaben durch einen anderen
  113. // c1: Der Buchstabe der ersetzt werden soll
  114. // c2: Der Buchstabe, durch den der Andere ersetzt werden soll
  115. __declspec( dllexport ) void ersetzen( char c1, char c2 );
  116. // Sucht und erstetzt jedes Vorkommen einer bestimmten Zeichenkette durch eine andere
  117. // t1: Die Zeichenkette, die ersetzt werden soll
  118. // t2: Die Zeichenkette, durch welche die Andere ersetzt werden soll
  119. __declspec( dllexport ) void ersetzen( const char *t1, const char *t2 );
  120. // Sucht und erstetzt jedes Vorkommen des Inhalts eines Textes durch eine andere Zeichenkette
  121. // t1: Der Text, dessen Inhalt gesucht und ersetzt wird
  122. // t2: Die Zeichenkette, durch welche das Vorkommen des Textes ersetzt werden soll
  123. __declspec( dllexport ) void ersetzen( Text *t1, const char *t2 );
  124. // Sucht und erstetzt jedes Vorkommen einer Zeichenkette durch den Inhalt eines Textes
  125. // t1: Die Zeichenkette, die ersetzt werden soll
  126. // t2: Der Text, dessen Inhalt das Vorkommen der Zeichenkette ersetzten soll
  127. __declspec( dllexport ) void ersetzen( const char *t1, Text *t2 );
  128. // Sucht und erstetzt jedes Vorkommen des Inhalts eines Textes durch den Inhalt eines anderen Textes
  129. // t1: Der Text, dessen Vorkommen ersetzt werden sollen
  130. // t2: Der Text, dessen Inhalt das Vorkommen der Zeichenkette ersetzten soll
  131. __declspec( dllexport ) void ersetzen( Text *t1, Text *t2 );
  132. // Ersetzt das i-te auftreten eines bestimmten Buchstaben mit einem anderen Buchstaben
  133. // i: Das wie vielte Auftreten des Buchstabens ersetzt werden soll
  134. // c1: Der Buchstabe, dessen i-tes Auftreten erstetzt werden soll
  135. // c2: Der Buchstabe, der das i-te Auftreten des anderen Buchstabens ersetzen soll
  136. __declspec( dllexport ) void ersetzen( int i, char c1, char c2 );
  137. // Ersetzt das i-te auftreten einer bestimmten Zeichenkette mit einer anderen Zeichenkette
  138. // i: Das wie vielte Auftreten der Zeichenkette ersetzt werden soll
  139. // c1: Die Zeichenkette, dessen i-tes Auftreten erstetzt werden soll
  140. // c2: Die Zeichenkette, die das i-te Auftreten der anderen Zeichenkette ersetzen soll
  141. __declspec( dllexport ) void ersetzen( int i, const char *t1, const char *t2 );
  142. // Ersetzt das i-te auftreten des Inhalts eines Textes mit einer Zeichenkette
  143. // i: Das wie vielte Auftreten des Textes ersetzt werden soll
  144. // c1: Der Text, dessen i-tes Auftreten erstetzt werden soll
  145. // c2: Die Zeichenkette, die das i-te Auftreten des Textes ersetzen soll
  146. __declspec( dllexport ) void ersetzen( int i, Text *t1, const char *t2 );
  147. // Ersetzt das i-te auftreten einer bestimmten Zeichenkette mit dem Inhalt eines Textes
  148. // i: Das wie vielte Auftreten der Zeichenkette ersetzt werden soll
  149. // c1: Die Zeichenkette, dessen i-tes Auftreten erstetzt werden soll
  150. // c2: Der Text, dessen Inhalt das i-te Auftreten der Zeichenkette ersetzen soll
  151. __declspec( dllexport ) void ersetzen( int i, const char *t1, Text *t2 );
  152. // Ersetzt das i-te auftreten eines bestimmten Textes mit dem Inhalt eines anderen Textes
  153. // i: Das wie vielte Auftreten des Textes ersetzt werden soll
  154. // c1: Der Text, dessen i-tes Auftreten erstetzt werden soll
  155. // c2: Der Text, dessen Inhalt das i-te Auftreten des anderen Textes ersetzen soll
  156. __declspec( dllexport ) void ersetzen( int i, Text *t1, Text *t2 );
  157. // Löscht den bisherigen Text und erzeugt einen Text, der aus einem Bestimten Buchstaben besteht, mit einer bestimmten Länge
  158. // c: Der Buchstabe, aus dem der Text bestehen soll
  159. // length: Die Länge des Textes
  160. __declspec( dllexport ) void fillText( char c, int length );
  161. // Löscht ein Bestimmtes Zeichen aus dem Text
  162. // p: Die Position des zu löschenden Zeichens
  163. __declspec( dllexport ) void remove( int p );
  164. // Löscht einen Bestimmten Textabschnitt
  165. // p1: Die Startposition des zu löschenden Abschnittes
  166. // p2: Die Endposition des zu löschenden Abschnittes (Das Zeichen bei p2 bleibt erhalten)
  167. __declspec( dllexport ) void remove( int p1, int p2 );
  168. // Löscht jedes Vorkommen eines bestimmten Buchsaben
  169. // c: Der Buchstabe, dessen Vorkommen gelöscht werden soll
  170. __declspec( dllexport ) void remove( char c );
  171. // Löscht jedes Vorkommen einer bestimmten Zeichenkette
  172. // t: Die Zeichenkette, deren Vorkommen entfernt werden sollen
  173. __declspec( dllexport ) void remove( const char *t );
  174. // Löscht jedes Vorkommen des Inhalts eines Textes
  175. // t: Der text, dessen Inhalt gelöscht werden soll
  176. __declspec( dllexport ) void remove( Text *t );
  177. // Löscht das i-te Vorkommen eines bestimmten Buchstaben
  178. // i: Das wie vielte Vorkommen des Buchstabens gelöscht werden soll
  179. // c: Der Buchstabe, dessen i-tes Vorkommen gelöscht werden soll
  180. __declspec( dllexport ) void remove( int i, char c );
  181. // Löscht das i-te Vorkommen einer bestimmten Zechenkette
  182. // i: Das wie vielte Vorkommen der Zeichenkette gelöscht werden soll
  183. // t: Die Zeichenkette, dessen i-tes Vorkommen gelöscht werden soll
  184. __declspec( dllexport ) void remove( int i, const char *t );
  185. // Löscht das i-te Vorkommen eines bestimmten Textinhaltes
  186. // i: Das wie vielte Vorkommen des Textinhaltes gelöscht werden soll
  187. // t: Der Text, dessen i-tes Vorkommen gelöscht werden soll
  188. __declspec( dllexport ) void remove( int i, Text *t );
  189. // Löscht alle ' ', '\n', '\r', '\t' bis zu einem anderen buchstaben
  190. // pos: Die Position des ersten zeichens
  191. __declspec( dllexport ) void removeWhitespaceAfter( int pos );
  192. // Löscht alle ' ', '\n', '\r', '\t' bis zu einem anderen buchstaben
  193. // pos: Die Position des ersten zeichens (beginnt bei pos-1)
  194. __declspec( dllexport ) void removeWhitespaceBefore( int pos );
  195. // Setzt die Anzahl der Nachkommastellen beim Anhängen von Kommazahlen
  196. // p: Die Anzahl der Stellen nach dem Komma
  197. __declspec( dllexport ) void setPrecision( int p );
  198. // Gibt die Länge des Textes zurück
  199. __declspec( dllexport ) int getLength() const;
  200. // Ermittelt die neue Curserposition nachdem Drücken der 'Links' Pfeiltaste
  201. // pos: Die alte Curserposition
  202. __declspec( dllexport ) int getLKick( int pos ) const;
  203. // Ermittelt die neue Curserposition nachdem Drücken der 'Oben' Pfeiltaste
  204. // pos: Die alte Curserposition
  205. __declspec( dllexport ) int getOKick( int pos ) const;
  206. // Ermittelt die neue Curserposition nachdem Drücken der 'Rechts' Pfeiltaste
  207. // pos: Die alte Curserposition
  208. __declspec( dllexport ) int getRKick( int pos ) const;
  209. // Ermittelt die neue Curserposition nachdem Drücken der 'Unten' Pfeiltaste
  210. // pos: Die alte Curserposition
  211. __declspec( dllexport ) int getUKick( int pos ) const;
  212. // Überprüft, ob im Text der Inhalt eines anderen Textes vorkommt
  213. // t: Der Text, nach dessen Inhalt gesucht werden soll
  214. // return: (true), wenn der Inhalt des Textes vorkommt. (false) sonnst
  215. __declspec( dllexport ) bool hat( Text *t ) const;
  216. // Überprüft, ob im Text eine bestimmte Zeichenkette vorkommt
  217. // t: Die Zeichenkette, nach der gesucht werden soll
  218. // return: (true), wenn die Zeichenkette vorkommt. (false) sonnst
  219. __declspec( dllexport ) bool hat( const char *t ) const;
  220. // Überprüft, ob im Text der Inhalt eines anderen Textes vorkommt
  221. // t: Der Text, nach dessen Inhalt gesucht werden soll
  222. // return: (true), wenn der Inhalt des Textes vorkommt. (false) sonnst
  223. // pos: die position an der die zeichenkette im string beginnen soll
  224. __declspec( dllexport ) bool hatAt( int pos, Text *t ) const;
  225. // Überprüft, ob im Text eine bestimmte Zeichenkette vorkommt
  226. // t: Die Zeichenkette, nach der gesucht werden soll
  227. // return: (true), wenn die Zeichenkette vorkommt. (false) sonnst
  228. // pos: die position an der die zeichenkette im string beginnen soll
  229. __declspec( dllexport ) bool hatAt( int pos, const char *t ) const;
  230. // Überprüft, ob im Text ein bestimmtes Zeichen vorkommt
  231. // c: Das Zeichen, nach dem gesucht werden soll
  232. // return: (true), wenn das Zeichen vorkommt. (false) sonnst
  233. __declspec( dllexport ) bool hat( char c ) const;
  234. // Überprft, ob der Text den selben Inhalt wie eine Zeichenkette hat
  235. // t: Die Zeichenkette, die verglichen werden soll
  236. // return: (true), wenn der Inhalt des Textes gleich der Zeichenkette ist. (false) sonst
  237. __declspec( dllexport ) bool istGleich( const char *t ) const;
  238. // Überprft, ob der Text den selben Inhalt wie ein anderer Text hat
  239. // t: Der Text, dessen Inhalt verglichen werden soll
  240. // return: (true), wenn die Inhalte der Texte übereinstimmen. (false) sonst
  241. __declspec( dllexport ) bool istGleich( Text *t ) const;
  242. // Gibt den Inhalt des Textes als Zeichenkette zurück
  243. __declspec( dllexport ) char *getText() const;
  244. // Zählt, wie oft ein bestimmter Buchstabe im Text vorkomt
  245. // c: Der Buchstabe, der gezählt werden soll
  246. // return: Die Anzahl des Buchstabens im Text
  247. __declspec( dllexport ) int anzahlVon( char c ) const;
  248. // Zählt, wie oft eine bestimmte Zeichenkette im Text vorkommt
  249. // t: Die Zeichenkette, die gezählt werden soll
  250. // return: Die Anzahl der Zeichenkette im Text
  251. __declspec( dllexport ) int anzahlVon( const char *t ) const;
  252. // Zählt, wie oft der Inhalt eines Textest im Text vorkommt
  253. // t: Der Text, dessen Inhalt gezählt werden soll
  254. // return: Die Anzahl des Textinhaltes im Text
  255. __declspec( dllexport ) int anzahlVon( Text *t ) const;
  256. // Gibt die erste Position eines bestimmten Buchstabens im Text zurück
  257. // c: Der Buchstabe, der gefunden werden soll
  258. // return: Die Position des ersten Vorkommens des Buchstabens
  259. __declspec( dllexport ) int positionVon( char c ) const;
  260. // Gibt die erste Position einer bestimmten Zeichenkette im Text zurück
  261. // t: Die Zeichenkette, die gefunden werden soll
  262. // return: Die Position des ersten Vorkommens der Zeichenkette
  263. __declspec( dllexport ) int positionVon( const char *t ) const;
  264. // Gibt die erste Position eines Textinhaltes im Text zurück
  265. // t: Der Text, dessen Inhalt gefunden werden soll
  266. // return: Die Position des ersten Vorkommens des Textinhaltes
  267. __declspec( dllexport ) int positionVon( Text *t ) const;
  268. // Gibt die i-te Position eines bestimmten Buchstabens im Text zurück
  269. // c: Der Buchstabe, der gefunden werden soll
  270. // i: Das wievielte Vorkommen gefunden werden soll
  271. // return: Die Position des i-ten Vorkommens des Buchstabens
  272. __declspec( dllexport ) int positionVon( char c, int i ) const;
  273. // Gibt die i-te Position einer bestimmten Zeichenkette im Text zurück
  274. // t: Die Zeichenkette, die gefunden werden soll
  275. // i: Das wievielte Vorkommen gefunden werden soll
  276. // return: Die Position des i-ten Vorkommens der Zeichenkette
  277. __declspec( dllexport ) int positionVon( const char *t, int i ) const;
  278. // Gibt die i-te Position eines Textinhaltes im Text zurück
  279. // t: Der Text, dessen Inhalt gefunden werden soll
  280. // i: Das wievielte Vorkommen gefunden werden soll
  281. // return: Die Position des i-ten Vorkommens des Textinhaltes
  282. __declspec( dllexport ) int positionVon( Text *t, int i ) const;
  283. // Gibt einen Text zurück, der eine Kopie eines bestimmten Textabschnittes enthält
  284. // p1: Die Startposition des Textabschnittes
  285. // p2: Die Endposition des Textabschnittes (nicht enthalten)
  286. __declspec( dllexport ) Text *getTeilText( int p1, int p2 ) const;
  287. // Gibt einen Text zurück, der eine Kopie eines bestimmten Textabschnittes enthält
  288. // p1: Die Startposition des Textabschnittes (Der Textabschnitt geht bis ans Ende des Textes)
  289. __declspec( dllexport ) Text *getTeilText( int p ) const;
  290. // Erhöht den Reference Counting Zähler.
  291. // return: this.
  292. __declspec( dllexport ) Text *getThis();
  293. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  294. // return: 0.
  295. __declspec( dllexport ) Text *release();
  296. // Hängt eine Zahl ans Ende des Textes an
  297. __declspec( dllexport ) Text &operator+=( const int num );
  298. // Hängt eine Zahl ans Ende des Textes an
  299. __declspec( dllexport ) Text &operator+=( const __int64 num );
  300. // Hängt eine Kommazahl ans Ende des Textes an
  301. __declspec( dllexport ) Text &operator+=( const double num );
  302. // Hängt eine Kommazahl ans Ende des Textes an
  303. __declspec( dllexport ) Text &operator+=( const float num );
  304. // Hängt eine Zeichenkette ans Ende des Textes an
  305. __declspec( dllexport ) Text &operator+=( const char *txt );
  306. // Hängt eine Kopie des Inhalts eines Textes ans Ende des Textes an
  307. __declspec( dllexport ) Text &operator+=( const Text &txt );
  308. // Setzt den Inhalt des Textes gleich einer Zahl
  309. __declspec( dllexport ) Text &operator=( const int num );
  310. // Setzt den Inhalt des Textes gleich einer Kommazahl
  311. __declspec( dllexport ) Text &operator=( const double num );
  312. // Setzt den Inhalt des Textes gleich einer Kommazahl
  313. __declspec( dllexport ) Text &operator=( const float num );
  314. // Setzt den Inahlt des Textes gleich einer Zeichenkette
  315. __declspec( dllexport ) Text &operator=( const char *txt );
  316. // Setzt den Inhalt des Textes gleich einer Kopie des Inhalts eines anderen Textes
  317. __declspec( dllexport ) Text &operator=( const Text &txt );
  318. // Gibt den Inhalt des Textes als Zeichenkette zurück
  319. __declspec( dllexport ) operator char*( ) const;
  320. // Konviertiert den Inhalt des Textes zu einer Zahl
  321. __declspec( dllexport ) operator int() const;
  322. // Konviertiert den Inhalt des Textes zu einer Zahl
  323. __declspec( dllexport ) operator __int64() const;
  324. // Konviertiert den Inhalt des Textes zu einer Kommazahl
  325. __declspec( dllexport ) operator double() const;
  326. // Konviertiert den Inhalt des Textes zu einer Kommazahl
  327. __declspec( dllexport ) operator float() const;
  328. // Prüft, ob der Inhalt des Textes nach alphabetischer Ordnung später kommt als der Inhalt eines anderen Textes
  329. __declspec( dllexport ) bool operator>( Text &t ) const;
  330. // Prüft, ob der Inhalt des Textes nach alphabetischer Ordnung früher kommt als der Inhalt eines anderen Textes
  331. __declspec( dllexport ) bool operator<( Text &t ) const;
  332. // Erstellt einen neuen Text bestehend aus diesem und t2
  333. __declspec( dllexport ) Text operator+( const Text &t2 );
  334. // Erstellt einen neuen Text bestehend aus diesem und t2
  335. __declspec( dllexport ) Text operator+( const char *t2 );
  336. // Erstellt einen neuen Text bestehend aus diesem und num
  337. __declspec( dllexport ) Text operator+( const int num );
  338. // Erstellt einen neuen Text bestehend aus diesem und num
  339. __declspec( dllexport ) Text operator+( const __int64 num );
  340. // Erstellt einen neuen Text bestehend aus diesem und num
  341. __declspec( dllexport ) Text operator+( const double num );
  342. // Erstellt einen neuen Text bestehend aus diesem und num
  343. __declspec( dllexport ) Text operator+( const float num );
  344. };
  345. class TextReader : public Reader
  346. {
  347. private:
  348. Text *txt;
  349. __int64 lPos;
  350. int ref;
  351. public:
  352. // Konstructor
  353. // txt: Der Text der gelesen werden soll. Er wird nicht kopiert sondern direkt gelesen.
  354. __declspec( dllexport ) TextReader( Text *txt );
  355. // Destructor
  356. __declspec( dllexport ) virtual ~TextReader();
  357. // Setzt die Position des Bytes, das als nächstes gelesen werden soll
  358. // pos: Der Index des Bytes
  359. // ende: 1, wenn der Index vom ende des Textes zählt. 0, wenn der Index vom Beginn des Textes zählt
  360. __declspec( dllexport ) void setLPosition( __int64 pos, bool ende ) override;
  361. // Ließt aus der Datei
  362. // bytes: Ein Array, der mit Bytes aus dem Text gefüllt werden soll
  363. // len: Wie viele Bytes aus dem Text gelesen werden sollen
  364. __declspec( dllexport ) void lese( char *bytes, int len ) override;
  365. // Ließt die nächste zeile des Textes ein
  366. // return: Die gelesene Zeile als Text mit zeilenumbruch
  367. __declspec( dllexport ) Text *leseZeile() override;
  368. // Prüft, ob die Resource vollständig gelesen wurde
  369. // return 1, wenn die Resource vollständig gelesen wurde. 0, sonst
  370. __declspec( dllexport ) bool istEnde() const override;
  371. // Gibt den Index des Bytes aus dem Text zurück, welches als nächstes gelesen werden würde
  372. // return -1, falls ein Fehler aufgetreten ist. Sonst die Position des Lesezeigers
  373. __declspec( dllexport ) __int64 getLPosition() const;
  374. // Erhöht den Reference Counting Zähler.
  375. // return: this.
  376. __declspec( dllexport ) TextReader *getThis();
  377. // Verringert den Reference Counting Zähler. Wenn der Zähler 0 erreicht, wird das Zeichnung automatisch gelöscht.
  378. // return: 0.
  379. __declspec( dllexport ) TextReader *release();
  380. };
  381. // Durchsucht eine Zeichenkette nach dem num-ten Vorkommen eines bestimmten Buchstabens
  382. // string: Die zu durchsuchende Zeichenkette
  383. // c: Der zu suchende Buchstabe
  384. // num: Das wievielte Vorkommen des Buchtaben gefunden werden soll
  385. // return: (-1), wenn es kein num-tes Vorkommen des Buchstaben gibt. Sonst die Position des num-ten Vorkommens in der Zeichenkette
  386. __declspec( dllexport ) int stringPositionVonChar( char *string, char c, int num ); // sucht die position des num-ten c-s in string, -1 bei nicht gefunden
  387. // Durchsucht eine Zeichenkette nach einer Anderen Zeichenkette
  388. // string: Die zu durchsuchende Zeichenkette
  389. // suche: Die Zeichenkette, nach der gesucht werden soll
  390. // sBegPos: Die Position, ab der die Suche begonnen werden soll
  391. // return: Die Position, an der die zu suchende Zeichenkette erstmals gefunden wurde. (-1) Wenn nichts gefunden wurde.
  392. __declspec( dllexport ) int stringPositionVonString( char *string, char *suche, int sBegPos );
  393. // Kopiert eine bestimmte Zeichenkette in die Zwischenablage des Betriebssystems
  394. // txt: Die Zeichenkette, die kopiert werden soll
  395. __declspec( dllexport ) void TextKopieren( const char *txt );
  396. // Ermittelt, ob in der Zwischenablage des Betriebssystems eine Zeichenkette steht.
  397. // return: Die Zeichenkette aus der Zwischenablage. Wenn keine Zeichenkette kopiert wurde, wird eine lehre Zeichenkette zurückgegeben.
  398. __declspec( dllexport ) char *TextInsert();
  399. // Wandelt einen bestimmten schreibbaren Buchstaben in einen Groß- oder Kleinbuchstaben um
  400. // c: Der Buchstabe, der umgewandelt werden soll
  401. // groß: Wenn (true), so wird der Buchstabe in einen Großbuchstaben umgewandelt. Wenn (false), wird er in einen Kleinbuchstaben umgewandelt.
  402. // return: Den umgewandelten Buchstaben
  403. __declspec( dllexport ) char smallOrBig( char c, bool big );
  404. // Ermittelt, ob ein Buchstabe ein schreibbares Zeichen ist
  405. // zeichen: Der Buchstabe, der geprüft werden soll
  406. // return: (true), wenn der Buchstabe gezeichnet werden kann. (false) sonnst
  407. __declspec( dllexport ) bool istSchreibbar( unsigned char zeichen );
  408. // Konvertiert eine Zahl aus einer Zeichenkette in belibiger Basis zu einer Zahl
  409. // c: Die Zeichenkette, in der Die Zahl steht
  410. // system: Die Basis der Zahl
  411. // return: Die Zahl, die im Text stand
  412. __declspec( dllexport ) unsigned int TextZuInt( char *c, int system );
  413. // Konvertiert eine Zahl aus einer Zeichenkette in belibiger Basis zu einer Zahl
  414. // c: Die Zeichenkette, in der Die Zahl steht
  415. // c_ende: Wird duch die Funktion gesetzt und darf 0 sein. Zeigt auf das nächste Zeichen in der Zeichenkette, das nach der Zah steht
  416. // system: Die Basis der Zahl
  417. // return: Die Zahl, die im Text stand
  418. __declspec( dllexport ) unsigned int TextZuInt( char *c, char **c_ende, int system );
  419. // Konvertiert eine Zahl aus einer Zeichenkette in belibiger Basis zu einer Zahl
  420. // c: Die Zeichenkette, in der Die Zahl steht
  421. // system: Die Basis der Zahl
  422. // return: Die Zahl, die im Text stand
  423. __declspec( dllexport ) unsigned __int64 TextZuInt64( char *c, int system );
  424. // Konvertiert eine Zahl aus einer Zeichenkette in belibiger Basis zu einer Zahl
  425. // c: Die Zeichenkette, in der Die Zahl steht
  426. // c_ende: Wird duch die Funktion gesetzt und darf 0 sein. Zeigt auf das nächste Zeichen in der Zeichenkette, das nach der Zah steht
  427. // system: Die Basis der Zahl
  428. // return: Die Zahl, die im Text stand
  429. __declspec( dllexport ) unsigned __int64 TextZuInt64( char *c, char **c_ende, int system );
  430. // Konvertiert eine Zeichenkette zu einem Double
  431. // c: Die Zeichenkette, die konvertiert werden soll
  432. // return: Das double, was in der Zeichenkette stand
  433. __declspec( dllexport ) double TextZuDouble( char *c );
  434. // Konvertiert eine Zeichenkette zu einem Float
  435. // c: Die Zeichenkette, die konvertiert werden soll
  436. // return: Das float, was in der Zeichenkette stand
  437. __declspec( dllexport ) float TextZuFloat( char *c );
  438. // Konvertiert eine Zeichenkette zu einem Double
  439. // c: Die Zeichenkette, die konvertiert werden soll
  440. // c_ende: Wird duch die Funktion gesetzt und darf 0 sein. Ein Zeiger auf das nächste Zeichen nach dem Double in der Zeichenkette
  441. // return: Das double, was in der Zeichenkette stand
  442. __declspec( dllexport ) double TextZuDouble( char *c, char **c_ende );
  443. // Konvertiert eine Zeichenkette zu einem float
  444. // c: Die Zeichenkette, die konvertiert werden soll
  445. // c_ende: Wird duch die Funktion gesetzt und darf 0 sein. Ein Zeiger auf das nächste Zeichen nach dem float in der Zeichenkette
  446. // return: Das float, was in der Zeichenkette stand
  447. __declspec( dllexport ) float TextZuFloat( char *c, char **c_ende );
  448. // Ermittelt die Länge einer bestimmten Zeichenkette
  449. // txt: Die Zeichenkette, deren Länge ermittelt werden soll
  450. // return: Die Länge der Zeichenkette
  451. __declspec( dllexport ) int textLength( const char *txt );
  452. }
  453. #endif