【练习题】编程把INI文件转换成XML文件

;Configuration of http
[http]
domain=www.mysite.com
port=8080
cgihome=/cgi-bin

;Configuration of db
[database]
server = mysql
user = myname
password = toopendatabase

一个配置文件由若干个Section组成,由[]括号括起来的是Section名。每个Section下面有若干个key = value形式的键值对(
Key-value Pair) ,等号两边可以有零个或多个空白字符(空格或Tab),每个键值对占一行。以;号开头的行是注释。每个Section结束时有一个或多个空行,空行是仅包含零个或多个空白字符(空格或Tab)的行。 INI文件的最后一行后面可能有换行符也可能没有。

<!-- Configuration of http -->
<http>
        <domain>www.mysite.com</domain>
        <port>8080</port>
        <cgihome>/cgi-bin</cgihome>
</http>

<!-- Configuration of db -->
<database>
        <server>mysql</server>
        <user>myname</user>
        <password>toopendatabase</password>
</database>

程序:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
	FILE *in, *out;
	char buf[1024];
	char temp[1024] = {'\0'};
	char *key, *value;
	char *ch;
	int i;

	if(argc < 3)
	{
		printf("Usage: name.ini name.xml\n");
		exit(1);
	}

	in = fopen(argv[1],"r");
	if(in == NULL)
	{
		perror("open ini file");
		exit(1);
	}
	out = fopen(argv[2],"w+");
	if(out == NULL)
	{
		perror("open xml file");
		exit(1);
	}

	while(fgets(buf,sizeof(buf),in) != NULL)
	{
		i = 0;
		//skip blank character
		while(buf[i] == '\t' || buf[i] == ' ')
		{
			i++;
			continue;
		}
		ch = strchr(buf+i,'\n');  //去除换行符
		if(ch != NULL)
			*ch = '\0';

		switch(buf[i])
		{
		case ';':
			fprintf(out,"<!-- %s -->\n",&buf[i+1]);
			fprintf(stdout,"<!-- %s -->\n",&buf[i+1]);
			break;
		case '[':
			ch = strchr(buf+i,']');
			if(ch != NULL)
				*ch = '\0';
			fprintf(out,"<%s>\n",&buf[i+1]);
			fprintf(stdout,"<%s>\n",&buf[i+1]);
			strcpy(temp,&buf[i+1]);
			break;
		case '\0':  //空行
			if(strlen(temp) != 0)
			{
				fprintf(out,"</%s>\n",temp);
				fprintf(stdout,"</%s>\n",temp);
			}
			memset(temp,'\0',sizeof(temp));
			fprintf(out,"\n");
			fprintf(stdout,"\n");
			break;
		default:
			key = strtok(&buf[i],"= ");
			value = strtok(NULL,"= ");
			fprintf(out,"\t<%s>%s</%s>\n",key,value,key);
			fprintf(stdout,"\t<%s>%s</%s>\n",key,value,key);
			break;
		}
	}
	if(feof(in) && strlen(temp) != 0)  //如果到了文件尾,写入父节点</>
	{
		fprintf(out,"</%s>",temp);
		fprintf(stdout,"</%s>\n",temp);
	}
	fclose(in);
	fclose(out);

	return 0;
}
时间: 2024-08-12 19:53:09

【练习题】编程把INI文件转换成XML文件的相关文章

c#程序将excel文件转换成xml文件

要程序你自己去组装去,我只写两个部分,一个是读Excel的部分,然后是写入到xml的1) 从指定的excel读出信息string strConn="provider=Microsoft.Jet.OLEDB.4.0;data source=你的Excel文件.xls;Extended Properties=Excel 8.0;";DataSet ds=new DataSet();System.Data.OleDb.OleDbConnection oleConn=new System.Da

在Linux下将HTML文件转换成PDF文件

今天要写一个上交的作业,本来是想用Office Word来写的,但是,我的Office貌似不能用了,但是,Linux下的LibreOffice写出的文档,在打印的时候是经常出现乱码的.所以,后来想到可以 利用HTML写出格式比较好的文档,所以,想到能不能先写出一份比较规范的文档出来,然后转换成PDF文档,因为如果转换成PDF文档,打印,浏览都会比较方便,并且在转换成PDF之后,在打印的时候也不容易出现乱码的现象,经过搜索发现了一个比较不错的html转pdf文件的工具wkhtmltopdf, 在U

如何将一批pdf文件转换成jpg文件

从事设计行业,经常需要从网络上搜集一些图片素材,可是当我们下载的素材是pdf格式的时候,我们该怎么办呢?是不是需要将pdf格式转换成jpg或其它图片格式时才可以加以运用呢?今天小编与大家分享的技巧就是:如何将一批pdf文件转换成jpg文件.    工具/原料  pdf转jpg工具:http://pan.baidu.com/s/1o7ddEcU 方法/步骤  1.首先我们需要从网络上下载一个pdf转jpg工具,同时将它安装在自己的电脑中,并创建快捷方式. 2.双击快捷方式进入工具——选择“pdf图

如何将PDF文件转换成Excel文件,这种方法你绝对没见

PDF文件一直是我们最头疼的文件,这种文件不仅很特殊,而且就连很多公司都不敢使用这种文件,原因就在于这种文件不好编辑,如果想将PDF文件转换成其他格式的文件我们该怎么做呢,下面小编就教大家一个方法! 首先我们要认识一款转换软件--迅捷PDF转换器,很多人肯定都没听说过这种软件,这是一种可以将PDF文件的格式转换成另一种格式的软件,而且转换的速度更加的精准.简单! 打开这款迅捷PDF转换器,在软件的左侧会有很多文件转换的格式,我们选择文件转换成其他格式中的--文件转Excel,然后再点击"添加文件

&lt;p&gt;&lt;span style=&quot;font-size:14px&quot;&gt;近期须要批量将PNM&amp;#26684;式的文件转换成GIF文件。我尝试了例如以下的图像转换工具:&lt;/span&gt;&lt;/p&gt;

近期须要批量将PNM格式的文件转换成GIF文件.我尝试了例如以下的图像转换工具: ImageBatch:全然免费,但只支持PNG JPEG BMP GIF四种格式 OfficeConverter:在线转换软件,支持全部图像格式的相互转换.大量处理图像时须要支付一定费用,否则效率低 Pixillion:支持全部格式,试用版只最多支持5个文件为一组batch的处理,使用100次以后必须付费使用 因为上述工具均不能满足我的须要(不想使用付费软件),我尝试搜索PNM转GIF文件的软件包,发现能够安装Py

pdf转换成word转换器免费版是一款功能强大好用的pdf文件转换成word文件的软件

pdf转换成word转换器免费版是一款功能强大好用的pdf文件转换成word文件的软件,界面简单,功能稳定,支持批量转换,操作起来非常方便,支持多种流行文档格式之间转换.完美支持pdf文件转换成word文档,转换后可再次编辑,支持图文混合排版,支持表格转换,支持批量转换,操作简单.pdf转换成word转换器免费不限页数可以很好的转换原来pdf文档中的文字.图片.表格 .超链接.布局,使其转换成的word文档排版与原有文档一样.pdf转换成word转换器是一款小巧.方便且免费的pdf转Word工具

用Java将Excel的xls和xlsx文件转换成csv文件的方法, XLS2CSV, XLSX2CSV

利用poi将excel文件后缀为.xls .xlsx的文件转换成txt/csv文本文件 首先,引入所需的jar包: <dependencies> 2 <dependency> 3 <groupId>net.sf.opencsv</groupId> 4 <artifactId>opencsv</artifactId> 5 <version>2.1</version> 6 </dependency> 7

如何把excel文件转换成pdf文件

我们经常需要将excel文档转换成pdf文件,这是一种最简单.最方便的方法,视频播放地址:http://v.youku.com/v_show/id_XODM2MTk0NzI0.html

15个最好的PDF转word的在线转换器,将PDF文件转换成doc文件

PDF是一种文件格式,包含文本,图像,数据等,这是独立于操作系统的文件类型.它是一个开放的标准,压缩,另一方面DOC文件和矢量图形是由微软文字处理文件.该文件格式将纯文本格式转换为格式化文档.它支持几乎所有的操作系统. PDF和DOC转换期权具体地址的用户想从PDF数据的完美格式编辑Word文档更新文本和图像传输的转换需要. 有无数的工具和服务提供在线执行用户的转换,在这篇文章中,我们已经编制了一份清单15最好的PDF到DOC转换器将帮助您将您的PDF文件,以在各种不同的格式,如xls,RTF,