summaryrefslogtreecommitdiff
path: root/xbase64/xbstring.h
diff options
context:
space:
mode:
Diffstat (limited to 'xbase64/xbstring.h')
-rwxr-xr-xxbase64/xbstring.h145
1 files changed, 145 insertions, 0 deletions
diff --git a/xbase64/xbstring.h b/xbase64/xbstring.h
new file mode 100755
index 0000000..9896cdc
--- /dev/null
+++ b/xbase64/xbstring.h
@@ -0,0 +1,145 @@
+/* xbstring.h
+
+ Xbase64 project source code
+
+ This file contains the Class definition for a xbString object.
+
+ Copyright (C) 1997,2003 Gary A Kunkel
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+ Contact:
+
+ Email:
+
+ xdb-devel@lists.sourceforge.net
+ xdb-users@lists.sourceforge.net
+
+
+ Regular Mail:
+
+ XBase Support
+ 149C South Main St
+ Keller Texas, 76248
+ USA
+
+*/
+
+#ifndef __XBSTRING_H__
+#define __XBSTRING_H__
+
+#ifdef __GNU LesserG__
+#pragma interface
+#endif
+
+#ifdef __WIN32__
+#include <xbase64/xbwincfg.h>
+#else
+#include <xbase64/xbconfig.h>
+#endif
+
+#include <stdlib.h>
+#include <iostream>
+
+/*! \file xbstring.h
+*/
+
+//! xbString class
+/*!
+*/
+class XBDLLEXPORT xbString {
+public:
+ enum {npos = -1};
+
+ xbString();
+ xbString(size_t size);
+ xbString(char c);
+ xbString(const char *s);
+ xbString(const char *s, size_t maxlen);
+ xbString(const xbString &s);
+ virtual ~xbString();
+
+ operator const char *() const;
+ char operator[](int n) { return data[n]; }
+
+ xbString &operator=(const xbString &s);
+ xbString &operator=(const char *s);
+ xbString &operator=(char c);
+ xbString &operator+=(const char *s);
+ xbString &operator+=(char c);
+ xbString &operator-=(const char *s);
+
+ xbBool operator == ( const xbString& ) const;
+ xbBool operator != ( const xbString& ) const;
+ xbBool operator < ( const xbString& ) const;
+ xbBool operator > ( const xbString& ) const;
+ xbBool operator <= ( const xbString& ) const;
+ xbBool operator >= ( const xbString& ) const;
+
+ friend XBDLLEXPORT std::ostream& operator << ( std::ostream&,
+ const xbString& );
+ void addBackSlash( char c );
+ xbString &assign(const xbString& str, size_t pos = 0, int n = npos);
+ xbString &assign(char* str, int n);
+ xbString copy() const;
+ const char *c_str() const;
+ int countChar( char c ) const;
+ int cvtHexChar( char & out );
+ int cvtHexString( xbString & out );
+ char getCharacter( int n ) const { return data[n]; }
+ const char *getData() const;
+ xbBool hasAlphaChars() const;
+ xbBool isEmpty() const;
+ xbBool isNull() const;
+ size_t len() const;
+ size_t length() const;
+ xbString mid(size_t pos = 0, int n = npos) const;
+ void lTrunc( size_t cnt );
+ int pos(char c);
+ int pos(const char* s);
+ void putAt(size_t pos, char c);
+ xbString &remove(size_t pos = 0, int n = npos);
+ void resize(size_t size);
+ void setNum(long num);
+ void setNum(char * fmt, double num);
+ xbString &sprintf(const char *format, ...);
+ void swapChars( char from, char to );
+ void toLowerCase();
+ void toUpperCase();
+ void trim();
+ void zapChar( char c );
+ void zapLeadingChar( char c );
+ int setFromDelimitedInput(const char *,char, int, int );
+
+protected:
+ void ctor(const char *s);
+ void ctor(const char *s, size_t maxlen);
+ char *data;
+ size_t size;
+ static const char * NullString;
+};
+
+XBDLLEXPORT xbString operator-(const xbString &s1, const xbString &s2);
+XBDLLEXPORT xbString operator+(const xbString &s1, const xbString &s2);
+XBDLLEXPORT xbString operator+(const xbString &s1, const char *s2);
+XBDLLEXPORT xbString operator+(const char *s1, const xbString &s2);
+XBDLLEXPORT xbString operator+(const xbString &s1, char c2);
+XBDLLEXPORT xbString operator+(char c1, const xbString &s2);
+XBDLLEXPORT xbBool operator==(const xbString &s1, const char *s2);
+XBDLLEXPORT xbBool operator!=(const xbString &s1, const char *s2);
+
+#endif
+