一个将配置文件转换成xml的示例程序
2012-02-22 10:43
393 查看
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char*p;
char buf1[256];
char buf2[256];
char *c;
int len=0;
FILE*fp1,*fp2;
fp1=fopen("z.txt","r");
fp2=fopen("x.xml","w");
while(fgets(buf1,256,fp1)!=NULL)
{
if(buf1[0]=='#')
{
len=strlen(buf1);
buf1[len-1]='\0';
buf1[len-1]='\0';
fprintf(fp2,"<!-----%s----->\n",buf1+1);
}
else if(buf1[0]=='!')
{
len=strlen(buf1);
buf1[len-1]='\0';
strcpy(buf2,buf1);
fprintf(fp2,"<%s>\n",buf1+1);
}
else if(buf1[0]=='\n')
{
fprintf(fp2,"<%s>\n",buf2+1);
}
else
{
len=strlen(buf1);
buf1[len-1]='\0';
p=buf1;
c=strsep(&p,"=");
fprintf(fp2,"<%s>",c);
fflush(fp2);
fprintf(fp2,"%s",p);
fflush(fp2);
fprintf(fp2,"</%s>\n",c);
}
}
return 0;
}
z.txt如下:
[y@YMY C]$ cat z.txt
#config of network
!network
ip=192.168.11.6
port=8000
home-path=/home/admin/
#config of database
!database
server=mySQL
user=admin
password=133432
运行结果:
[y@YMY C]$ gcc b.c
[y@YMY C]$ ./a.out
[y@YMY C]$ cat x.xml
<!-----config of network----->
<network>
<ip>192.168.11.6</ip>
<port>8000</port>
<home-path>/home/admin/</home-path>
<network>
<!-----config of database----->
<database>
<server>mySQL</server>
<user>admin</user>
<password>133432</password>
<database>
[y@YMY C]$
#include<stdlib.h>
#include<string.h>
int main()
{
char*p;
char buf1[256];
char buf2[256];
char *c;
int len=0;
FILE*fp1,*fp2;
fp1=fopen("z.txt","r");
fp2=fopen("x.xml","w");
while(fgets(buf1,256,fp1)!=NULL)
{
if(buf1[0]=='#')
{
len=strlen(buf1);
buf1[len-1]='\0';
buf1[len-1]='\0';
fprintf(fp2,"<!-----%s----->\n",buf1+1);
}
else if(buf1[0]=='!')
{
len=strlen(buf1);
buf1[len-1]='\0';
strcpy(buf2,buf1);
fprintf(fp2,"<%s>\n",buf1+1);
}
else if(buf1[0]=='\n')
{
fprintf(fp2,"<%s>\n",buf2+1);
}
else
{
len=strlen(buf1);
buf1[len-1]='\0';
p=buf1;
c=strsep(&p,"=");
fprintf(fp2,"<%s>",c);
fflush(fp2);
fprintf(fp2,"%s",p);
fflush(fp2);
fprintf(fp2,"</%s>\n",c);
}
}
return 0;
}
z.txt如下:
[y@YMY C]$ cat z.txt
#config of network
!network
ip=192.168.11.6
port=8000
home-path=/home/admin/
#config of database
!database
server=mySQL
user=admin
password=133432
运行结果:
[y@YMY C]$ gcc b.c
[y@YMY C]$ ./a.out
[y@YMY C]$ cat x.xml
<!-----config of network----->
<network>
<ip>192.168.11.6</ip>
<port>8000</port>
<home-path>/home/admin/</home-path>
<network>
<!-----config of database----->
<database>
<server>mySQL</server>
<user>admin</user>
<password>133432</password>
<database>
[y@YMY C]$
相关文章推荐
- c# 将xml解析成一个类,和解析tomcat配置文件示例
- 将所有程序设置XML集中到一个单独XML配置文件的方法:使用appSettings元素的configSource元素
- oracle 时间类型 与java mybatis.xml 文件配置 resultMap 对应时间类型 JsonConfig 转换oracle里的时间类型
- 64位系统 IIS7.0配置.net网站时报错:未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。
- 实现常用的配置文件/初始化文件读取的一个C程序
- 一个spring 基本知识的微博(怎么加载多个xml、多个property文件、aop配置、监视器)
- 一个很详细的web.xml配置文件详解
- java使用dom4j解析xml配置文件实现抽象工厂反射示例
- 关于ssh 框架 applicationContext.xml文件中配置hibernate数据库出现的一个小问题
- 一个典型的Spring的applicationcontext.xml配置文件
- 在环境变量中为Tomcat配置一个java_home Tomcat在启动的时候,有时候不是很好启动,在server.xml文件下多配置几次端口号就行了。
- 一个servlet,多个dwr.xml配置文件
- 多年前写的一个小程序,可把目录下的txt文件转换为html文件
- apk反编译生成程序的源代码和图片、XML配置、语言资源等文件
- 下面是一个将XML转换为JSON的示例,
- Qt编写Android程序中添加XML配置文件
- 一个spring+hibernate开发的小程序的修改(其中配置文件使用的是HibernateSynchronizer插件生成)
- 两台硬件和软件配置完全相同的机器A和B,现在要用系统自带的Copy功能把A上的一个文件,复制到B上。在哪台机器上执行程序,效率更高?
- 64位系统 IIS7.0配置.net网站时报错:未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。
- web.xml 文件中一般包括 servlet, spring, filter, listenr的配置。那么他们是按照一个什么顺序加载呢?