<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Colorer-take5 Library: DString Class Reference</title> <link href="../styles/styles.css" rel="stylesheet" type="text/css"> <link href="../styles/doc.css" rel="stylesheet" type="text/css"> <link rel="icon" href="../images/logo-small-api.png"/> </head> <body> <div align='center'> <a href="../index.html">Home</a> | <a href="modules.html">Modules</a> | <a href="hierarchy.html">Class Hierarchy</a> | <a href="classes.html">Alphabetical List</a> | <a href="annotated.html">Compound List</a> | <a href="pages.html">Related Pages</a> </div> <!-- Generated by Doxygen 1.4.6 --> <h1>DString Class Reference<br> <small> [<a class="el" href="group__unicode.html">Unicode core</a>]</small> </h1><!-- doxytag: class="DString" --><!-- doxytag: inherits="String" --><p>Inheritance diagram for DString: <p><center><img src="classDString.png" usemap="#DString_map" border="0" alt=""></center> <map name="DString_map"> <area href="classString.html" alt="String" shape="rect" coords="0,0,54,24"> </map> <hr><a name="_details"></a><h2>Detailed Description</h2> Dynamic string class. <p> Simple unicode wrapper over any other source. <p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="56c02e26903c531d75946661d21b6449"></a><!-- doxytag: member="DString::operator=" ref="56c02e26903c531d75946661d21b6449" args="(const DString &cstring)" --> <a class="el" href="classDString.html">DString</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classDString.html#56c02e26903c531d75946661d21b6449">operator=</a> (const <a class="el" href="classDString.html">DString</a> &cstring)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classString.html">String</a> clone operator. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classDString.html#f03b379efca84ad76cdef0c069986e51">DString</a> (const byte *stream, int size, int def_encoding=-1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates string from byte stream with encoding autodetecting. <a href="#f03b379efca84ad76cdef0c069986e51"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classDString.html#8cfd6f11b87a55a191518b920c80b761">DString</a> (const char *string, int s=0, int l=-1, int encoding=-1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classString.html">String</a> from single-byte character buffer. <a href="#8cfd6f11b87a55a191518b920c80b761"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classDString.html#d413a450d083e1943ea30749c1ee2e80">DString</a> (const wchar *string, int s=0, int l=-1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classString.html">String</a> from unicode two-byte character buffer. <a href="#d413a450d083e1943ea30749c1ee2e80"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classDString.html#72a0f643b64c40d8013c143368f21f6b">DString</a> (const w4char *string, int s=0, int l=-1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classString.html">String</a> from UCS4 four-byte character buffer. <a href="#72a0f643b64c40d8013c143368f21f6b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classDString.html#16e9d5f1b2d0ed487d0806818b755052">DString</a> (const <a class="el" href="classString.html">String</a> *cstring, int s=0, int l=-1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classString.html">String</a> from any <code><a class="el" href="classString.html">String</a></code> implementing interface. <a href="#16e9d5f1b2d0ed487d0806818b755052"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classDString.html#ca9bad59392350cb77111f85aa2e84dc">DString</a> (const <a class="el" href="classString.html">String</a> &cstring, int s=0, int l=-1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classString.html">String</a> from any <code><a class="el" href="classString.html">String</a></code> implementing interface. <a href="#ca9bad59392350cb77111f85aa2e84dc"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="12423620e3014cdd59265705b53033b1"></a><!-- doxytag: member="DString::DString" ref="12423620e3014cdd59265705b53033b1" args="()" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classDString.html#12423620e3014cdd59265705b53033b1">DString</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Empty <a class="el" href="classString.html">String</a>. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="796765475d41fdb3fd9ad57663b986dd"></a><!-- doxytag: member="DString::operator[]" ref="796765475d41fdb3fd9ad57663b986dd" args="(int i) const " --> wchar </td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int i) const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3fe78cd471b9f22c005e1136ab120969"></a><!-- doxytag: member="DString::length" ref="3fe78cd471b9f22c005e1136ab120969" args="() const " --> int </td><td class="memItemRight" valign="bottom"><b>length</b> () const </td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classString.html">String</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classDString.html#97d975691b4b784b8315d168d7c096e2">substring</a> (int s, int l=-1) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Creates Dynamic string as substring of called object. <a href="#97d975691b4b784b8315d168d7c096e2"></a><br></td></tr> <tr><td colspan="2"><br><h2>Protected Types</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><b>EStreamType</b> { <br> <b>ST_CHAR</b> = 0, <b>ST_UTF16</b>, <b>ST_UTF16_BE</b>, <b>ST_CSTRING</b>, <br> <b>ST_UTF8</b>, <b>ST_UTF32</b>, <b>ST_UTF32_BE</b> <br> }</td></tr> <tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3a6e12220a100ee7b11915e36dbbca98"></a><!-- doxytag: member="DString::type" ref="3a6e12220a100ee7b11915e36dbbca98" args="" --> EStreamType </td><td class="memItemRight" valign="bottom"><b>type</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9a573b06dda44ad822084161a8484084"></a><!-- doxytag: member="DString::encodingIdx" ref="9a573b06dda44ad822084161a8484084" args="" --> int </td><td class="memItemRight" valign="bottom"><b>encodingIdx</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3486b1bc50c65139109fad4cb0d73344"></a><!-- doxytag: member="DString::start" ref="3486b1bc50c65139109fad4cb0d73344" args="" --> int </td><td class="memItemRight" valign="bottom"><b>start</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e75d4f0d79a10996d0e2b2f1b8d880f7"></a><!-- doxytag: member="DString::len" ref="e75d4f0d79a10996d0e2b2f1b8d880f7" args="" --> int </td><td class="memItemRight" valign="bottom"><b>len</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="251b1f978802c2c2e4ed99b2085e03c8"></a><!-- doxytag: member="DString::str" ref="251b1f978802c2c2e4ed99b2085e03c8" args="" --> const char * </td><td class="memItemRight" valign="bottom"><b>str</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b6c0b8b438206dd9611d1dd52cc779c5"></a><!-- doxytag: member="DString::wstr" ref="b6c0b8b438206dd9611d1dd52cc779c5" args="" --> const wchar * </td><td class="memItemRight" valign="bottom"><b>wstr</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="32b6a67934acc64df4779960bf4c91ea"></a><!-- doxytag: member="DString::w4str" ref="32b6a67934acc64df4779960bf4c91ea" args="" --> const w4char * </td><td class="memItemRight" valign="bottom"><b>w4str</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a3c96b62371964490654fc149ac91fb7"></a><!-- doxytag: member="DString::cstr" ref="a3c96b62371964490654fc149ac91fb7" args="" --> const <a class="el" href="classString.html">String</a> * </td><td class="memItemRight" valign="bottom"><b>cstr</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8bbd791075693465c427a14ced6c0444"></a><!-- doxytag: member="DString::stream_wstr" ref="8bbd791075693465c427a14ced6c0444" args="" --> wchar * </td><td class="memItemRight" valign="bottom"><b>stream_wstr</b></td></tr> </table> <hr><h2>Constructor & Destructor Documentation</h2> <a class="anchor" name="f03b379efca84ad76cdef0c069986e51"></a><!-- doxytag: member="DString::DString" ref="f03b379efca84ad76cdef0c069986e51" args="(const byte *stream, int size, int def_encoding=-1)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">DString::DString </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const byte * </td> <td class="mdname" nowrap> <em>stream</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>size</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>def_encoding</em> = <code>-1</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Creates string from byte stream with encoding autodetecting. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>stream</em> </td><td>Input raw byte stream, can't be null. </td></tr> <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>Size of input buffer </td></tr> <tr><td valign="top"></td><td valign="top"><em>def_encoding</em> </td><td>Default encoding to be used, if no other variants found. </td></tr> </table> </dl> </td> </tr> </table> <a class="anchor" name="8cfd6f11b87a55a191518b920c80b761"></a><!-- doxytag: member="DString::DString" ref="8cfd6f11b87a55a191518b920c80b761" args="(const char *string, int s=0, int l=-1, int encoding=-1)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">DString::DString </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const char * </td> <td class="mdname" nowrap> <em>string</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>s</em> = <code>0</code>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>l</em> = <code>-1</code>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>encoding</em> = <code>-1</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> <a class="el" href="classString.html">String</a> from single-byte character buffer. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>string</em> </td><td><a class="el" href="classCharacter.html">Character</a> buffer, can't be null. </td></tr> <tr><td valign="top"></td><td valign="top"><em>s</em> </td><td>Start string position. Zero - create from start of buffer. </td></tr> <tr><td valign="top"></td><td valign="top"><em>l</em> </td><td>Length of created string. If -1, autodetects string length with last zero byte. </td></tr> <tr><td valign="top"></td><td valign="top"><em>encoding</em> </td><td>Encoding, to use for char2unicode transformations. If -1, default encoding will be used. </td></tr> </table> </dl> </td> </tr> </table> <a class="anchor" name="d413a450d083e1943ea30749c1ee2e80"></a><!-- doxytag: member="DString::DString" ref="d413a450d083e1943ea30749c1ee2e80" args="(const wchar *string, int s=0, int l=-1)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">DString::DString </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const wchar * </td> <td class="mdname" nowrap> <em>string</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>s</em> = <code>0</code>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>l</em> = <code>-1</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> <a class="el" href="classString.html">String</a> from unicode two-byte character buffer. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>string</em> </td><td>Unicode character buffer, can't be null. </td></tr> <tr><td valign="top"></td><td valign="top"><em>s</em> </td><td>Start string position. Zero - create from start of buffer. </td></tr> <tr><td valign="top"></td><td valign="top"><em>l</em> </td><td>Length of created string. If -1, autodetects string length with last zero char. </td></tr> </table> </dl> </td> </tr> </table> <a class="anchor" name="72a0f643b64c40d8013c143368f21f6b"></a><!-- doxytag: member="DString::DString" ref="72a0f643b64c40d8013c143368f21f6b" args="(const w4char *string, int s=0, int l=-1)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">DString::DString </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const w4char * </td> <td class="mdname" nowrap> <em>string</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>s</em> = <code>0</code>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>l</em> = <code>-1</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> <a class="el" href="classString.html">String</a> from UCS4 four-byte character buffer. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>string</em> </td><td>UCS4 unicode character buffer, can't be null. </td></tr> <tr><td valign="top"></td><td valign="top"><em>s</em> </td><td>Starting string position. Zero - create from start of buffer. </td></tr> <tr><td valign="top"></td><td valign="top"><em>l</em> </td><td>Length of created string. If -1, autodetects string length with last zero char. </td></tr> </table> </dl> </td> </tr> </table> <a class="anchor" name="16e9d5f1b2d0ed487d0806818b755052"></a><!-- doxytag: member="DString::DString" ref="16e9d5f1b2d0ed487d0806818b755052" args="(const String *cstring, int s=0, int l=-1)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">DString::DString </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classString.html">String</a> * </td> <td class="mdname" nowrap> <em>cstring</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>s</em> = <code>0</code>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>l</em> = <code>-1</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> <a class="el" href="classString.html">String</a> from any <code><a class="el" href="classString.html">String</a></code> implementing interface. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>cstring</em> </td><td><a class="el" href="classString.html">String</a> class instance, can't be null. </td></tr> <tr><td valign="top"></td><td valign="top"><em>s</em> </td><td>Starting string position. </td></tr> <tr><td valign="top"></td><td valign="top"><em>l</em> </td><td>Length of created string. If -1, autodetects string length with cstring.length() call. </td></tr> </table> </dl> </td> </tr> </table> <a class="anchor" name="ca9bad59392350cb77111f85aa2e84dc"></a><!-- doxytag: member="DString::DString" ref="ca9bad59392350cb77111f85aa2e84dc" args="(const String &cstring, int s=0, int l=-1)" --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">DString::DString </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classString.html">String</a> & </td> <td class="mdname" nowrap> <em>cstring</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>s</em> = <code>0</code>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>l</em> = <code>-1</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> <a class="el" href="classString.html">String</a> from any <code><a class="el" href="classString.html">String</a></code> implementing interface. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>cstring</em> </td><td><a class="el" href="classString.html">String</a> class instance. </td></tr> <tr><td valign="top"></td><td valign="top"><em>s</em> </td><td>Starting string position. </td></tr> <tr><td valign="top"></td><td valign="top"><em>l</em> </td><td>Length of created string. If -1, autodetects string length with cstring.length() call. </td></tr> </table> </dl> </td> </tr> </table> <hr><h2>Member Function Documentation</h2> <a class="anchor" name="97d975691b4b784b8315d168d7c096e2"></a><!-- doxytag: member="DString::substring" ref="97d975691b4b784b8315d168d7c096e2" args="(int s, int l=-1) const " --><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"><a class="el" href="classString.html">String</a>* DString::substring </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">int </td> <td class="mdname" nowrap> <em>s</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>l</em> = <code>-1</code></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"> const</td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Creates Dynamic string as substring of called object. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>s</em> </td><td>Starting string position. </td></tr> <tr><td valign="top"></td><td valign="top"><em>l</em> </td><td>Length of created string. If -1, creates string till end of current. </td></tr> </table> </dl> </td> </tr> </table> <br><br> <center><small> Colorer-take5 Library. Copyright © 1999-2006 Igor Russkih.<br> Generated at Fri Nov 24 17:13:12 2006 by doxygen 1.4.6. </small><center> </BODY> </HTML>