</span><span style="color: #0000ff;">#define</span> dllexport __declspec(dllexport) <span style="color: #000000;">
jmp_buf Jmp_Buf;
</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> E;
</span><span style="color: #0000ff;">#define</span> Exception 0x00000
<span style="color: #0000ff;">#define</span> e Exception
<span style="color: #0000ff;">#define</span> try if(!(E=setjmp(Jmp_Buf)))
<span style="color: #0000ff;">#define</span> last_error() E
<span style="color: #0000ff;">#define</span> catch(val) else
<span style="color: #0000ff;">#define</span> throw(val) longjmp(Jmp_Buf,val)
<span style="color: #0000ff;">#define</span> check(expersion) assert(expersion)
<span style="color: #0000ff;">#define</span> GetError() errno <span style="color: #000000;">
dllexport </span><span style="color: #0000ff;">void</span> sig_usr(<span style="color: #0000ff;">int</span><span style="color: #000000;">);
dllexport </span><span style="color: #0000ff;">char</span>*<span style="color: #000000;"> getTime();
}
<span style="color: #0000ff;">#else<span style="color: #0000ff;">#define dllexport __declspec(dllexport) <span style="color: #000000;">
jmp_buf Jmp_Buf;
<span style="color: #0000ff;">int<span style="color: #000000;"> E;
<span style="color: #0000ff;">#define Exception 0x00000
<span style="color: #0000ff;">#define e Exception
<span style="color: #800080;">34
<span style="color: #0000ff;">#define try if(!(E=setjmp(Jmp_Buf)))
<span style="color: #800080;">35
<span style="color: #0000ff;">#define last_error() E
<span style="color: #800080;">36
<span style="color: #0000ff;">#define catch(val) else
<span style="color: #0000ff;">#define throw(val) longjmp(Jmp_Buf,val)
<span style="color: #0000ff;">#define check(expersion) assert(expersion)
<span style="color: #0000ff;">#define GetError() errno <span style="color: #000000;">
dllexport <span style="color: #0000ff;">void sig_usr(<span style="color: #0000ff;">int<span style="color: #000000;">);
dllexport <span style="color: #0000ff;">char*<span style="color: #000000;"> getTime();
<span style="color: #0000ff;">#endif<span style="color: #000000;">
[<span style="color: #800080;">2].[代码] File.h 跳至 [<span style="color: #800080;">1] [<span style="color: #800080;">2] [<span style="color: #800080;">3<span style="color: #000000;">]
include
<stdio.h><span style="color: #000000;">include
<stdlib.h><span style="color: #000000;">include
<<span style="color: #0000ff;">string.h><span style="color: #000000;">include
<windows.h><span style="color: #0000ff;">#define
SIZE 128<span style="color: #000000;">include
<span style="color: #800000;">"<span style="color: #800000;">CException.h<span style="color: #800000;">"<span style="color: #0000ff;">#define
export __declspec(dllexport)<span style="color: #008000;">//<span style="color: #008000;">读取配置文件.
<span style="color: #0000ff;">int read_file(<span style="color: #0000ff;">char filename,<span style="color: #0000ff;">char key,<span style="color: #0000ff;">char<span style="color: #000000;"> value);
<span style="color: #008000;">//<span style="color: #008000;">写配置文件.
<span style="color: #0000ff;">int write_file(<span style="color: #0000ff;">char filename,<span style="color: #0000ff;">char<span style="color: #000000;"> value);
<span style="color: #008000;">//<span style="color: #008000;">释放文件.
<span style="color: #0000ff;">int<span style="color: #000000;"> release();
<span style="color: #008000;">//<span style="color: #008000;">写入节.
<span style="color: #0000ff;">int write_section(<span style="color: #0000ff;">char filename,<span style="color: #0000ff;">char<span style="color: #000000;"> section);
<span style="color: #0000ff;">int read_section(<span style="color: #0000ff;">char<span style="color: #000000;"> filename);
<span style="color: #0000ff;">int getAuthor(<span style="color: #0000ff;">char<span style="color: #000000;"> value);
<span style="color: #0000ff;">void getVersion(<span style="color: #0000ff;">char<span style="color: #000000;"> value);
[<span style="color: #800080;">3].[代码] File.c 跳至 [<span style="color: #800080;">1] [<span style="color: #800080;">2] [<span style="color: #800080;">3<span style="color: #000000;">]
include <span style="color: #800000;">"<span style="color: #800000;">File.h<span style="color: #800000;">"<span style="color: #000000;">
include <<span style="color: #0000ff;">string.h>
<span style="color: #0000ff;">int read_file(<span style="color: #0000ff;">char filename,<span style="color: #0000ff;">char<span style="color: #000000;"> value)
{
<span style="color: #0000ff;">int flag=<span style="color: #000000;">;
<span style="color: #0000ff;">char<span style="color: #000000;"> buffer[SIZE];
FILE *file=fopen(filename,<span style="color: #800000;">"<span style="color: #800000;">r<span style="color: #800000;">"<span style="color: #000000;">);
<span style="color: #0000ff;">try<span style="color: #000000;">
{
<span style="color: #0000ff;">if(file==<span style="color: #000000;">NULL)
{
flag</span>=<span style="color: #000000;">;
</span><span style="color: #0000ff;">throw</span><span style="color: #000000;">(flag);
}
<span style="color: #0000ff;">else<span style="color: #000000;">
{
</span><span style="color: #0000ff;">while</span>(fgets(buffer,SIZE,file)!=<span style="color: #000000;">NULL)
{
</span><span style="color: #0000ff;">int</span> i=,j=,len=<span style="color: #000000;">strlen(key);
</span><span style="color: #0000ff;">while</span>(buffer[i]!=<span style="color: #800000;">'</span><span style="color: #800000;">\')</span>
<span style="color: #000000;">
{
</span><span style="color: #0000ff;">if</span>(buffer[i]==<span style="color: #800000;">'</span><span style="color: #800000;">$</span><span style="color: #800000;">'</span>&&buffer[i+len+]==<span style="color: #800000;">'</span><span style="color: #800000;">=</span><span style="color: #800000;">'</span><span style="color: #000000;">)
{
j</span>=i+len+<span style="color: #000000;">;
</span><span style="color: #0000ff;">while</span>(buffer[j]!=<span style="color: #800000;">'</span><span style="color: #800000;">\'&&buffer[j]!=</span><span style="color: #800000;">'</span>;<span style="color: #800000;">'</span><span style="color: #800000;">)</span>
<span style="color: #000000;">
{
</span><span style="color: #0000ff;">int</span> h=<span style="color: #000000;">;
</span><span style="color: #0000ff;">if</span>(buffer[i+]==<span style="color: #000000;">key[i])
{
</span><span style="color: #008000;">//</span><span style="color: #008000;">printf("%c",buffer[j]);</span>
<span style="color: #000000;">
value[j-i-len-]=<span style="color: #000000;">buffer[j];
}
j</span>++<span style="color: #000000;">;
}
</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;
}
</span><span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span>(buffer[i]==<span style="color: #800000;">'</span><span style="color: #800000;">/</span><span style="color: #800000;">'</span>&&buffer[i+]==<span style="color: #800000;">'</span><span style="color: #800000;">/</span><span style="color: #800000;">'</span>||buffer[i]==<span style="color: #800000;">'</span><span style="color: #800000;">;</span><span style="color: #800000;">'</span><span style="color: #000000;">)
{
</span><span style="color: #0000ff;">break</span><span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;">comment</span>
<span style="color: #000000;">
}
i</span>++<span style="color: #000000;">;
}
}
}
}
<span style="color: #0000ff;">catch<span style="color: #000000;">(Exception)
{
flag=<span style="color: #000000;">;
fclose(file);
printf(<span style="color: #800000;">"<span style="color: #800000;">can't open file %s<span style="color: #800000;">"<span style="color: #000000;">,filename);
exit();
}
fflush(file);
fclose(file);
<span style="color: #0000ff;">return<span style="color: #000000;"> flag;
}
<span style="color: #0000ff;">int write_file(<span style="color: #0000ff;">char filename,<span style="color: #0000ff;">char<span style="color: #000000;"> value)
{
<span style="color: #0000ff;">int flag=<span style="color: #000000;">;
FILE*<span style="color: #000000;"> file;
file=fopen(filename,<span style="color: #800000;">"<span style="color: #800000;">a<span style="color: #800000;">"<span style="color: #000000;">);
<span style="color: #0000ff;">try<span style="color: #000000;">
{
<span style="color: #0000ff;">if(file==<span style="color: #000000;">NULL)
{
flag=<span style="color: #000000;">;
<span style="color: #0000ff;">throw<span style="color: #000000;">(flag);
}
fprintf(file,<span style="color: #800000;">"<span style="color: #800000;">$%s=%s\n<span style="color: #800000;">"<span style="color: #000000;">,key,value);
}
<span style="color: #0000ff;">catch<span style="color: #000000;">(Exception)
{
printf(<span style="color: #800000;">"<span style="color: #800000;">Can't write file %s<span style="color: #800000;">"<span style="color: #000000;">,filename);
exit();
}
fflush(file);
fclose(file);
<span style="color: #0000ff;">return<span style="color: #000000;"> flag;
}
<span style="color: #0000ff;">int write_section(<span style="color: #0000ff;">char filename,<span style="color: #0000ff;">char<span style="color: #000000;"> section)
{
<span style="color: #0000ff;">int flag=<span style="color: #000000;">;
FILE* file=<span style="color: #000000;">NULL;
<span style="color: #0000ff;">try<span style="color: #000000;">
{
file=fopen(filename,<span style="color: #800000;">"<span style="color: #800000;">a<span style="color: #800000;">"<span style="color: #000000;">);
<span style="color: #0000ff;">if(file!=<span style="color: #000000;">NULL)
{
fprintf(file,<span style="color: #800000;">"<span style="color: #800000;">[%s]\n<span style="color: #800000;">"<span style="color: #000000;">,section);
}
<span style="color: #0000ff;">else<span style="color: #000000;">
{
<span style="color: #0000ff;">int flag=<span style="color: #000000;">;
<span style="color: #0000ff;">throw<span style="color: #000000;">(flag);
}
}
<span style="color: #0000ff;">catch<span style="color: #000000;">(Exception)
{
printf(<span style="color: #800000;">"<span style="color: #800000;">can't open file %s<span style="color: #800000;">"<span style="color: #000000;">,filename);
exit();
}
fflush(file);
fclose(file);
<span style="color: #0000ff;">return<span style="color: #000000;"> flag;
}
<span style="color: #0000ff;">int<span style="color: #000000;"> release()
{
<span style="color: #0000ff;">int flag=<span style="color: #000000;">;
<span style="color: #0000ff;">return<span style="color: #000000;"> flag;
}
<span style="color: #0000ff;">int read_section(<span style="color: #0000ff;">char*<span style="color: #000000;"> filename)
{
<span style="color: #0000ff;">return<span style="color: #000000;"> ;
}
<span style="color: #0000ff;">int getAuthor(<span style="color: #0000ff;">char*<span style="color: #000000;"> value)
{
<span style="color: #0000ff;">char author[]=<span style="color: #800000;">"<span style="color: #800000;">武汉软件工程职业学院计算机应用系孟德军<span style="color: #800000;">"<span style="color: #000000;">;
<span style="color: #0000ff;">int i=<span style="color: #000000;">;
<span style="color: #0000ff;">for(i=;i<strlen(author);i++<span style="color: #000000;">)
{
value[i]=<span style="color: #000000;">author[i];
}
<span style="color: #0000ff;">return<span style="color: #000000;"> ;
}
<span style="color: #0000ff;">void getVersion(<span style="color: #0000ff;">char*<span style="color: #000000;"> value)
{
<span style="color: #0000ff;">char version[]=<span style="color: #800000;">"<span style="color: #800000;">////<span style="color: #800000;">"<span style="color: #000000;">;
<span style="color: #0000ff;">int i=<span style="color: #000000;">;
<span style="color: #0000ff;">for(i=;i<strlen(version);i++<span style="color: #000000;">)
{
value[i]=<span style="color: #000000;">version[i];
}
}
<span style="color: #008000;">/*<span style="color: #008000;">*****
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","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();
}