C# 将字符串行从.ini文件转换为int32
我的程序创建两个字符串十六进制数,并将其保存到计算机上的.ini文件中。现在我想把它们转换成int32。在my.ini文件中,十六进制值按如下方式列出:C# 将字符串行从.ini文件转换为int32,c#,string,hex,streamwriter,int32,C#,String,Hex,Streamwriter,Int32,我的程序创建两个字符串十六进制数,并将其保存到计算机上的.ini文件中。现在我想把它们转换成int32。在my.ini文件中,十六进制值按如下方式列出: 02E8ECB4 02E8ECB5 02E8ECE7 02E8EC98 现在我希望用新的转换值替换同一.ini文件中的这些值,如: 48819380 48819381 48819431 48819352 这就是我保存值的方式: using (StreamWriter writer = new StreamWrit
- 02E8ECB4
- 02E8ECB5
- 02E8ECE7
- 02E8EC98
- 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]);
}
}
如果您关心的是如何解析这些字符串中的每一个并为它们创建相应的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]);
}
}
}
}
什么是价值观?如何定义和加载?您的WriteLine错误,有两个参数,但只有一个占位符{1}用于最后一个参数。但是你的问题缺少最重要的东西。你的问题是什么?