{\r
public bool Error = false;\r
\r
+ private const string SpecialHexCharacters = "ABCDEF";\r
+\r
+ private bool IsSpecialHexCharacter(char ch)\r
+ {\r
+ foreach (char specialChar in SpecialHexCharacters)\r
+ {\r
+ if (ch.ToString().ToUpper() == specialChar.ToString())\r
+ return true;\r
+ }\r
+ return false;\r
+ }\r
+\r
+ private bool HasSpecialHexCharacters(string s)\r
+ {\r
+ foreach (char ch in s)\r
+ {\r
+ if (IsSpecialHexCharacter(ch))\r
+ return true;\r
+ }\r
+ return false;\r
+ }\r
+ \r
public long Parse(string s)\r
{\r
try\r
{\r
Error = false;\r
+ bool useHex = false;\r
if (s.StartsWith("0x"))\r
- return Int64.Parse(s.Substring(2),\r
+ {\r
+ s = s.Substring(2);\r
+ useHex = true;\r
+ }\r
+ if (HasSpecialHexCharacters(s))\r
+ useHex = true;\r
+ if (useHex)\r
+ return Int64.Parse(s,\r
NumberStyles.HexNumber);\r
else\r
return Int64.Parse(s);\r