1 /*2  * FILE: p670_convert.c3  * DATE: 201801254  * ==============5  * DESCRIPTION: 将.ini配置文件转换为.xml文件6  * fgets, fputs, DEBUG(format, ...)调试, strtok切割字符串, 7  */8 9 #include <stdio.h>10 #include <string.h>11 12 #define DEBUG(format, ...) printf("FILE: "__FILE__", LINE: %d: "format"\n", __LINE__, ##__VA_ARGS__)13 #define BUFFSIZE 6414 15 int main(int argc, char *argv[])16 {17         FILE *fp_src, *fp_dest;18         char buf[BUFFSIZE];19         char buf_out[BUFFSIZE];20         char head[16];21         char filename[16];22         int len;23 24         if(argc != 2)25                 DEBUG("Usage: ./buld filename");26 27         // 校验文件扩展名是否为.ini 配置文件    28         len = strlen(argv[1]);29         if(strcmp(argv[1]+len-3, "ini") != 0)30                 DEBUG("source file format error");31 32         fp_src = fopen(argv[1], "r");   // fopen 配置文件33 34         // 将.ini配置文件的扩展名改为.xml35         strcpy(filename, argv[1]);36         strcpy(&filename[len-3], "xml");37 38         // fopen .xml文件,若不存在则创建39         fp_dest = fopen(filename, "w");40         // 顺序读取每一行41         while(fgets(buf, BUFFSIZE, fp_src) != NULL)42         {43                 len = strlen(buf);44                 buf[len-1] = '\0';45                 // 配置信息头46                 if(buf[0] == '#')47                         sprintf(buf_out, "<!-- %s -->\n", buf);48                 else if(buf[0] == '!')49                 {50                         sprintf(buf_out, "<%s>\n", buf+1);51                         strcpy(head, buf+1);    // 复制一份用于后面输出</head>52                 }53                 else if(buf[0] == '\0')54                         sprintf(buf_out, "</%s>\n\n", head);55                 else56                 {       // strtok 切割字符串并返回首地址57                         char *p = strtok(buf, "=");58                         // strtok第一次调用时需传入字符串首地址,此后传入NULL59                         p = strtok(NULL, "=");60                         sprintf(buf_out, "\t<%s>%s</%s>\n", buf, p, buf);61                 }62                 fputs(buf_out, fp_dest);        // fputs 输出63         }64         fclose(fp_src); // fclose 关闭文件流65         fclose(fp_dest);66         return 0;67 }

将.ini配置文件转换为.xml文件格式相关推荐

  1. C/C++ ini配置文件的格式及如何读写ini配置文件

    一.ini配置文件的格式 为什么要用INI文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序 ...

  2. .ini配置文件书写格式(转)

    为什么要用INI文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序出厂后还能根据需要进行必要 ...

  3. ini配置文件格式及用Python读写ini配置文件

    1 ini配置文件介绍 1.1 概念 INI文件格式是某些平台或软件的配置文件,常用于windows操作系统 INI是英文"初始化"(initialization)的缩写.INI文 ...

  4. Qt读取三种文件,ini配置文件,JSON文件,和xml文件

    第一种读取INI配置文件 INI文件内容如下: [conn] ip=127.0.0.1 port=8080 databaseversion=QSQLITE databasename=student u ...

  5. c读取ini配置文件_Go-INI - 超赞的Go语言INI文件操作库

    INI 文件(Initialization File)是十分常用的配置文件格式,其由节(section).键(key)和值(value)组成,编写方便,表达性强,并能实现基本的配置分组功能,被各类软件 ...

  6. QT中如何读写ini配置文件

    本文首发于「3D视觉工坊」知识星球. 如图1所示,我们需要在QT界面中实现手动读取参数存放的位置,那么我们该如何做呢? 方法:读取ini格式的配置文件,实现路径的写入与读取. 第一步:界面构造函数中, ...

  7. Tomcat(二):tomcat配置文件server.xml详解和部署简介

    1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务,因为是入门示例,所以设置极其简单,只需修改$CATALINA_HOME/conf/server.xml文件为如下内容即可 ...

  8. JSON数据格式:以及XML文件格式,YML文件格式,properties文件格式

    JSON数据格式:以及XML文件格式,YML文件格式,properties文件格式 数据格式: json数据格式:属于轻量级数据格式,是javascript的一种描述数据的格式.具有易于解析,语法简单 ...

  9. HarmonyOS之将SVG文件转换为XML文件

    SVG(Scalable Vector Graphics)可缩放矢量图形,是一种图像文件格式.目前由于 HarmonyOS 图形渲染引擎不支持 SVG 格式图片的渲染,开发者需要将 SVG 格式的图片 ...

最新文章

  1. 西安邮电大学计算机学院系主任,西安邮电大学计算机学院
  2. 【11】nvjdc不能用以后另一种jd ck获取办法
  3. 5G NR 频率 带宽 栅格
  4. 解压版本的tomcat服务安装
  5. java大批量数据导入(MySQL)
  6. 记一次 JAVA 的内存泄露分析
  7. Flutter仿美团应用开发笔记-入门篇
  8. 批处理计算n天前\后的日期
  9. idea集成SVN后查看当前文件修改的历史版本
  10. 深入浅出Mysql(一)
  11. win10默认壁纸_Win10系统待机锁频壁纸怎么提取?
  12. web服务器主机头文件,在Win2k下建立虚拟Web主机
  13. python 画图自定义x轴刻度值
  14. 【日志】学习笔记之看图玩转LTM
  15. QQ空间最新免费个人形象设置方法
  16. 吴恩达机器学习ex2:逻辑回归
  17. 二分图最大匹配—匈牙利算法
  18. 什么样的企业是负责任的企业?
  19. 熬夜整理两万字Python知识点
  20. 每个人都是从零开始,分享牛逼的前端工程师的牛逼学习方法

热门文章

  1. 我的世界java手机_我的世界java手机版
  2. 非正弦信号发生器的组成和分析方法
  3. MNE库读取gdf数据文件
  4. 美国防部利用人工智能和云网络提前预判对手行动
  5. 聊天室 1.0 (TCP协议)客户端
  6. ubuntu下实现PCMCIA接口的CDMA无线卡上网
  7. Drosophila Activity Monitoring System(DAMS)果蝇行为监测系统数据分析
  8. Camera保存的图片在Gallery2中找不到
  9. Web程序设计——基本操作
  10. chrome 导出 书签_如何导出Google Chrome书签?