private uint VersionToNumeric(String ver)
{
uint numeric = 0;
byte part = 0;
Match m = Regex.Match(ver, @"^\s*([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)(\w*)\s*$");
if (m.Success) {
for (int i = 1; i < 5; ++i) {
if (!Byte.TryParse(m.Groups[i].Value, out part)) {
part = 0;
}
numeric = (numeric << 8) | part;
}
}
return numeric;
}