Interpret numeric values as being hexadecimal values if they contain hex
digits a-f
Modified: trunk/irc/TechBot/TechBot.Library/NumberParser.cs
_____
Modified: trunk/irc/TechBot/TechBot.Library/NumberParser.cs
--- trunk/irc/TechBot/TechBot.Library/NumberParser.cs 2005-02-16
23:08:04 UTC (rev 13611)
+++ trunk/irc/TechBot/TechBot.Library/NumberParser.cs 2005-02-16
23:17:17 UTC (rev 13612)
@@ -7,13 +7,43 @@
{
public bool Error = false;
+ private const string SpecialHexCharacters = "ABCDEF";
+
+ private bool IsSpecialHexCharacter(char ch)
+ {
+ foreach (char specialChar in
SpecialHexCharacters)
+ {
+ if (ch.ToString().ToUpper() ==
specialChar.ToString())
+ return true;
+ }
+ return false;
+ }
+
+ private bool HasSpecialHexCharacters(string s)
+ {
+ foreach (char ch in s)
+ {
+ if (IsSpecialHexCharacter(ch))
+ return true;
+ }
+ return false;
+ }
+
public long Parse(string s)
{
try
{
Error = false;
+ bool useHex = false;
if (s.StartsWith("0x"))
- return
Int64.Parse(s.Substring(2),
+ {
+ s = s.Substring(2);
+ useHex = true;
+ }
+ if (HasSpecialHexCharacters(s))
+ useHex = true;
+ if (useHex)
+ return Int64.Parse(s,
NumberStyles.HexNumber);
else
return Int64.Parse(s);
Show replies by date