1 ////////////////////////////////////////////////////////////////////// 2 // 3 // FILE: dstring.h 4 // Dynamic String class 5 // 6 // Part of: Scid (Shane's Chess Information Database) 7 // Version: 2.2 8 // 9 // Notice: Copyright (c) 2000 Shane Hudson. All rights reserved. 10 // 11 // Author: Shane Hudson (sgh@users.sourceforge.net) 12 // 13 ////////////////////////////////////////////////////////////////////// 14 15 #ifndef SCID_DSTRING_H 16 #define SCID_DSTRING_H 17 18 #include <stdio.h> 19 #include <string> 20 21 class DString { // DEPRECATED 22 std::string s_; 23 24 public: Clear()25 void Clear() { s_.clear(); } 26 Data()27 const char* Data() { return s_.c_str(); } 28 Length(void)29 size_t Length(void) { return s_.size(); } 30 AddChar(char ch)31 void AddChar(char ch) { s_.append(1, ch); } 32 AppendUint(uint i)33 void AppendUint(uint i) { 34 char s[16]; 35 sprintf(s, "%u", i); 36 s_.append(s); 37 } 38 AppendInt(int i)39 void AppendInt(int i) { 40 char s[16]; 41 sprintf(s, "%d", i); 42 s_.append(s); 43 } 44 Append(uint i)45 void Append(uint i) { AppendUint(i); } 46 Append(const char * str)47 void Append(const char* str) { s_.append(str); } 48 49 // To allow convenient appending of multiple strings without resorting 50 // to messy variable-length argument lists, we define DString::Append() 51 // for up to five string arguments, and for up to four arguments where 52 // one is an unsigned integer and the rest are strings. Append(const char * s1,const char * s2)53 void Append(const char* s1, const char* s2) { 54 Append(s1); 55 Append(s2); 56 } Append(const char * s1,uint i2)57 void Append(const char* s1, uint i2) { 58 Append(s1); 59 Append(i2); 60 } Append(uint i1,const char * s2)61 void Append(uint i1, const char* s2) { 62 Append(i1); 63 Append(s2); 64 } Append(const char * s1,const char * s2,const char * s3)65 void Append(const char* s1, const char* s2, const char* s3) { 66 Append(s1); 67 Append(s2); 68 Append(s3); 69 } Append(const char * s1,const char * s2,uint i3)70 void Append(const char* s1, const char* s2, uint i3) { 71 Append(s1); 72 Append(s2); 73 Append(i3); 74 } Append(const char * s1,uint i2,const char * s3)75 void Append(const char* s1, uint i2, const char* s3) { 76 Append(s1); 77 Append(i2); 78 Append(s3); 79 } Append(uint i1,const char * s2,const char * s3)80 void Append(uint i1, const char* s2, const char* s3) { 81 Append(i1); 82 Append(s2); 83 Append(s3); 84 } Append(const char * s1,const char * s2,const char * s3,const char * s4)85 void Append(const char* s1, const char* s2, const char* s3, 86 const char* s4) { 87 Append(s1); 88 Append(s2); 89 Append(s3); 90 Append(s4); 91 } Append(const char * s1,const char * s2,const char * s3,uint i4)92 void Append(const char* s1, const char* s2, const char* s3, uint i4) { 93 Append(s1); 94 Append(s2); 95 Append(s3); 96 Append(i4); 97 } Append(const char * s1,const char * s2,uint i3,const char * s4)98 void Append(const char* s1, const char* s2, uint i3, const char* s4) { 99 Append(s1); 100 Append(s2); 101 Append(i3); 102 Append(s4); 103 } Append(const char * s1,uint i2,const char * s3,const char * s4)104 void Append(const char* s1, uint i2, const char* s3, const char* s4) { 105 Append(s1); 106 Append(i2); 107 Append(s3); 108 Append(s4); 109 } Append(uint i1,const char * s2,const char * s3,const char * s4)110 void Append(uint i1, const char* s2, const char* s3, const char* s4) { 111 Append(i1); 112 Append(s2); 113 Append(s3); 114 Append(s4); 115 } Append(const char * s1,const char * s2,const char * s3,const char * s4,const char * s5)116 void Append(const char* s1, const char* s2, const char* s3, const char* s4, 117 const char* s5) { 118 Append(s1); 119 Append(s2); 120 Append(s3); 121 Append(s4); 122 Append(s5); 123 } 124 }; 125 126 #endif // SCID_DSTRING_H 127