寫了一段處理文字 並讀取值的code
用 ifstream 開檔案
然後用getline讀取每一行
用find 去比對Tag , 試著把這一行放到 if 內會有問題
rt=st1.find(Tag_SaveTemp);
以下的code 會變成無論有沒有值都會進 if
if(st1.find(Tag_SaveTemp)>=0){
savtemp=GetTagValue(st1,Tag_SaveTemp);
continue;
}
ini 擺放的位置
不指定路徑的話 , Debug 模式下 ini 要放在porject 的主目錄,
release 版本 跟執行檔放同一個目錄
char *Tag_SaveTemp ="OutPutTempFile";
char *Tag_AAA= "AAAA";
char *Tag_BBB= "BBBB";
void IniTest(void)
{
ifstream fin;
string st1;
int rt;
int savtemp=0;
int aaa=0;
int bbb = 0;
fin.open("Algo.ini");
while(getline(fin, st1)){
rt=st1.find(Tag_SaveTemp);
if((rt)>=0){
savtemp=GetTagValue(st1,Tag_SaveTemp);
continue;
}
rt=st1.find(Tag_AAA);
if((rt)>=0){
aaa=GetTagValue(st1,Tag_AAA);
continue;
}
rt=st1.find(Tag_BBB);
if((rt)>=0){
bbb=GetTagValue(st1,Tag_BBB);
continue;
}
}
}
另需要一個function 去解析 = 後面的數字
int GetTagValue(string line,char* tag)
{
int a=0,b=0;
int len=0;
string st1;
len=line.length();
a=line.find("=");
st1=line.substr(a+1,len-a-1);
b=atoi(st1.c_str());
return b;
}
沒有留言:
張貼留言