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

Convert string lines from a .ini file to int32

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

现在我想将同一个 .ini 文件中的这些值替换为新的转换值,例如:

这就是我保存值的方式:

            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]);
                }

            }

如果您关心的是如何解析每个字符串并为每个字符串创建相应的 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".

使用' 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]);
            }
        }
    }
}