`
mengdejun
  • 浏览: 408844 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

c语言读写配置文件

 
阅读更多

CException.h
/************************************************************************/
/*
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;
#define Exception 0x00000
#define e Exception
#define try if(!(E=setjmp(Jmp_Buf)))
#define last_error() E
#define catch(val) else
#define throw(val) longjmp(Jmp_Buf,val)
#define check(expersion) assert(expersion)
#defineGetError() errno
dllexport void sig_usr(int);
dllexport char* getTime();
}
#else
#definedllexport __declspec(dllexport)
jmp_buf Jmp_Buf;
int E;
#define Exception 0x00000
#define e Exception
#define try if(!(E=setjmp(Jmp_Buf)))
#define last_error() E
#define catch(val) else
#define throw(val) longjmp(Jmp_Buf,val)
#define check(expersion) assert(expersion)
#defineGetError() errno
dllexport void sig_usr(int);
dllexport char* getTime();

#endif


File.h
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#define SIZE 128
#include "CException.h"
#define export __declspec(dllexport)
//读取配置文件.
int read_file(char* filename,char* key,char* value);
//写配置文件.
int write_file(char* filename,char* key,char* value);
//释放文件.
int release();
//写入节.
int write_section(char* filename,char* section);
int read_section(char* filename);
int getAuthor(char* value);
void getVersion(char* value);

File.c
#include "File.h"
#include <string.h>

int read_file(char* filename,char* key,char* value)
{
int flag=0;
char buffer[SIZE];
FILE *file=fopen(filename,"r");
try
{
if(file==NULL)
{
flag=1;
throw(flag);
}
else
{
while(fgets(buffer,SIZE,file)!=NULL)
{
int i=0,j=0,len=strlen(key);
while(buffer[i]!='/0')
{
if(buffer[i]=='$'&&buffer[i+len+1]=='=')
{
j=i+len+2;
while(buffer[j]!='/0'&&buffer[j]!=';')
{
int h=0;
if(buffer[i+1]==key[i])
{
//printf("%c",buffer[j]);
value[j-i-len-2]=buffer[j];
}
j++;
}
break;
}
else if(buffer[i]=='/'&&buffer[i+1]=='/'||buffer[i]==';')
{
break;
//comment
}


i++;
}
}
}
}
catch(Exception)
{
flag=2;
fclose(file);
printf("can't open file %s",filename);
exit(1);
}
fflush(file);
fclose(file);
return flag;

}

int write_file(char* filename,char* key,char* value)
{
int flag=0;
FILE* file;
file=fopen(filename,"a");
try
{
if(file==NULL)
{
flag=1;
throw(flag);
}
fprintf(file,"$%s=%s/n",key,value);
}
catch(Exception)
{
printf("Can't write file %s",filename);
exit(1);
}
fflush(file);
fclose(file);
return flag;
}

int write_section(char* filename,char* section)
{
int flag=0;
FILE* file=NULL;
try
{
file=fopen(filename,"a");
if(file!=NULL)
{
fprintf(file,"[%s]/n",section);
}
else
{
int flag=1;
throw(flag);
}
}
catch(Exception)
{
printf("can't open file %s",filename);
exit(0);
}
fflush(file);
fclose(file);
return flag;
}
int release()
{
int flag=1;
return flag;
}
int read_section(char* filename)
{
return 0;
}
int getAuthor(char* value)
{
char author[128]="武汉软件工程职业学院计算机应用系孟德军";
int i=0;
for(i=0;i<strlen(author);i++)
{
value[i]=author[i];
}
return 0;
}
void getVersion(char* value)
{
char version[128]="2009//05//01";
int i=0;
for(i=0;i<strlen(version);i++)
{
value[i]=version[i];
}

}
/**************************************************************************
void main()
{
char* str=NULL;
char author[120];
char buffer[128];
char buffer1[128];
char buffer2[128];
read_file("F://exercise//C++!C//sys.ini","password",buffer);
read_file("F://exercise//C++!C//sys.ini","username",buffer1);
read_file("F://exercise//C++!C//sys.ini","driver",buffer2);
printf("password=%s/n",buffer);
printf("/n");
printf("username=%s/n",buffer1);
printf("/n");
printf("driver=%s/n",buffer2);
getAuthor(author);
printf("/n");
printf("author=%s",author);
release();
}
****************************************************************************/



分享到:
评论

相关推荐

    C语言读写配置文件

    这篇博客“C语言读写配置文件”将深入探讨如何在C语言中实现这个功能。 配置文件通常是文本文件,如.ini或.cfg文件,它们包含键值对,用于存储应用程序的设置。C语言没有内置的库函数来直接处理这些文件,但我们...

    C语言实现读写配置文件

    用纯C语言实现配置文件的读写函数,可代替WritePrivateProfileString和GetPrivateProfileString函数. 

    纯C语言读写ini配置文件

    标题 "纯C语言读写ini配置文件" 描述的是一个使用C语言编写的程序,能够处理常见的ini配置文件。ini文件是一种简单的文本格式,通常用于存储应用程序的设置和配置信息。这种格式易于阅读和编辑,适合小型应用或系统...

    C语言读写配置文件代码PDF

    MFC读写ini配置文件 1.新建头文件如:iniFunc.h,在编辑区域粘贴以下内容: // iniFunc.h: interface for the Cini class. #if !defined(AFX_OPINI_H_CE3F8B7B_1ACA_46CC_A91C_F8E23FA9B063_INCLUDED #define AFX_...

    Linux C语言的配置文件操作库

    它允许开发者以结构化的方式读写配置文件,提供了易于使用的API接口,包括配置文件的读取、写入、遍历以及键值对的修改等功能。 3. **inih库**:inih是一个小型、简单的C语言库,专门处理INI格式的配置文件。它的...

    C语言读写配置文件的方法

    在C语言中,读写配置文件是常见的...总结来说,C语言读写配置文件的方法主要包括解析INI格式的文本,查找和修改键值对,以及处理文件I/O操作。通过定义适当的函数和宏,可以构建一个高效且易于使用的配置文件处理模块。

    linux配置文件读写好用的类

    为了简化这个过程,开发者通常会创建一个自定义的库或者封装一个类,提供更高级别的接口来读写配置文件。这样的类可能包含解析不同格式配置文件的方法,如`parseINI()`, `parseXML()`, `parseJSON()`等,并且提供...

    用c语言实现配置文件读写

    用c语言实现配置文件读写,完整的函数,适当的注释,值得的参考!

    C语言实现的读写配置文件函数,与Windows API函数功能一样

    本篇将详细介绍如何使用C语言来实现一个类似Windows API功能的配置文件读写函数,以及这些函数的工作原理和实现细节。 配置文件(如.ini文件)常用于存储应用程序的设置和参数,方便程序在启动时读取,运行时修改或...

    c语言读写ini文件

    在C语言中,读写INI文件是一个常见的任务,特别是在配置文件处理方面。INI文件是一种简单的文本格式,用于存储用户配置信息或程序设置。由于题目提到不使用Win32系统的DLL,我们将探讨如何纯C语言实现读写INI文件的...

    纯C语言的配置文件读写工程

    c语言下通用的配置文件读写操作代码,可跨平台。

    c语言读写excel文档

    总结来说,“c语言读写excel文档”涉及到利用第三方库在C环境中实现对Excel文件的读写功能。虽然这不是C语言的标准特性,但通过合理选择和使用合适的库,可以有效地完成这项任务。对于VS2005开发环境中的项目,这些...

    linux 配置文件读写C

    这是个不错的c代码,可以用在linux环境下c语言读写配置文件,转给大家下载。

    linux c 配置文件读写

    下面我们将深入探讨如何在C语言中实现对配置文件的读写。 首先,配置文件的格式多种多样,如文本文件(.txt)、INI文件(.ini)等。在提供的压缩包中,我们看到了`iniFileRW.C`和`maintest.c`两个源文件以及`...

    C语言配置文件读写.zip

    在C语言中,配置文件的读写是程序与外部数据交互的重要方式,它允许程序员将应用程序的设置或特定参数保存到文件中,以便在程序运行时动态加载和修改。本教程将详细介绍如何在C语言中处理配置文件的读写操作。 一、...

    用C语言读取.ini文件

    在Windows下可以用GetPrivateProfileString或GetPrivateProfileInt方便读取.ini配置文件内容,自己尝试写了一下这个函数。还有一些bug,后面慢慢改。

    纯c读写ini配置文件

    纯c读写ini配置文件 用c/c++读写ini配置文件有不少第三方的开源库,如iniparser、libini、rwini、UltraLightINIParser等,但都不理想,往往代码较大、功能较弱、 接口使用不方便。尤其在大小写处理、前后空格、各种...

    标准C/C++读写配置文件类,读写ini文件,加入工程就可以用

    标题提到的“标准C/C++读写配置文件类”是指一个专门用于处理INI文件的C++类,它使得开发者能够方便地读取和写入配置文件。这类库通常会封装文件操作的复杂性,提供简洁的API供程序员调用。描述中提到的“非常完美的...

    C语言读写ini文件,用法类似面向对象。.zip

    在这个案例中,“C语言读写ini文件,用法类似面向对象”的主题意味着我们将探讨如何使用C语言来操作INI配置文件,同时保持代码的模块化和易于使用。 INI文件是一种简单的文本格式,常用于存储程序的配置信息,由节...

Global site tag (gtag.js) - Google Analytics