如何一開機即啟動程式且執行自己的ini檔 |
尚未結案
|
mtyen
一般會員 發表:13 回覆:16 積分:5 註冊:2004-02-03 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
mtyen
一般會員 發表:13 回覆:16 積分:5 註冊:2004-02-03 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
mtyen 您好: 不是很清楚您實際的寫法為何?不過我仍覺得您的方式可能有誤,您可以試著在程式內讀取 .ini 檔案之前加上一個顯示現行路徑的敘述,看看路徑是否正確? 我建議您不要使用 getcwd 的方式來取得路徑資料,因為在不同目錄啟動程式時 (例如:在 C:\ 目錄直接執行 C:\test\ptog1.exe 程式),使用該方法所取得的目錄位置會超出您的預期,試著改用 ExtractFilePath(ParamStr(0)) 或是 ExtractFilePath(Application->ExeName) 來直接抓取執行檔的所在位置,然後再將 .ini 檔的名稱組合成含有完正路徑的檔案名稱,然後再去讀取它,這樣子應該就不會出問題了,例如:
AnsiString ProgPath = ExtractFilePath(Application->ExeName); AnsiString IniFile = ProgPath "aa.ini"; TIniFile *SavedQueries = new TIniFile(IniFile); .... 其它動作 ....7 天天敲鍵盤 v 時時按滑鼠 8 發表人 - RedSnow 於 2005/09/19 14:20:42 |
wyx828ty
一般會員 發表:0 回覆:2 積分:0 註冊:2005-09-12 發送簡訊給我 |
你是要将自己定义的.ini文件读入吗?
你可以把.ini文件放在你的工程目录下,在你的工程的OnShow事件中打开。
这是我前几工作中写的,希望对你有帮助:
//////////////////////////////////////////////////////
// 函数名:AnsiString readIni(char *key) //
// 输入: .ini文件[]中的关键字 //
// 输出: 关键字值 //
// 代码描述:从指定.ini文件中根据输 //
// 入的关键字获取关键字值 //
// 代码编写:王延鑫 //
////////////////////////////////////////////////////
AnsiString readIni(char *key) //输入关键字 { int keysize; //关键字长度 long filelen; char *strFile; //文件长度 char keyValue[20]; char *keyStart; //关键字开始位置 char *keyValueEnd; //关键字值结尾位置 FILE *fp; if((fp=fopen("RemoteManage.ini", "r "))==NULL) //按路径打开文件 { ShowMessage("文件不存在或文件有问题"); exit(0); } fseek(fp,0,SEEK_END); filelen= ftell(fp); //获取文件长度 fseek(fp,0,SEEK_SET); if((strFile = (char *)malloc(filelen))==NULL) { ShowMessage("Not enough memory to allocate buffer"); exit(0); } fread(strFile,filelen, 1, fp); //读数据 keysize=strlen(key); //获取关键字长度 keyStart=strstr(strFile,key); char *end=strstr(strFile,"/n/n/n/n/n"); if(keyStart==end) { ShowMessage("关键字不正确"); Application->Terminate(); } else { keyValueEnd = strstr(keyStart,"\n"); if(!keyValueEnd) { ShowMessage(".ini文件书写有问题"); exit(0); } else { memset(keyValue,0,sizeof(keyValue)); strncpy(keyValue,keyStart keysize 1,keyValueEnd-keyStart-keysize-1); } free(strFile); return keyValue; } }我的.ini文件格式时自定义的,你也可以自己写。 你也可以用TIniFile读.ini文件,不过格式是固定的。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |