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
This commit is contained in:
Vadim Zeitlin 2001-10-12 20:26:48 +00:00
parent 758bce950b
commit 4eb438cf7c
3 changed files with 26 additions and 14 deletions

View File

@ -922,11 +922,17 @@ if the string does not represent such number.
\membersection{wxString::ToLong}\label{wxstringtolong} \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 Attempts to convert the string to a signed integer in base {\it base}. Returns
(the number is stored in the location pointed to by {\it val}) or FALSE if the {\tt TRUE} on success in which case the number is stored in the location
string does not represent such number. 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} \wxheading{See also}
@ -935,11 +941,17 @@ string does not represent such number.
\membersection{wxString::ToULong}\label{wxstringtoulong} \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 an unsigned integer. Returns TRUE on success Attempts to convert the string to a ansigned integer in base {\it base}.
(the number is stored in the location pointed to by {\it val}) or FALSE if the Returns {\tt TRUE} on success in which case the number is stored in the
string does not represent such number. 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} \wxheading{See also}

View File

@ -689,9 +689,9 @@ public:
// conversion to numbers: all functions return TRUE only if the whole string // 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 // is a number and put the value of this number into the pointer provided
// convert to a signed integer // convert to a signed integer
bool ToLong(long *val) const; bool ToLong(long *val, int base = 0) const;
// convert to an unsigned integer // convert to an unsigned integer
bool ToULong(unsigned long *val) const; bool ToULong(unsigned long *val, int base = 0) const;
// convert to a double // convert to a double
bool ToDouble(double *val) const; bool ToDouble(double *val) const;

View File

@ -1093,26 +1093,26 @@ int wxString::Find(const wxChar *pszSub) const
// conversion to numbers // 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") ); wxCHECK_MSG( val, FALSE, _T("NULL pointer in wxString::ToLong") );
const wxChar *start = c_str(); const wxChar *start = c_str();
wxChar *end; 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 // return TRUE only if scan was stopped by the terminating NUL and if the
// string was not empty to start with // string was not empty to start with
return !*end && (end != start); 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") ); wxCHECK_MSG( val, FALSE, _T("NULL pointer in wxString::ToULong") );
const wxChar *start = c_str(); const wxChar *start = c_str();
wxChar *end; 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 // return TRUE only if scan was stopped by the terminating NUL and if the
// string was not empty to start with // string was not empty to start with