全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1361
推到 Plurk!
推到 Facebook!

程式為什么在系統啟動時無法讀取INI文件并顯示

尚未結案
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-11 10:30:56 IP:61.150.xxx.xxx 未訂閱
設計一程式在系統啟動時就自動運行,并讀取一個INI文件內容然后顯示,但我發現程式并未讀取到INI文件,這時衹有將程式關閉,再重新執行一次才可讀取到,請問有沒有解決方法?
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-11 11:16:03 IP:218.16.xxx.xxx 未訂閱
可能是路徑的問題,讀取 ini 文件的檔名含路徑嗎? 若不含而你又不想修改程式及你是將你的程式捷徑放在 "啟動" 的,你可在你捷徑的 內容->開始位置 設好 ini 檔位置試試。
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-11 11:55:52 IP:61.150.xxx.xxx 未訂閱
非常感謝JustMade的回應! 我是將執行檔放到HKE_Local_Machine\‧‧\RUN下開機運行的, 建立Tinifile object 的語句,如下 mini:=Tinifile‧create(changefileEXt(application‧exename,'‧INI)); 讀取INI內容並顯示的語句,如下 edit‧text:=mini‧readstring('Language','Type',''); 請問這樣對嗎?
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-14 15:00:42 IP:202.100.xxx.xxx 未訂閱
請各位先進指點一下,我想這個問題應該不是很複雜呀!
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-21 13:33:42 IP:61.155.xxx.xxx 未訂閱
//讀取一個INI文件內容然后顯示    stat.ini    [System] VESA=1 ScreenMode=VM_800X600X256 SystemCharSize=16 CurrentGroup=WORD MainTitle2=ok        procedure TForm1.listTitle; var filename:string; i:integer; breedno:tstringlist;    inifile:TINIFILE; begin listBox1.Clear; //取得文件路径 filename:=ExtractFilePath(paramstr(0)) 'stat.ini'; inifile:=TInifile.Create(filename); breedno:=tstringlist.create; inifile.ReadSection('System',breedno); for i:=0 to breedno.Count-1 do listbox1.items.add(breedno.Strings[i]); breedno.Free ; inifile.Free ; end; procedure TForm1.FormCreate(Sender: TObject); begin listTitle; end; 供参考! 风花雪月 e梦情缘
------
风花雪月 e梦情缘
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-05-21 23:45:36 IP:61.221.xxx.xxx 未訂閱
引言: 我是將執行檔放到HKE_Local_Machine\‧‧\RUN下開機運行的, 建立Tinifile object 的語句,如下 mini:=Tinifile‧create(changefileEXt(application‧exename,'‧INI')); 讀取INI內容並顯示的語句,如下 edit‧text:=mini‧readstring('Language','Type',''); 請問這樣對嗎?
這樣是沒錯. 只是請確認一下該 ini 檔是否在和 exe 檔同在的目錄下..
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-05-21 23:59:03 IP:61.221.xxx.xxx 未訂閱
剛試了一下. 這樣的作法是 ok 的沒有問題.  所以應該只要將 .ini 檔和你的執行檔放在同一目錄下即可. 例如: F:\TEMP\START.EXE, F:\TEMP\START.INI 像這樣就行了. 不過還是請問一下, 是沒有讀到該檔還是沒有讀到內容呢?    
var
  a: TInifile;
begin
  a:=TInifile.Create(changefileEXt(application.ExeName , '.ini'));
  memo1.Lines.Add(a.ReadString('my','kk',''));
  //showmessage(a.ReadString('my','kk',''));
  a.Free;
end;    
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-07-30 11:45:16 IP:61.150.xxx.xxx 未訂閱
感謝Justmade,timhuang,n/a 三位前輩的指點!  特別感謝前輩timhuang曾兩次回應!  過了3個月,我今天才發現了原因, 如前輩
系統時間:2024-05-20 11:10:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!