笔记:将test.ini格式的文件转换成test.xml格式的文件

前端之家收集整理的这篇文章主要介绍了笔记:将test.ini格式的文件转换成test.xml格式的文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
#include<stdio.h>
#include<errno.h>
#include<stdlib.h>
#include<string.h>

#defineNOTHING0
#defineLABEL1

voiddelblank(char*str);

intmain(intargc,char*argv[])
{
	charch,temp[50],*chp;
	FILE*dest,*src;
	intflag=NOTHING;
	charlabel[10];
	charsublabel[10];
	if(argc!=3)
	{
		printf("Usage:transcateDest_pathSrc_path\n");
		exit(EXIT_FAILURE);
	}
	if((src=fopen(argv[2],"r"))==NULL)
	{
		perror("Opensrcfile:");
		exit(EXIT_FAILURE);
	}
	if((dest=fopen(argv[1],"w"))==NULL)
	{
		perror("Opendestfile:");
		exit(EXIT_FAILURE);
	}

	while(fgets(temp,sizeof(temp)-1,src))
	{
		if(temp[0]==';')
		{
			temp[strlen(temp)-1]='\0';
			fprintf(dest,"<!--%s-->\n",temp+1);
		}
		elseif(!strcmp(temp,"\n")&&flag==LABEL)
		{
		delblank(temp);
		fprintf(dest,"</%s>\n\n",label);
		flag=NOTHING;
		}
		elseif(temp[0]=='['&&temp[strlen(temp)-2]==']')
		{
			flag=LABEL;
			delblank(temp);
			temp[strlen(temp)-2]='\0';
			strcpy(label,temp+1);
			fprintf(dest,"<%s>\n",temp+1);
		}
		elseif(chp=strchr(temp,'='))
		{
		delblank(temp);
			temp[strlen(temp)-1]='\0';
			strncpy(sublabel,temp,chp-temp);
			sublabel[chp-temp]='\0';
			fprintf(dest,"\t<%s>%s</%s>\n",sublabel,chp+1,sublabel);
		}
	}
	if(flag==LABEL)
		fprintf(dest,"</%s>\n",label);
	fclose(dest);
	fclose(src);

	return0;
}

voiddelblank(char*str)
{
	inti=0,j=0;
	for(;i<strlen(str);i++,j++)
	{
		if(str[i]=='')
			i++;
		str[j]=str[i];
	}
	str[j]='\0';
}

test.ini

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

;Configurationofdb
[database]
server=MysqL
user=myname
password=toopendatabase


test.xml

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

<!--Configurationofdb-->
<database>
<server>MysqL</server>
<user>myname</user>
<password>toopendatabase</password>
</database>

猜你在找的XML相关文章