ITPub博客

首页 > > > C语言读写配置文件--转载

C语言读写配置文件--转载

作者:zhmw 时间:2019-12-19 20:46:54 0 删除 编辑

[1].[代码] CException.h 跳至 [1] [2] [3]/************************************************************************//* make0000@msn.com *//************************************************************************//************************************************************************/#include "stdio.h"

#include "conio.h"

#include "signal.h"

#include "setjmp.h"#include "assert.h"#ifdef __cplusplus

#include "iostream"

#include "exception"extern"C"{

#definedllexport __declspec(dllexport) jmp_buf Jmp_Buf;

int E;

#defineException 0x00000#definee Exception#definetry if(!(E=setjmp(Jmp_Buf)))#definelast_error() E#definecatch(val) else#definethrow(val) longjmp(Jmp_Buf,val)#definecheck(expersion) assert(expersion)#defineGetError() errno dllexport voidsig_usr(int);

dllexport char* getTime();

} #else#definedllexport __declspec(dllexport) jmp_buf Jmp_Buf;

int E;

#defineException 0x00000#definee Exception34#definetry if(!(E=setjmp(Jmp_Buf)))35#definelast_error() E36#definecatch(val) else#definethrow(val) longjmp(Jmp_Buf,val)#definecheck(expersion) assert(expersion)#defineGetError() errno dllexport voidsig_usr(int);

dllexport char* getTime(); #endif[2].[代码] File.h 跳至 [1] [2] [3]

#include #include #include #include #defineSIZE 128#include "CException.h"#defineexport __declspec(dllexport)//读取配置文件.intread_file(char* filename,char* key,char* value);//写配置文件.intwrite_file(char* filename,char* key,char* value);//释放文件.int release();//写入节.intwrite_section(char* filename,char* section);intread_section(char* filename);intgetAuthor(char* value);voidgetVersion(char* value);

[3].[代码] File.c 跳至 [1] [2] [3]

#include "File.h"#include intread_file(char* filename,char* key,char* value)

{

intflag=;

char buffer[SIZE];

FILE *file=fopen(filename,"r");

try {

if(file==NULL)

{

flag=;

throw(flag);

}

else {

while(fgets(buffer,SIZE,file)!=NULL)

{

inti=,j=,len=strlen(key);

while(buffer[i]!='\') {

if(buffer[i]=='$'&&buffer[i+len+]=='=')

{

j=i+len+;

while(buffer[j]!='\'&&buffer[j]!=';') {

inth=;

if(buffer[i+]==key[i])

{

//printf("%c",buffer[j]); value[j-i-len-]=buffer[j];

}

j++;

}

break;

}

elseif(buffer[i]=='/'&&buffer[i+]=='/'||buffer[i]==';')

{

break;

//comment }

i++;

}

}

}

}

catch(Exception)

{

flag=;

fclose(file);

printf("can't open file %s",filename);

exit();

}

fflush(file);

fclose(file);

return flag;

}

intwrite_file(char* filename,char* key,char* value)

{

intflag=;

FILE* file;

file=fopen(filename,"a");

try {

if(file==NULL)

{

flag=;

throw(flag);

}

fprintf(file,"$%s=%s\n",key,value);

}

catch(Exception)

{

printf("Can't write file %s",filename);

exit();

}

fflush(file);

fclose(file);

return flag;

}

intwrite_section(char* filename,char* section)

{

intflag=;

FILE* file=NULL;

try {

file=fopen(filename,"a");

if(file!=NULL)

{

fprintf(file,"[%s]\n",section);

}

else {

intflag=;

throw(flag);

}

}

catch(Exception)

{

printf("can't open file %s",filename);

exit();

}

fflush(file);

fclose(file);

return flag;

}int release()

{

intflag=;

return flag;

}intread_section(char* filename)

{

return ;

}intgetAuthor(char* value)

{

charauthor[]="武汉软件工程职业学院计算机应用系孟德军";

inti=;

for(i=;i

{

value[i]=author[i];

}

return ;

}voidgetVersion(char* value)

{

charversion[]="////";

inti=;

for(i=;i

{

value[i]=version[i];

}

}/**************************************************************************

void main()

{

char* str=NULL;

char author[];

char buffer[];

char buffer[];

char buffer[];

read_file("F:\\exercise\\C++!C\\sys.ini","password",buffer);

read_file("F:\\exercise\\C++!C\\sys.ini","username",buffer);

read_file("F:\\exercise\\C++!C\\sys.ini","driver",buffer);

printf("password=%s\n",buffer);

printf("\n");

printf("username=%s\n",buffer);

printf("\n");

printf("driver=%s\n",buffer);

getAuthor(author);

printf("\n");

printf("author=%s",author);

release();

}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69901620/viewspace-3141294/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-12-04

  • 博文量
    295
  • 访问量
    9529