将字符串行从.ini文件转换为int32

时间:2016-07-09 11:21:53

标签: c# string hex streamwriter int32

我的程序创建几个字符串十六进制数字并将其保存到我的计算机上的.ini文件中。现在我想将它们转换为int32。在我的.ini文件中,十六进制值以这种方式列出:

  • 02E8ECB4
  • 02E8ECB5
  • 02E8ECE7
  • 02E8EC98

现在我希望将相同.ini文件中的这些值替换为新转换的值,例如:

  • 48819380
  • 48819381
  • 48819431
  • 48819352

这就是我保存价值的方式:

            using (StreamWriter writer = new StreamWriter(@"C:\values.ini", true))
            {
                foreach (string key in values.Keys)
                {
                    if (values[key] != string.Empty)
                        writer.WriteLine("{1}", key, values[key]);
                }

            }

2 个答案:

答案 0 :(得分:0)

如果您关注的是如何解析每个字符串并为每个字符串创建相应的int,您可以尝试以下方法:

int val;
if(int.TryParse(str, System.Globalization.NumberStyles.HexNumber, out val))
{
    // The parsing succeeded, so you can continue with the integer you have 
    // now in val. 
}

其中str是字符串,例如"02E8ECB4"

答案 1 :(得分:0)

使用'int.Parse()将值从十六进制转换为十进制,如下所示:

using (StreamWriter writer = new StreamWriter(@"C:\values.ini", true))
{
    foreach (string key in values.Keys)
    {
        if (values[key] != string.Empty)
        {
            int hex;
            if(int.TryParse(values[key], System.Globalization.NumberStyles.HexNumber, out hex))
            {
                writer.WriteLine("{1}", key, hex);
            }
            else
            {
                //Replace this line with your error handling code.
                writer.WriteLine("Failed to convert {1}", key, values[key]);
            }
        }
    }
}