加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 22:57:51 所属栏目:百科 来源:网络整理
导读:#includestdio.h#includeerrno.h#includestdlib.h#includestring.h#defineNOTHING0#defineLABEL1voiddelblank(char*str);intmain(intargc,char*argv[]){charch,temp[50],*chp;FILE*dest,*src;intflag=NOTHING;charlabel[10];charsublabel[10];if(argc!=3){pr
#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_pathn");
		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]='';
			fprintf(dest,"<!--%s-->n",temp+1);
		}
		elseif(!strcmp(temp,"n")&&flag==LABEL)
		{
		delblank(temp);
		fprintf(dest,"</%s>nn",label);
		flag=NOTHING;
		}
		elseif(temp[0]=='['&&temp[strlen(temp)-2]==']')
		{
			flag=LABEL;
			delblank(temp);
			temp[strlen(temp)-2]='';
			strcpy(label,temp+1);
			fprintf(dest,"<%s>n",temp+1);
		}
		elseif(chp=strchr(temp,'='))
		{
		delblank(temp);
			temp[strlen(temp)-1]='';
			strncpy(sublabel,temp,chp-temp);
			sublabel[chp-temp]='';
			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]='';
}

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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读