INI文件格式说明

/*********************************************
  ini文件说明
  ini文件是文本文件,由节点(Section)和键值对(key=value)组成
  以';'开头的行为注释
  一般形式如下所示:
  +--------------- test.ini -----------------+
  |  [Section1]                              |
  |    key1=value1                           |
  |    key2=value2                           |
  |  ;这是注释                               |
  |  [Section2]                              |
  |    key3=value3                           |
  +------------------------------------------+
 *********************************************/

更详细的介绍可见http://blog.chinaunix.net/uid-25885064-id-3327199.html

 

GetPrivateProfileString 从INI文件中读取String值

辅助函数 dupFile 

 1 //读取文件内容,保存到在heap区上申请的内存中
 2 //成功返回内存地址,失败返回NULL
 3 //参数fsize用于传出文件的内存区域的大小
 4 char* dupFile(const char* FileName,long* fsize)
 5 {
 6     char* buf = NULL;
 7     long size = 0;
 8     //读取文件,因为ini文件通常都很小,所以一次全部读取了
 9     FILE* fp = fopen(FileName,"r");
10     do{
11         if(fp == NULL){    //打开文件失败
12             //puts("打开文件失败");
13             break;
14         }
15         //获取文件大小
16         if(fseek(fp,0,SEEK_END)){
17             break;    //fseek失败
18         }
19         size = ftell(fp);    //获取当前偏移(文件长度)
20         if(size<0){break;}
21 
22         //读取文件
23         fseek(fp,0,SEEK_SET);
24         buf = (char*)malloc(size+1);
25         if(buf == NULL){break;}
26         if(size == fread(buf,1,size,fp)){    //fread是阻塞模式,=
27             buf[size] = '\0';
28             //文件已经读取完成了
29         }else{    //万一失败了呢?
30             free(buf);
31             buf = NULL;
32             size = 0;
33         }
34     }while(0);
35     fclose(fp);    //关闭文件
36     if(fsize != NULL){*fsize = size;}
37     return buf;
38 }
dupFile

相关文章: