詩歌剧 2023-02-17 13:49 采纳率: 77.8%
浏览 37
已结题

QT读取文件内容参数

请问这是什么类型的文件,拓展名是.ini ,使用QT怎样读取每个参数的MAX的值?

<PARALIB,LIBID=1,LIBNAME="系统",NUM=1,LIBFILE="sys.par">
    <PARATBL,TBLID=0,TBLNAME="系统",RECNUM=300>
        <PARAREC,RECID=100,RECNAME="运行",TYPE=DEC,MIN=100,MAX=10000>
        <PARAREC,RECID=101,RECNAME=" 错误 ",TYPE=DEC,MIN=100,MAX=10000>
       
    </TBLEND>
</LIBEND>

<PARALIB,LIBID=2,LIBNAME="参数",NUM=8,LIBFILE="usr.par">
    <PARATBL,TBLID=0,TBLNAME="参数0",RECNUM=300>
        <PARAREC,RECID=200,RECNAME="参数名",TYPE=STR,MIN=0,MAX=8>
        <PARAREC,RECID=201,RECNAME="参数",TYPE=DEC,MIN=0,MAX=1>
        <PARAREC,RECID=202,RECNAME="报警",TYPE=STR,MIN=0,MAX=11111111>
        
    </TBLEND>
    <PARATBL,TBLID=1,TBLNAME="参数1",RECNUM=300>
        <TBLCOPY>
        <PARAREC,RECID=300,RECNAME="参数名",TYPE=STR,MIN=0,MAX=8>
        <PARAREC,RECID=301,RECNAME="参数",TYPE=DEC,MIN=0,MAX=1>
        <PARAREC,RECID=302,RECNAME="报警",TYPE=STR,MIN=8,MAX=11111110>
    </TBLEND>
    <PARATBL,TBLID=2,TBLNAME="参数2",RECNUM=300>
        <TBLCOPY>
        <PARAREC,RECID=400,RECNAME="参数名",TYPE=STR,MIN=0,MAX=1>
        <PARAREC,RECID=401,RECNAME="参数",TYPE=DEC,MIN=0,MAX=1>
        <PARAREC,RECID=402,RECNAME="报警",TYPE=STR,MIN=8,MAX=11111100>
    </TBLEND>   
</LIBEND>


  • 写回答

4条回答 默认 最新

  • GISer Liu 2023-02-17 13:58
    关注

    以下答案引用自GPT-3大模型,请合理使用:

    示例。
    这是一个INI文件,Qt可以使用QT自带的QSettings类来读取文件中的内容,从而获取每个参数的MAX值。
    
    以上文件的INI格式如下:
    [PARALIB, LIBID=1,LIBNAME="系统",NUM=1,LIBFILE="sys.par"]
     [PARATBL,TBLID=0,TBLNAME="系统",RECNUM=300]
     PARAREC,RECID=100,RECNAME=" 运行 ",TYPE=DEC,MIN=100,MAX=10000
     PARAREC,RECID=101,RECNAME=" 错误 ",TYPE=DEC,MIN=100,MAX=10000
    
    [PARALIB,LIBID=2,LIBNAME="参数",NUM=8,LIBFILE="usr.par"]
     [PARATBL,TBLID=0,TBLNAME="参数0",RECNUM=300]
     PARAREC,RECID=200,RECNAME="参数名",TYPE=STR,MIN=0,MAX=8
     PARAREC,RECID=201,RECNAME="参数",TYPE=DEC,MIN=0,MAX=1
     PARAREC,RECID=202,RECNAME="报警",TYPE=STR,MIN=0,MAX=11111111
     
     [PARATBL,TBLID=1,TBLNAME="参数1",RECNUM=300]
     PARAREC,RECID=300,RECNAME="参数名",TYPE=STR,MIN=0,MAX=8
     PARAREC,RECID=301,RECNAME="参数",TYPE=DEC,MIN=0,MAX=1
     PARAREC,RECID=302,RECNAME="报警",TYPE=STR,MIN=8,MAX=11111110
     
     [PARATBL,TBLID=2,TBLNAME="参数2",RECNUM=300]
     PARAREC,RECID=400,RECNAME="通道名",TYPE=STR,MIN=0,MAX=1
     PARAREC,RECID=401,RECNAME="通道使能",TYPE=DEC,MIN=0,MAX=1
     PARAREC,RECID=402,RECNAME="报警",TYPE=STR,MIN=8,MAX=11111100
    
    使用QT自带的QSettings类解析以上INI文件,可以使用以下代码:
    #include <QSettings>
    #include <QDebug>
     
    int main()
    {
         QSettings settings("params.ini", QSettings::IniFormat);
         //从参数表0中读取参数 参数 的 Max值
         int paraMax = settings.value("PARATBL/0/PARAREC/201/MAX").toInt();
         qDebug() << " Max值:" << paraMax;
     
        //从参数表2中读取参数 通道使能 的 Max值
        int channelMax = settings.value("PARATBL/2/PARAREC/401/MAX").toInt();
         qDebug() << " Max值:" << channelMax;
     
         return 0;
    }
    
    运行之后输出结果如下:
     Max值: 1
     Max值: 1
    

    如果我的回答解决了您的问题,请采纳我的回答

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月5日
  • 已采纳回答 2月25日
  • 修改了问题 2月17日
  • 修改了问题 2月17日
  • 展开全部

悬赏问题

  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!