use base 10 by default in wxString::To[U]Long

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14323 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2002-02-20 13:24:19 +00:00
parent a8522481f7
commit 538f35ccf4
3 changed files with 18 additions and 14 deletions

View File

@@ -922,21 +922,20 @@ if the string does not represent such number.
\membersection{wxString::ToLong}\label{wxstringtolong} \membersection{wxString::ToLong}\label{wxstringtolong}
\constfunc{bool}{ToLong}{\param{long}{ *val}, \param{int }{base = $0$}} \constfunc{bool}{ToLong}{\param{long}{ *val}, \param{int }{base = $10$}}
Attempts to convert the string to a signed integer in base {\it base}. Returns 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 {\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 pointed to by {\it val} or {\tt FALSE} if the string does not represent a
valid number in the given base. valid number in the given base.
The default value of {\it base} $0$ is special and means that the usual rules The value of {\it base} must be comprised between $2$ and $36$, inclusive, or
of {\tt C} numbers are applied: if the number starts with {\tt 0x} it is be a special value $0$ which means that the usual rules of {\tt C} numbers are
considered to be in base $16$, if it starts with {\tt 0} - in base $8$ and in applied: if the number starts with {\tt 0x} it is considered to be in base
base $10$ otherwise. Note that you may want to specify the base $10$ explicitly $16$, if it starts with {\tt 0} - in base $8$ and in base $10$ otherwise. Note
if you are parsing the numbers which may have leading zeroes as otherwise the that you may not want to specify the base $0$ if you are parsing the numbers
string {\tt "09"} may not be parsed correctly: it would be understood as an which may have leading zeroes as they can yield unexpected (to the user not
octal number because of the leading zero and the parsing would then fail as familiar with C) results.
{\tt '9'} is not a valid octal digit.
\wxheading{See also} \wxheading{See also}
@@ -945,7 +944,7 @@ octal number because of the leading zero and the parsing would then fail as
\membersection{wxString::ToULong}\label{wxstringtoulong} \membersection{wxString::ToULong}\label{wxstringtoulong}
\constfunc{bool}{ToULong}{\param{unsigned long}{ *val}, \param{int }{base = $0$}} \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 a ansigned integer in base {\it base}.
Returns {\tt TRUE} on success in which case the number is stored in the Returns {\tt TRUE} on success in which case the number is stored in the

View File

@@ -673,12 +673,15 @@ public:
// check if the string contents matches a mask containing '*' and '?' // check if the string contents matches a mask containing '*' and '?'
bool Matches(const wxChar *szMask) const; bool Matches(const wxChar *szMask) const;
// conversion to numbers: all functions return TRUE only if the whole string // conversion to numbers: all functions return TRUE only if the whole
// is a number and put the value of this number into the pointer provided // string is a number and put the value of this number into the pointer
// provided, the base is the numeric base in which the conversion should be
// done and must be comprised between 2 and 36 or be 0 in which case the
// standard C rules apply (leading '0' => octal, "0x" => hex)
// convert to a signed integer // convert to a signed integer
bool ToLong(long *val, int base = 0) const; bool ToLong(long *val, int base = 10) const;
// convert to an unsigned integer // convert to an unsigned integer
bool ToULong(unsigned long *val, int base = 0) const; bool ToULong(unsigned long *val, int base = 10) const;
// convert to a double // convert to a double
bool ToDouble(double *val) const; bool ToDouble(double *val) const;

View File

@@ -1097,6 +1097,7 @@ int wxString::Find(const wxChar *pszSub) const
bool wxString::ToLong(long *val, int base) 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") );
wxASSERT_MSG( !base || (base > 1 && base <= 36), _T("invalid base") );
const wxChar *start = c_str(); const wxChar *start = c_str();
wxChar *end; wxChar *end;
@@ -1110,6 +1111,7 @@ bool wxString::ToLong(long *val, int base) const
bool wxString::ToULong(unsigned long *val, int base) 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") );
wxASSERT_MSG( !base || (base > 1 && base <= 36), _T("invalid base") );
const wxChar *start = c_str(); const wxChar *start = c_str();
wxChar *end; wxChar *end;