]> git.saurik.com Git - wxWidgets.git/commitdiff
added base parameter to wxString::To[U]Long
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 12 Oct 2001 20:26:48 +0000 (20:26 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 12 Oct 2001 20:26:48 +0000 (20:26 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/wxstring.tex
include/wx/string.h
src/common/string.cpp

index 55ecbe7108ac0e6555ee9d40c1912b054b6c0da7..9b1f85ca85fa2c336f0e1076e58187395f3a4d8b 100644 (file)
@@ -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}
 
index 4f6d342f9e1b32fe44621cea31f945e4cc69eb8b..24a6585e4d790d54c606645b96e40a319ab95199 100644 (file)
@@ -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;
 
index 938d0010dca8e1a1de0b88325d34eda859a7f2e2..c7ce4c3d1cc9e2b6f3a0d49305fa7830081e81b2 100644 (file)
@@ -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