问题:QSettings解析失败
ini文件如下:
[System]
name=CPMS with IIoT
by=R.@Campro Precision Machinery Co., Ltd.
gs_sys_id=CAMPRO
gs_cod_csub=C
gs_user_id= user
gs_password= 1111
gs_defaultcodlanguage=CHS
Limit=30
netuse=c:\cpiinetuse.bat
saveaspath=D:\TPSystem
gs_itempath=D:\TPSystem\Item\
gs_macpath=D:\TPSystem\Machine\
gs_temppath=D:\TPSystem\CPSYSTEMTEMP\
gs_qrcode=D:\TPSystem\QrCode
读取失败代码
QSettings settings(“config.ini",QSettings::IniFormat);
settings.value("[System]/gs_itempath").toString();
解析后内容:D:\TPSystem\Item\D:\TPSystem\Machine\D:\TPSystem\CPSYSTEMTEMP\D:\TPSystem\QrCode
原因:ini文件是繁体系统下PB语言生成,可能ini文件编码格式和QSettings不一致
解决:改成用文件读取方式解析数据
QFile file(”config.ini“);
if (file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream in(&file);
while (!in.atEnd()) {
QString line = in.readLine();
if(line.contains("gs_itempath"))
{
QStringList itempaths = line.split("=");
if(itempaths.count()>=2)
{
path = itempaths.at(1);
break;
}
}
}
}