我试图从一个结构如下的文件中读取:
VariableName:14326A6AC
Value:Long
Value:Long
我正在尝试阅读它,如下所示,但我收到格式错误。当我添加十六进制格式(longs格式)时,它们将转换为十进制。有没有办法让它们保持很长时间,所以我不必进行从十进制到十六进制的长时间转换?
public static long returnLineValue(string lineName)
{
var lines = File.ReadLines(filePath);
foreach (var line in lines)
{
if (line != null)
{
char split = ':';
if(line.Contains(lineName))
{
string[] s = line.Split(split);
return Int64.Parse(s[1]);
}
}
}
return 0;
}
答案 0 :(得分:4)
这就是你需要的:
return Convert.ToInt64(s[1], 16)
16是16(十六进制)。此函数从十六进制字符串转换为long。
答案 1 :(得分:0)
您必须在Parse
中允许十六进制值:
...
// The same Parse but with hexadecimals allowed
return Int64.Parse(s[1], NumberStyles.AllowHexSpecifier, CultureInfo.InvariantCulture);
...
如果您想以十六进制格式代表 Int64
,请使用格式:
Int64 value = 255;
String result = value.ToString("X"); // "X" for hexadeimal, capital letters
// "FF"
Console.Write(result);
答案 2 :(得分:0)
试试这个
return Int64.Parse(s[1],System.Globalization.NumberStyles.HexNumber)