大部分的專案都會用到配置檔案,之前也有乙個一直在用的讀取配置檔案的**,感覺不是太好。也奉獻上來吧
static bool readconfigfile(const char* configfilepath,const string key,string &value)
;//獲取當前程式目錄
int getcurrentpath(char buf,char *pfilename)
; int bytes=0;
int fd=0;
sprintf(pidfile, "/proc/%d/cmdline", getpid());
fd = open(pidfile, o_rdonly, 0);
bytes = read(fd, buf, 256);
close(fd);
buf[max_path] = '\0';
#endif
char * p = &buf[strlen(buf)];
do while( '\\' != *p );
#else
} while( '/' != *p );
#endif
p++;
//配置檔案目錄
memcpy(p,pfilename,strlen(pfilename));
return 0;
}//從配置檔案讀取字串型別資料
int readconfigfile_string(char *filename, char *title,char *key,char *value)
; static char tmpstr[max_buf]=;
int rtnval=0;
int i = 0;
int flag = 0;
char *tmp=null;
bool isfirst=true; //是否為第一次掃瞄配置檔案
bool isend=false; //是否掃瞄完配置檔案
if((fp = fopen(filename, "r")) == null)
while(!feof(fp))
else
if(rtnval == '\n'||isfirst==true||isend==true) //第一次掃瞄配置檔案 第一行不用是\n
tmp = strchr(szline, '=');
if(( tmp != null )&&(flag == 1))
else if ( '\/' == szline[0] && '\/' == szline[1] ) //#注釋 如//age=25
else
}else
}else
}isfirst=false;
} }fclose(fp);
return -1;
}//從配置檔案讀取整型別資料
int readconfigfile_int(char *filename,char *title,char *key)
; if(readconfigfile_string(filename,title,key,value_string)==0) //成功
else //失敗 }
int main(int argc, char* ar**)
; memset(buf,0,sizeof(buf));
getcurrentpath(buf,conf_file_path);
strcpy(g_szconfigpath,buf);
printf("path:%s\n",g_szconfigpath);
int age=-1;
char href[32]=;
if (readconfigfile_string(g_szconfigpath,"cat","href",href)!=0)
printf("href:%s\n",href);
age=readconfigfile_int(g_szconfigpath,"cat","age");
if (age==-1)
printf("age:%d\n",age);
#ifdef win32
system("pause");
#endif // win32
return 0;
}
配置檔案內容
conf.ini
[cat]
href=192.168.0.109:8080
#href=192.168.0.109:8080
//age=25
age=100
vs2012執行結果
linux執行結果
改進說明:主要改進的就是換行才能獲取到資料,之前的這個要求很雞肋啊,用著太不方便了。
原輪子:
跨平台Unity Excel 檔案讀取和寫入
在網上看到很多 的解析excel 的文章,其中最經典的一篇莫過於雨凇momo的unity3d研究院之mac windows跨平台解析excel 六十五 但是在使用的過程中還是碰到了不少的 問題,在這裡總結一下,希望能對看到此處的朋友乙個幫助。excel的讀取,需要加入庫檔案 excel.dll 和i...
讀取配置檔案
類載入器 1 直接用class.forname 類的路徑名 class.forname com.hsf.classloader.classloader 2 用classloder 類載入器 inputstream in classloader.getsystemresourceasstream aa...
VS 儲存INI配置檔案和讀取配置檔案
ini檔案簡介 在我們寫程式時,總有一些配置資訊需要儲存下來,以便在下一次啟動程式完成初始化,這實際上是一種類持久化。將一些資訊寫入ini檔案 initialization file 中,可完成簡單的持久化支援。windows提供了api介面用於操作ini檔案,其支援的ini檔案格式一般如下 sec...