日期:2014-05-18  浏览次数:21046 次

ini文件font问题
[IndexProperty]
font=[Font: Name=宋体, Size=9, Units=3, GdiCharSet=1, GdiVerticalFont=False] //ini文件

*****************************************************************************

Font FONT = (Font)converter.ConvertFromString(ii.IniReadValue("IndexProperty", "font"));

IniReadValue函数用来读ini文件的font。

*******************************************

系统报错:未处理的异常: System.ArgumentException: “Size=9, Units=3, GdiCharSet=1, GdiVer
ticalFont=False]”的值对于“units”无效。

------解决方案--------------------
老老实实转一遍!-_-!!!
C# code
string s = "[Font: Name=宋体, Size=9, Units=3, GdiCharSet=1, GdiVerticalFont=False]";
System.Text.RegularExpressions.Match match =
    System.Text.RegularExpressions.Regex.Match(s,
        @"^\[Font\: Name\=(?<name>[^,]+), Size=(?<size>\d+), Units=(?<units>\d+), " +
        @"GdiCharSet=(?<charSet>\d+), GdiVerticalFont=(?<verticalFont>\w+)\]");
//Console.WriteLine(match.Result("${name}")); //测试代码
//Console.WriteLine(match.Result("${size}"));
//Console.WriteLine(match.Result("${units}"));
//Console.WriteLine(match.Result("${charSet}"));
//Console.WriteLine(match.Result("${verticalFont}"));
Font FONT = new Font(match.Result("${name}"), 
    float.Parse(match.Result("${size}")),  FontStyle.Regular,
    (GraphicsUnit)int.Parse(match.Result("${units}")),
    byte.Parse(match.Result("${charSet}")),
    bool.Parse(match.Result("${verticalFont}")));