Interpret numeric values as being hexadecimal values if they contain hex digits a-f

svn path=/trunk/; revision=13612
This commit is contained in:
Casper Hornstrup 2005-02-16 23:17:17 +00:00
parent 8bab7189cb
commit a1c0271111

View file

@ -7,13 +7,43 @@ namespace TechBot.Library
{
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);