龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC开发多语言界面支持的简单方法(3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
读取语言包配置信息: BOOL CIniFile::GetSectionValues(CString Section, CStringArray strItemBuf, CStringArray strValueBuf) { BOOL bRead = FALSE; ReadIniFile();//打开文件 if(bFileExist == FA
读取语言包配置信息:

BOOL CIniFile::GetSectionValues(CString Section, CStringArray &strItemBuf, CStringArray &strValueBuf)
{
    BOOL bRead = FALSE;
    ReadIniFile();//打开文件

    if(bFileExist == FALSE || FileContainer.GetSize() < 0)
        return bRead;//文件打开出错或文件为空,返回默认值

    int i = 0;
    int iFileLines = FileContainer.GetSize();
    CString strline,str;

    while(i<iFileLines)
    {
        strline = FileContainer.GetAt(i++);

        strline.TrimLeft();
        if(strline.GetLength()<=0)
            continue;    //跳过空行
        if(strline.Left(2)=="//")
            continue;    //跳过注释行
        if(strline.GetAt(0)=='[')//查找Section,第一个必须为[
        {
            str=strline.Left(strline.Find("]"));//去掉]右边
            str=str.Right(str.GetLength()-str.Find("[")-1);//去掉[左边

            str.TrimLeft();
            str.TrimRight();

            if(Section == str)//找到Section
            {
                while(i<iFileLines)
                {
                    strline = FileContainer.GetAt(i++);
                    strline.TrimLeft();
                    if(strline.GetLength()<=0)
                        continue;    //跳过空行
                    if(strline.GetAt(0)=='[')
                        return bRead;//如果到达下一个[],即找不到,返回默认值
                    if(strline.Left(2)=="//")
                        continue;    //跳过注释行

                    str = strline.Left(strline.Find("="));//去掉=右边
                    str.TrimLeft();
                    str.TrimRight();
                    //保存等号左边项
                    strItemBuf.Add(str);

精彩图集

赞助商链接