原文地址:http://blog.csdn.net/Symobile/archive/2006/04/29/696131.aspx
这两天在做东西时给这个操作ini文件的程序搞得郁闷死了,我的程序里要保存用户的数据,我就第一个就想到了ini配置文件,以为会跟windows平台一样的容易,直接拿系统提供的API就可以了事,找了半天,找不到,在网上查了一下,原来要自己解析的,郁闷了半天,看了示范,尝试去写着,老是出了N多的问题,后来终于写出来了,贴出来。。
SDK里有说到S60的程序默认不支持INI文件的操作,如果要让程序支持的话要重载OpenIniFileLC这个成员函数,我就重载了App的这个函数了,因为我的项目名叫Symbian2所以现在都会以Symbian2为示例的,首先我们要先重载,打开Symbian2App.h重载OpenIniFileLC
CDictionaryStore*OpenIniFileLC(RFs&aFs)const;
然后在实现代码里这样写
CDictionaryStore*CSymbian2App::OpenIniFileLC(RFs&aFs)const
{
returnCEikApplication::OpenIniFileLC(aFs);
}
重载好了,这样我们的程序就可以支持INI文件了,接下来我们要写专操作INI的函数了
我把这两个函数写进了Appui类里面了
voidCSymbian2AppUi::WriteIniFile(TUidiInfo,void*ptr,TUintsize)
{
TIntr;
RFsfs;
fs.Connect();
CleanupClosePushL(fs);
RDictionaryWriteStreamrdsIniFile;
CDictionaryStore*cdIniFile=Application()->OpenIniFileLC(fs);//如果不存在就创建
rdsIniFile.AssignLC(*cdIniFile,iInfo);
TPtr8buf((TUint8*)ptr,size,size);
TRAP(r,rdsIniFile.WriteL(buf));
rdsIniFile.CommitL();
CleanupStack::PopAndDestroy();
cdIniFile->CommitL();
CleanupStack::PopAndDestroy(2);
}
TBoolCSymbian2AppUi::ReadIniFile(TUidiInfo,void*ptr,TUint&size)
{
TIntr;
TBoolresult=EFalse;
RFsfs;
fs.Connect();
CleanupClosePushL(fs);
RDictionaryReadStreamrdsIniFile;
CDictionaryStore*cdIniFile=Application()->OpenIniFileLC(fs);
if(cdIniFile->IsPresentL(iInfo)){
rdsIniFile.OpenLC(*cdIniFile,iInfo);
TPtr8buf((TUint8*)ptr,size);
TRAP(r,rdsIniFile.ReadL(buf));
CleanupStack::PopAndDestroy();//rdsIniFile
result=ETrue;
}
CleanupStack::PopAndDestroy(2);//fs,cdIniFile
returnresult;
}
是不是没错得特乱,没关系,不用理,,我来给出两个调用例子你就会知道其实很容易
怎么实现调用呢?比如说写入配置吧,我们都是在最后退出时才写入配置的吧,那我们在CSymbian2AppUi::HandleCommandL的代码里去写。
caseEEikCmdExit:
{
_LIT(KBentionText,"bention");//定义文字常量相当于ini中的字段值
HBufC*str=KBentionText().AllocLC();//转换为HBUfC16位
TUintaInd=20;//定义要写入文本的长度
TUidtestuid={0x0bdf1365};//定义文本标识相当于ini中的字段名
WriteIniFile(testuid,str,aInd);//写入
Exit();
break;
}
运行后退出程序。你现在去C:\Symbian\8.0a\S60_2nd_FP2_SC\epoc32\wins\c\System\Apps\Symbian2
下面,是不是多出了一个Symbian2.ini文件呢,用ue打开,是不是发觉有了bention字样呢,这证明写入成功啦哈哈
至于读取配置的,也差不多只要你在适当地方用下面的代码就可以了。
HBufC*tstr;
TUintaInd=20;
TUidtestuid={0x0bdf1365};//注意此处与上面是相同的,这个相当于字段名,是一个标识
if(ReadIniFile(testuid,tstr,aInd)){//处时tstr为读出的字段值了
//做你想做的事
}
也许我在表达上有一定的错误,请大家多多指教
翁培铖 潮州新天地网络
转贴 自 http://www.bention.com
分享到:
相关推荐
- 尽量避免在.ini文件中存储敏感信息,如密码或用户隐私数据。 - 确保正确处理读写失败的情况,如文件不存在或权限不足。 - 使用适当的编码,通常Symbian系统默认支持UTF-8编码。 通过了解和熟练运用这些知识点...
以上就是Symbian操作系统中使用文档类进行文件读写的基本方法,以及处理Ini文件的实例。这些功能在S60 3rd平台上非常实用,可以帮助开发者创建能够存储和读取数据的应用程序。在实际项目中,你可能需要根据具体需求...
总的来说,pkg文件解包工具是Symbian生态系统中不可或缺的一部分,它为开发者提供了深入洞察和操作安装包内容的能力。随着移动技术的发展,虽然Symbian系统的市场份额已不如从前,但了解这些工具及其工作原理仍然对...
c) 控制台输出调试信息:修改epoc.ini文件,启用LogToFile和LogToDebugger,然后在mmp文件中添加ecrt0库,通过`#include <e32debug.h>`头文件使用RDebug::Print进行调试输出。 d) 解决“rsg”文件找不到的问题:通过...
塞班助手使用教程.rtf文件则是为用户提供详细的刷机指南,帮助用户理解如何操作软件,避免在刷机过程中出现错误。RTF(Rich Text Format)是一种通用的文本格式,可以跨平台阅读,确保用户无论使用何种操作系统都能...
在塞班系统中,固件通常包含一系列的文件和配置,决定了手机的性能和功能。而解包工具就是用来将这些固件文件从其原始打包状态恢复为可编辑的原始格式,便于用户进行定制或修复。 "NokiaFirmwareEditor.exe"是这个...
【塞班手机软件】是关于诺基亚塞班(Symbian)操作系统上应用软件的讨论,这个系统曾经是智能手机市场的主导者,特别是在2000年代至2010年代初。塞班平台以其开放性和强大的功能吸引了大量的开发者,为用户提供了...
本文将详细介绍Symbian操作系统中不同磁盘分区的作用及其在手机中的应用。 #### 二、磁盘分区介绍 在Symbian操作系统中,通常有四个主要的磁盘分区:C盘、D盘、E盘以及Z盘。每个磁盘都有其特定的功能和用途: 1. ...
在探讨如何在Carbide 2.0与Symbian 3rd环境下运行控制台程序这一主题时,我们首先需要理解几个关键概念:Carbide 2.0、Symbian 3rd以及控制台程序的基本操作。Carbide 2.0是一款由诺基亚公司开发的集成开发环境(IDE...
在移动设备特别是早期的塞班系统(Symbian)中,sis和sisx文件是常见的应用安装包格式。这些文件需要经过签名才能在手机上安装和运行,以确保软件来源的安全性和合法性。EasySignPlus_v1.1_CHS_DemsonOPDA就是这样一款...
下面将详细介绍在给定文件中提到的一些常用的Symbian类、它们对应的头文件以及相关的库文件。 #### 1. **字符数组类** - **CDesC16Array**: 用于存储和操作Unicode (UCS-2) 字符的动态数组。它提供了添加、删除、...
【sis解包软件extsis】是一款专为塞班系统(Symbian)设计的应用程序,主要用于解析和编辑sis格式的软件。Sis是一种在早期智能手机,尤其是诺基亚手机上广泛使用的应用程序安装包格式。这款工具能够帮助用户深入了解...
在Windows操作系统中,.ini文件非常常见,但Python的应用能够跨平台运行,因此iniReader可能也适用于其他操作系统,尤其是通过兼容性层或者被封装到特定的移动平台上。 【描述】:“NULL 博文链接:...
4. **语言定制**:lang.ini文件可能与软件的语言设置有关,用户可以通过编辑此文件来添加或更改设备支持的语言。 5. **临时文件管理**:"temp"目录可能用于存放解包和打包过程中产生的临时文件,这些文件在操作完成...
SISX是SIS格式的升级版,用于S60第三版(S60v3)和第五版(S60v5)平台,这两个版本分别代表了塞班操作系统在智能手机发展过程中的不同阶段。 描述中的“sis sisx s60v3 s60v5解包打包”意味着该软件能够处理这四种...
总之,6680皮肤是一种让用户能够在非6680设备上体验6680手机界面的设计,通过6680.ZIP压缩包中的6680.bmp和epoc.ini文件实现。用户可以根据指示安装并应用这些文件,从而在模拟器中享受复古的6680风格。这种技术不仅...
至于&_desktop.ini_,这通常是Windows系统中的一个桌面配置文件,可能记录了文件夹的显示属性,对于源代码项目来说,它的作用可能不大。 总的来说,"euig.rar_源码"是一个珍贵的学习资源,它揭示了在资源有限的移动...
1. **下载并生成INI文件**:首先,通过服务器端的操作生成相应的`.ini`文件,用于定义软件包的基本信息和配置。 2. **生成与配置PKG文件**:接着,根据`.ini`文件的内容生成`.pkg`文件,并对其进行适当的配置。这...
4. **jaf_nok4models.ini**:这个文件很可能是JAF的配置文件,包含了诺基亚不同模型的识别参数和设置。通过编辑或更新这个文件,用户可以解决特定型号手机的识别问题。 5. **JAF下载地址.rar**:这个文件可能是一个...
对于像塞班系统(Symbian)手机5250(s60v5)这样的设备,已经证实可以通过蓝牙实现上网功能。 【蓝牙适配器】 蓝牙适配器是将非蓝牙设备转化为能够支持蓝牙通信的设备的关键硬件。它通常是一个USB插件,插入电脑的...