詩歌剧 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 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法