From: Vadim Zeitlin Date: Fri, 12 Oct 2001 20:26:48 +0000 (+0000) Subject: added base parameter to wxString::To[U]Long X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/4eb438cf7c42d5ceaa60b55048b5d0dc36c3986b added base parameter to wxString::To[U]Long git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/latex/wx/wxstring.tex b/docs/latex/wx/wxstring.tex index 55ecbe7108..9b1f85ca85 100644 --- a/docs/latex/wx/wxstring.tex +++ b/docs/latex/wx/wxstring.tex @@ -922,11 +922,17 @@ if the string does not represent such number. \membersection{wxString::ToLong}\label{wxstringtolong} -\constfunc{bool}{ToLong}{\param{long}{ *val}} +\constfunc{bool}{ToLong}{\param{long}{ *val}, \param{int }{base = 0}} -Attempts to convert the string to a signed integer. Returns TRUE on success -(the number is stored in the location pointed to by {\it val}) or FALSE if the -string does not represent such number. +Attempts to convert the string to a signed 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 represent a +valid number in the given base. + +The default value of {\it base} $0$ is special and means that the usual rules +of {\tt C} numbers are applied: if the number starts with {\tt 0x} it is +considered to be in base $16$, if it starts with {\tt 0} - in base $8$ and in +base $10$ otherwise. \wxheading{See also} @@ -935,11 +941,17 @@ string does not represent such number. \membersection{wxString::ToULong}\label{wxstringtoulong} -\constfunc{bool}{ToULong}{\param{unsigned long}{ *val}} +\constfunc{bool}{ToULong}{\param{unsigned long}{ *val}, \param{int }{base = 0}} + +Attempts to convert the string to a ansigned 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 +represent a valid number in the given base. -Attempts to convert the string to an unsigned integer. Returns TRUE on success -(the number is stored in the location pointed to by {\it val}) or FALSE if the -string does not represent such number. +The default value of {\it base} $0$ is special and means that the usual rules +of {\tt C} numbers are applied: if the number starts with {\tt 0x} it is +considered to be in base $16$, if it starts with {\tt 0} - in base $8$ and in +base $10$ otherwise. \wxheading{See also} diff --git a/include/wx/string.h b/include/wx/string.h index 4f6d342f9e..24a6585e4d 100644 --- a/include/wx/string.h +++ b/include/wx/string.h @@ -689,9 +689,9 @@ public: // conversion to numbers: all functions return TRUE only if the whole string // is a number and put the value of this number into the pointer provided // convert to a signed integer - bool ToLong(long *val) const; + bool ToLong(long *val, int base = 0) const; // convert to an unsigned integer - bool ToULong(unsigned long *val) const; + bool ToULong(unsigned long *val, int base = 0) const; // convert to a double bool ToDouble(double *val) const; diff --git a/src/common/string.cpp b/src/common/string.cpp index 938d0010dc..c7ce4c3d1c 100644 --- a/src/common/string.cpp +++ b/src/common/string.cpp @@ -1093,26 +1093,26 @@ int wxString::Find(const wxChar *pszSub) const // conversion to numbers // ---------------------------------------------------------------------------- -bool wxString::ToLong(long *val) const +bool wxString::ToLong(long *val, int base) const { wxCHECK_MSG( val, FALSE, _T("NULL pointer in wxString::ToLong") ); const wxChar *start = c_str(); wxChar *end; - *val = wxStrtol(start, &end, 10); + *val = wxStrtol(start, &end, base); // return TRUE only if scan was stopped by the terminating NUL and if the // string was not empty to start with return !*end && (end != start); } -bool wxString::ToULong(unsigned long *val) const +bool wxString::ToULong(unsigned long *val, int base) const { wxCHECK_MSG( val, FALSE, _T("NULL pointer in wxString::ToULong") ); const wxChar *start = c_str(); wxChar *end; - *val = wxStrtoul(start, &end, 10); + *val = wxStrtoul(start, &end, base); // return TRUE only if scan was stopped by the terminating NUL and if the // string was not empty to start with