Symbian中ini檔案的使用
原文地址:http://www.goodod.com/html/68/bencandy_9415.htm
如果程式中需要配置檔案(如儲存進度,聲音等)那可以使用ini檔案來處理,同MFC一樣也有專門處理配置檔案的API,這就是OpenIniFileLC(RFs& aFs)。
首要的一條,你的程度要支援ini檔案,那就要過載這個CEikApplication的成員函式,否則程式執行起來會報錯,而過載時只要如下語句即可:
CDictionaryStore* CMyApp::OpenIniFileLC(RFs& aFs) const
{
return CEikApplication::OpenIniFileLC(aFs);
}
這樣的話,程式可以在你啟動時自動的建立一個ini——如果檢測到沒有的情況下。而這個ini一般是建立在C:/System/App/MyApp目錄下的,注意即使使用者選擇安裝在E盤,那還是會把ini安裝在系統盤上,SDK說明這個預設碟符是放在KIniFileDrive裡,但我還沒有找到辦法如何去修改它,如果你知道了告訴我一聲哦:)
一般配製檔案要供全域性使用,可能要跨越多個view,因此我們把它的操作及資料定義在UI級別,在MyAppUi的ConstructL()函式中有如下語句:
//處理基本的資料
delete iMyConfig;
iMyConfig = CMyConfigData::NewL();
CDictionaryStore* store = Application()->OpenIniFileLC(iCoeEnv->FsSession());
if (store->IsPresentL(KUidKey))
{
LoadIniFile(store);
}
else
{
iMyConfig->SetDefault();
SaveIniFile(store);
}
CleanupStack::PopAndDestroy();
//--結束處理
void CMyAppUi::SaveIniFile(CDictionaryStore* aStore)
{
RDictionaryWriteStream out;
out.AssignLC(*aStore, KUidKey);
out << *iMyConfig;
out.CommitL();
CleanupStack::PopAndDestroy();
aStore->CommitL();
}
void CAknExSettingListAppUi::LoadIniFile(CDictionaryStore* aStore)
{
RDictionaryReadStream in;
in.OpenLC(*aStore, KUidKey);
in >> *iMyConfig;
CleanupStack::PopAndDestroy();
}
當然具體的CMyConfigData裡還要有一些相應的匯入匯出處理,這樣才完美:)
有時候我們還需要在程式中處理一下配置的儲存,那我們可以使用如下程式碼(在view中):
CDictionaryStore *IniFile = AppUi()->Application()->OpenIniFileLC(CCoeEnv::Static()->FsSession());
RDictionaryWriteStream WriteStream;
WriteStream.AssignLC( *IniFile, KUidKey );
WriteStream << *iData;
WriteStream.CommitL();
CleanupStack::PopAndDestroy();
IniFile->CommitL();
CleanupStack::PopAndDestroy();
把它放在一個函式中即可:)
最後要說明的是,如果不在pkg裡有明確說明,那儲存在系統盤上的ini在程式被刪除後是不會丟失的,這就造成了垃圾檔案,我們只需要在pkg中加入下面一句就可以徹底刪除這些:
; Remove INI file when uninstalling the app.
""-"C:/system/apps/MyApp/MyApp.ini",FN
FN表明這個檔案在程式執行時才生成,現在為空。前面用的是“”。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1449655
相關文章
- 使用C#讀寫ini檔案C#
- Python 使用ConfigParser操作ini配置檔案教程。Python
- Python進階,ConfigParser:Python中對於ini格式的配置檔案的使用Python
- NPM酷庫047:ini,解析INI配置檔案NPM
- 使用IniEditor讀寫INI型別配置檔案型別
- 神祕的.user.ini檔案
- MySql5.7配置檔案my.ini 設定 my.ini檔案路徑MySql
- MySQL的my.ini檔案查詢MySql
- Mysql 配置檔案 my.iniMySql
- php.ini 檔案在哪裡?PHP
- python ini 配置檔案處理Python
- go 讀取.ini配置檔案Go
- MySQL檔案my.ini配置MySql
- java 讀寫 ini 配置檔案Java
- pytest配置檔案pytest.ini
- php修改php.ini配置檔案中disable_functionsPHPFunction
- ini檔案解析c庫(iniparser)【轉】
- Python之ini配置檔案詳解Python
- MySQL配置檔案my.ini在哪MySql
- .user.ini檔案構成的PHP後門PHP
- MySQL 配置檔案 (my.ini) 詳解MySql
- 透過python讀取ini配置檔案Python
- php.ini 檔案存放位置不對?PHP
- C#關於讀寫INI檔案C#
- PHP配置檔案詳解php.iniPHP
- .NET程式配置檔案操作(ini,cfg,config)
- VC++學習筆記---配置檔案(一) ini檔案和propritiesC++筆記
- 利用.user.ini檔案隱藏後門
- MySQL配置檔案my.ini的一般設定MySql
- Windows10 VS2017 C++ ini解析(使用simpleini標頭檔案)WindowsC++
- Mysql配置檔案my.ini配置項詳解MySql
- Mysql資料庫配置檔案(my.ini)分析MySql資料庫
- pytest 中,pytest.ini 檔案為什麼會對 fixture 產生影響
- 【自動化測試】Python 讀取 .ini 格式檔案Python
- Python常用配置檔案ini、json、yaml讀寫總結PythonJSONYAML
- 使用vim修改linux中的檔案Linux
- Python的configparser模組讀取.ini檔案內容並輸出Python
- pyinstaller 打包後讀取 ini 配置檔案路徑錯誤,怎麼定位配置檔案
- 解析MySQL 配置檔案 my.cnf / my.ini 區別MySql