TBool CFrozenBubbleAppUi::ReadIniFile(TUid iInfo, void *ptr, TUint &size){
TInt r;
TBool result = EFalse;
RFs fs;
fs.Connect();
CleanupClosePushL( fs );
RDictionaryReadStream rdsIniFile;
CDictionaryStore *cdIniFile = Application()->OpenIniFileLC(fs);
if (cdIniFile->IsPresentL(iInfo)){
rdsIniFile.OpenLC(*cdIniFile, iInfo);
TPtr8 buf((TUint8*)ptr, size);
TRAP(r, rdsIniFile.ReadL(buf));
CleanupStack::PopAndDestroy(); // rdsIniFile
result = ETrue;
}
CleanupStack::PopAndDestroy( 2 ); // fs, cdIniFile
return result;
}
TBool CFrozenBubbleAppUi::CheckIniFile(TUid iInfo){
TBool result = EFalse;
RFs fs;
fs.Connect();
CleanupClosePushL( fs );
RDictionaryReadStream rdsIniFile;
CDictionaryStore *cdIniFile = Application()->OpenIniFileLC(fs);
result = cdIniFile->IsPresentL(iInfo);
CleanupStack::PopAndDestroy( 2 ); // fs, cdIniFile
return result;
}
void CFrozenBubbleAppUi::WriteIniFile(TUid iInfo, void *ptr, TUint size){
TInt r;
RFs fs;
fs.Connect();
CleanupClosePushL( fs );
RDictionaryWriteStream rdsIniFile;
CDictionaryStore *cdIniFile = Application()->OpenIniFileLC(fs);
rdsIniFile.AssignLC(*cdIniFile, iInfo);
TPtr8 buf((TUint8*)ptr, size, size);
TRAP(r, rdsIniFile.WriteL(buf));
rdsIniFile.CommitL();
CleanupStack::PopAndDestroy();
cdIniFile->CommitL();
CleanupStack::PopAndDestroy( 2 );
}
void CFrozenBubbleAppUi::RemoveIniData(TUid iInfo){
TInt r;
RFs fs;
fs.Connect();
CleanupClosePushL( fs );
RDictionaryWriteStream rdsIniFile;
CDictionaryStore *cdIniFile = Application()->OpenIniFileLC(fs);
cdIniFile->Remove(iInfo);
cdIniFile->CommitL();
CleanupStack::PopAndDestroy( 2 );
}
本文介绍了CFrozenBubbleAppUi类中对INI文件进行读取、检查、写入及删除的具体实现方法。通过使用DictionaryStore组件,实现了对INI文件的数据持久化管理。
452

被折叠的 条评论
为什么被折叠?



