查看完整版本: [-- QT读取ini中文路径怎么读? --]

QTCN开发网 -> Qt基础编程 -> QT读取ini中文路径怎么读? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

shixingya 2018-02-28 20:40

QT读取ini中文路径怎么读?

config.ini中有如下值

InstallPath=D:\测试路径
怎么能将这个值正确读给QString?



never_forget 2018-03-01 08:28
readLine() ?

fearlazy 2018-03-01 09:37
用QSettings,编码设置为gb2312。    路径用“/”  或者用\\“”

shixingya 2018-03-01 09:42
[attachment=18505]


shixingya 2018-03-01 09:44
shixingya:[图片]
 (2018-03-01 09:42) 

这里INI文件是打包工具生成的 ansi编码格式 且路径是 \ 不是//

青空飞羽 2018-03-01 10:04
    QString filePath = QCoreApplication::applicationDirPath() +
            QDir::separator() + "config.ini";
    QSettings settings(filePath, QSettings::IniFormat);
    settings.setIniCodec("UTF-8");
    settings.beginGroup("Attribute");
    QString installPath = settings.value("InstallPath").toString();
    settings.endGroup();

ini文件必须是UTF-8格式的,且路径分隔符为“\\"或”/“

shixingya 2018-03-01 10:35
   QString path_ini ="D:/config3.ini";
    QFile readFile (path_ini);
    QString strAll="";
    if(readFile.open(QIODevice::ReadOnly))
    {
        QTextStream readStream(&readFile);
        strAll =readStream.readAll();
    }
    readFile.close();
    QFile writeFile(path_ini);
    if(writeFile.open(QIODevice::WriteOnly))
    {
        QTextStream stream(&writeFile);
        QStringList strlist =strAll.split("\r\n");
        for(int i=0; i<strlist.count(); i++)
        {
            QString str=strlist.at(i);
            str.replace("\\","//");
            stream<<str<<"\r\n";
        }
    }
    writeFile.close();



我用以上代码,强行将打包工具生成的ini文件中 “\”替换为“/” 已经解决问题


查看完整版本: [-- QT读取ini中文路径怎么读? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled