]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/wxstring.tex
I like if things compile with --enable-unicode + --enable-mediactrl. Code shamelessly...
[wxWidgets.git] / docs / latex / wx / wxstring.tex
index eaccfee1a2930c7af767c5e16eb4ffd5e8383835..1d2cb5ea2bc27ae7d7615243462d484c109f2f60 100644 (file)
@@ -16,6 +16,11 @@ method ({\tt length()} in this case, always the lowercase version) should be
 used as it will ensure smoother transition to {\tt std::string} when wxWidgets
 starts using it instead of wxString.
 
 used as it will ensure smoother transition to {\tt std::string} when wxWidgets
 starts using it instead of wxString.
 
+Also please note that in this manual \texttt{char} is sometimes used instead of 
+\texttt{wxChar} because it hasn't been fully updated yet. Please substitute as
+necessary and refer to the sources in case of a doubt.
+
+
 \wxheading{Derived from}
 
 None
 \wxheading{Derived from}
 
 None
@@ -492,7 +497,7 @@ wxString DeleteAllVowels(const wxString& original)
 
 \end{verbatim}
 
 
 \end{verbatim}
 
-because it will avoid the need of reallocating string memory many times (in case
+because it will avoid the need to reallocate string memory many times (in case
 of long strings). Note that it does not set the maximal length of a string - it
 will still expand if more than {\it nLen} characters are stored in it. Also, it
 does not truncate the existing string (use 
 of long strings). Note that it does not set the maximal length of a string - it
 will still expand if more than {\it nLen} characters are stored in it. Also, it
 does not truncate the existing string (use 
@@ -540,7 +545,7 @@ Returns the empty string if {\it ch} is not found.
 
 \membersection{wxString::c\_str}\label{wxstringcstr}
 
 
 \membersection{wxString::c\_str}\label{wxstringcstr}
 
-\constfunc{const char *}{c\_str}{\void}
+\constfunc{const wxChar *}{c\_str}{\void}
 
 Returns a pointer to the string data ({\tt const char*} in ANSI build,
 {\tt const wchar\_t*} in Unicode build).
 
 Returns a pointer to the string data ({\tt const char*} in ANSI build,
 {\tt const wchar\_t*} in Unicode build).
@@ -560,6 +565,8 @@ See also: \helpref{Empty}{wxstringempty}
 
 \membersection{wxString::Cmp}\label{wxstringcmp}
 
 
 \membersection{wxString::Cmp}\label{wxstringcmp}
 
+\constfunc{int}{Cmp}{\param{const wxString\&}{ s}}
+
 \constfunc{int}{Cmp}{\param{const char*}{ psz}}
 
 Case-sensitive comparison.
 \constfunc{int}{Cmp}{\param{const char*}{ psz}}
 
 Case-sensitive comparison.
@@ -572,6 +579,8 @@ See also \helpref{CmpNoCase}{wxstringcmpnocase}, \helpref{IsSameAs}{wxstringissa
 
 \membersection{wxString::CmpNoCase}\label{wxstringcmpnocase}
 
 
 \membersection{wxString::CmpNoCase}\label{wxstringcmpnocase}
 
+\constfunc{int}{CmpNoCase}{\param{const wxString\&}{ s}}
+
 \constfunc{int}{CmpNoCase}{\param{const char*}{ psz}}
 
 Case-insensitive comparison.
 \constfunc{int}{CmpNoCase}{\param{const char*}{ psz}}
 
 Case-insensitive comparison.
@@ -597,7 +606,7 @@ Case-sensitive comparison. Returns 0 if equal, 1 if greater or -1 if less.
 
 \constfunc{bool}{Contains}{\param{const wxString\&}{ str}}
 
 
 \constfunc{bool}{Contains}{\param{const wxString\&}{ str}}
 
-Returns 1 if target appears anyhere in wxString; else 0.
+Returns 1 if target appears anywhere in wxString; else 0.
 
 \membersection{wxString::Empty}\label{wxstringempty}
 
 
 \membersection{wxString::Empty}\label{wxstringempty}
 
@@ -638,7 +647,7 @@ Same as \helpref{Find}{wxstringfind}.
 Returns string representation suitable for passing to OS' functions for
 file handling. In ANSI build, this is same as \helpref{c\_str}{wxstringcstr}.
 In Unicode build, returned value can be either wide character string
 Returns string representation suitable for passing to OS' functions for
 file handling. In ANSI build, this is same as \helpref{c\_str}{wxstringcstr}.
 In Unicode build, returned value can be either wide character string
-or C string in charset matching the {\tt wxConvFile} object, depending on
+or C string in charset matching the {\tt wxConvFileName} object, depending on
 the OS.
 
 \wxheading{See also}
 the OS.
 
 \wxheading{See also}
@@ -659,7 +668,7 @@ This static function returns the string containing the result of calling
 
 \membersection{wxString::FormatV}\label{wxstringformatv}
 
 
 \membersection{wxString::FormatV}\label{wxstringformatv}
 
-\func{static wxString}{Format}{\param{const wxChar }{*format}, \param{va\_list }{argptr}}
+\func{static wxString}{FormatV}{\param{const wxChar }{*format}, \param{va\_list }{argptr}}
 
 This static function returns the string containing the result of calling 
 \helpref{PrintfV}{wxstringprintfv} with the passed parameters on it.
 
 This static function returns the string containing the result of calling 
 \helpref{PrintfV}{wxstringprintfv} with the passed parameters on it.
@@ -694,7 +703,7 @@ Returns the character at position {\it n} (read-only).
 
 \membersection{wxString::GetData}\label{wxstringgetdata}
 
 
 \membersection{wxString::GetData}\label{wxstringgetdata}
 
-\constfunc{const char*}{GetData}{\void}
+\constfunc{const wxChar*}{GetData}{\void}
 
 wxWidgets compatibility conversion. Returns a constant pointer to the data in the string.
 
 
 wxWidgets compatibility conversion. Returns a constant pointer to the data in the string.
 
@@ -723,16 +732,6 @@ to put the string back into a reasonable state.
 
 Same as \helpref{wxString::Find}{wxstringfind}.
 
 
 Same as \helpref{wxString::Find}{wxstringfind}.
 
-\constfunc{size\_t}{Index}{\param{const char*}{ sz}, \param{bool}{ caseSensitive = true}, \param{bool}{ fromEnd = false}}
-
-Search the element in the array, starting from either side.
-
-If {\it fromEnd} is true, reverse search direction.
-
-If {\bf caseSensitive}, comparison is case sensitive (the default).
-
-Returns the index of the first item matched, or {\tt wxNOT\_FOUND}.
-
 % TODO
 %\membersection{wxString::insert}\label{wxstringinsert}
 % Wrong!
 % TODO
 %\membersection{wxString::insert}\label{wxstringinsert}
 % Wrong!
@@ -774,9 +773,7 @@ caseSensitive is true by default (case matters).
 
 Returns true if strings are equal, false otherwise.
 
 
 Returns true if strings are equal, false otherwise.
 
-See also \helpref{Cmp}{wxstringcmp}, \helpref{CmpNoCase}{wxstringcmpnocase}, \helpref{IsSameAs}{wxstringissameas2}
-
-\membersection{wxString::IsSameAs}\label{wxstringissameas2}
+See also \helpref{Cmp}{wxstringcmp}, \helpref{CmpNoCase}{wxstringcmpnocase}
 
 \constfunc{bool}{IsSameAs}{\param{char}{ c}, \param{bool}{ caseSensitive = true}}
 
 
 \constfunc{bool}{IsSameAs}{\param{char}{ c}, \param{bool}{ caseSensitive = true}}
 
@@ -785,7 +782,7 @@ case-sensitive if {\it caseSensitive} is true (default) or not if it is false.
 
 Returns true if the string is equal to the character, false otherwise.
 
 
 Returns true if the string is equal to the character, false otherwise.
 
-See also \helpref{Cmp}{wxstringcmp}, \helpref{CmpNoCase}{wxstringcmpnocase}, \helpref{IsSameAs}{wxstringissameas}
+See also \helpref{Cmp}{wxstringcmp}, \helpref{CmpNoCase}{wxstringcmpnocase}
 
 \membersection{wxString::IsWord}\label{wxstringisword}
 
 
 \membersection{wxString::IsWord}\label{wxstringisword}
 
@@ -917,7 +914,7 @@ Same as Truncate. Removes the portion from {\it pos} to the end of the string.
 
 \func{wxString\&}{Remove}{\param{size\_t}{ pos}, \param{size\_t}{ len}}
 
 
 \func{wxString\&}{Remove}{\param{size\_t}{ pos}, \param{size\_t}{ len}}
 
-Removes the {\it len} characters from the string, starting at {\it pos}.
+Removes {\it len} characters from the string, starting at {\it pos}.
 
 \membersection{wxString::RemoveLast}\label{wxstringremovelast}
 
 
 \membersection{wxString::RemoveLast}\label{wxstringremovelast}
 
@@ -1045,10 +1042,13 @@ familiar with C) results.
 
 \constfunc{bool}{ToULong}{\param{unsigned long}{ *val}, \param{int }{base = $10$}}
 
 
 \constfunc{bool}{ToULong}{\param{unsigned long}{ *val}, \param{int }{base = $10$}}
 
-Attempts to convert the string to a ansigned integer in base {\it base}.
+Attempts to convert the string to an unsigned integer in base {\it base}.
 Returns {\tt true} on success in which case the number is stored in the
 location pointed to by {\it val} or {\tt false} if the string does not
 Returns {\tt true} on success in which case the number is stored in the
 location pointed to by {\it val} or {\tt false} if the string does not
-represent a valid number in the given base.
+represent a valid number in the given base. Please notice that this function
+behaves in the same way as the standard \texttt{strtoul()} and so it simply
+converts negative numbers to unsigned representation instead of rejecting them
+(e.g. $-1$ is returned as \texttt{ULONG\_MAX}).
 
 See \helpref{wxString::ToLong}{wxstringtolong} for the more detailed
 description of the {\it base} parameter.
 
 See \helpref{wxString::ToLong}{wxstringtolong} for the more detailed
 description of the {\it base} parameter.
@@ -1122,7 +1122,7 @@ The macro wxWX2WCbuf is defined as the correct return type (without const).
 \constfunc{bool}{operator!}{\void}
 
 Empty string is false, so !string will only return true if the string is empty.
 \constfunc{bool}{operator!}{\void}
 
 Empty string is false, so !string will only return true if the string is empty.
-This allows the tests for NULLness of a {\it const char *} pointer and emptyness
+This allows the tests for NULLness of a {\it const char *} pointer and emptiness
 of the string to look the same in the code and makes it easier to port old code
 to wxString.
 
 of the string to look the same in the code and makes it easier to port old code
 to wxString.
 
@@ -1145,8 +1145,8 @@ constructor (see \helpref{wxString constructors}{wxstringconstruct}).
 
 \membersection{wxString::operator $+$}\label{wxstringoperatorplus}
 
 
 \membersection{wxString::operator $+$}\label{wxstringoperatorplus}
 
-Concatenation: all these operators return a new strign equal to the sum of the
-operands.
+Concatenation: all these operators return a new string equal to the
+concatenation of the operands.
 
 \func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
 
 
 \func{wxString}{operator $+$}{\param{const wxString\&}{ x}, \param{const wxString\&}{ y}}
 
@@ -1168,11 +1168,13 @@ Concatenation in place: the argument is appended to the string.
 
 \membersection{wxString::operator []}\label{wxstringoperatorbracket}
 
 
 \membersection{wxString::operator []}\label{wxstringoperatorbracket}
 
-\func{char\&}{operator []}{\param{size\_t}{ i}}
+\func{wxChar\&}{operator []}{\param{size\_t}{ i}}
 
 
-\func{char}{operator []}{\param{size\_t}{ i}}
+\constfunc{wxChar}{operator []}{\param{size\_t}{ i}}
 
 
-\func{char}{operator []}{\param{int}{ i}}
+\func{wxChar\&}{operator []}{\param{int}{ i}}
+
+\constfunc{wxChar}{operator []}{\param{int}{ i}}
 
 Element extraction.
 
 
 Element extraction.
 
@@ -1248,7 +1250,7 @@ These comparisons are case-sensitive.
 \section{\class{wxStringBuffer}}\label{wxstringbuffer}
 
 This tiny class allows to conveniently access the \helpref{wxString}{wxstring} 
 \section{\class{wxStringBuffer}}\label{wxstringbuffer}
 
 This tiny class allows to conveniently access the \helpref{wxString}{wxstring} 
-internal buffer as a writable pointer without any risk to forget to restore
+internal buffer as a writable pointer without any risk of forgetting to restore
 the string to the usable state later.
 
 For example, assuming you have a low-level OS function called 
 the string to the usable state later.
 
 For example, assuming you have a low-level OS function called 
@@ -1264,6 +1266,13 @@ buffer (which must be writable, of course) you might call it like this:
     }
 \end{verbatim}
 
     }
 \end{verbatim}
 
+Note that the exact usage of this depends on whether on not wxUSE\_STL is enabled.  If
+wxUSE\_STL is enabled, wxStringBuffer creates a separate empty character buffer, and
+if wxUSE\_STL is disabled, it uses GetWriteBuf() from wxString, keeping the same buffer
+wxString uses intact.  In other words, relying on wxStringBuffer containing the old 
+wxString data is probably not a good idea if you want to build your program in both
+with and without wxUSE\_STL.
+
 \wxheading{Derived from}
 
 None
 \wxheading{Derived from}
 
 None
@@ -1292,7 +1301,83 @@ Restores the string passed to the constructor to the usable state by calling
 
 \membersection{wxStringBuffer::operator wxChar *}\label{wxstringbufferwxchar}
 
 
 \membersection{wxStringBuffer::operator wxChar *}\label{wxstringbufferwxchar}
 
-\constfunc{wxChar *}{operator wxChar *}{\void}
+\func{wxChar *}{operator wxChar *}{\void}
+
+Returns the writable pointer to a buffer of the size at least equal to the
+length specified in the constructor.
+
+
+
+\section{\class{wxStringBufferLength}}\label{wxstringbufferlength}
+
+This tiny class allows to conveniently access the \helpref{wxString}{wxstring} 
+internal buffer as a writable pointer without any risk of forgetting to restore
+the string to the usable state later, and allows the user to set the internal
+length of the string.
+
+For example, assuming you have a low-level OS function called 
+{\tt int GetMeaningOfLifeAsString(char *)} copying the value in the provided
+buffer (which must be writable, of course), and returning the actual length
+of the string, you might call it like this:
+
+\begin{verbatim}
+    wxString theAnswer;
+    wxStringBuffer theAnswerBuffer(theAnswer, 1024);
+    int nLength = GetMeaningOfLifeAsString(theAnswerBuffer);
+    theAnswerBuffer.SetLength(nLength);
+    if ( theAnswer != "42" )
+    {
+        wxLogError("Something is very wrong!");
+    }
+\end{verbatim}
+
+Note that the exact usage of this depends on whether on not wxUSE\_STL is enabled.  If
+wxUSE\_STL is enabled, wxStringBuffer creates a separate empty character buffer, and
+if wxUSE\_STL is disabled, it uses GetWriteBuf() from wxString, keeping the same buffer
+wxString uses intact.  In other words, relying on wxStringBuffer containing the old 
+wxString data is probably not a good idea if you want to build your program in both
+with and without wxUSE\_STL.
+
+Note that SetLength {\tt must} be called before wxStringBufferLength destructs.
+
+\wxheading{Derived from}
+
+None
+
+\wxheading{Include files}
+
+<wx/string.h>
+
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxStringBufferLength::wxStringBufferLength}\label{wxstringbufferlengthctor}
+
+\func{}{wxStringBufferLength}{\param{const wxString\& }{str}, \param{size\_t }{len}}
+
+Constructs a writable string buffer object associated with the given string
+and containing enough space for at least {\it len} characters. Basically, this
+is equivalent to calling \helpref{GetWriteBuf}{wxstringgetwritebuf} and
+saving the result.
+
+\membersection{wxStringBufferLength::\destruct{wxStringBufferLength}}\label{wxstringbufferlengthdtor}
+
+\func{}{\destruct{wxStringBufferLength}}{\void}
+
+Restores the string passed to the constructor to the usable state by calling 
+\helpref{UngetWriteBuf}{wxstringungetwritebuf} on it.
+
+\membersection{wxStringBufferLength::SetLength}\label{wxstringbufferlengthsetlength}
+
+\func{void}{SetLength}{\param{size\_t }{nLength}}
+
+Sets the internal length of the string referred to by wxStringBufferLength to 
+{\it nLength} characters.
+
+Must be called before wxStringBufferLength destructs.
+
+\membersection{wxStringBufferLength::operator wxChar *}\label{wxstringbufferlengthwxchar}
+
+\func{wxChar *}{operator wxChar *}{\void}
 
 Returns the writable pointer to a buffer of the size at least equal to the
 length specified in the constructor.
 
 Returns the writable pointer to a buffer of the size at least equal to the
 length specified in the constructor.