学习Symbian第七课

学习Symbian第七课

ID:39639060

大小:150.00 KB

页数:6页

时间:2019-07-08

学习Symbian第七课_第1页
学习Symbian第七课_第2页
学习Symbian第七课_第3页
学习Symbian第七课_第4页
学习Symbian第七课_第5页
资源描述:

《学习Symbian第七课》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、学习Symbian第七课今天,我们来做一个小程序,是关于文本文件的读取与写入的,文本文件是最基本的操作。先看看程序运行的效果吧首先,给程序添加两个菜单用于打开和保存文件。当你选打开文件菜单时,程序读入“C:Hello.txt”文件(这里的C盘不是电脑的C盘,而是手机模拟器的C盘),并显示在编辑框中。接着你可以在编辑框中对文本内容进行修改。改完后选择保存菜单,程序就把编辑框中的内容追加到原来的文件中保存下来。最后你可以再次选择打开菜单,这是你会发现第二次读入的文件和第一次读入的不同了,在文件后面多了上次编辑的

2、内容。程序涉及到的知识点1.关于菜单和编辑框的操作是前几课讲的内容,我就不重复了。2.文件和文件流的操作。文件的操作要用到“f32file.h”头文件和“efsrv.lib”链接库,他提供了文件的创建删除复制等常规操作,能读取文件属性,读取文件内容等。因为要保存文件,所以要用到文件流的操作,这就要用到“s32file.h”头文件和“estor.lib”链接库。3.Unicode—8编码我们在读取写入文件时,使用的是二进制来操作,文件中也是以8位的byte二进制数据来存储文件的,一个8位的byte最多能存储25

3、6个不同的信息,这样如果存储英文,那也是绰绰有余了。但是汉字远不止256个啊,要存储汉字信息,这就要用双字节来存储,也就是说用两个字节共同来表示一个汉字,这就是Unicode编码。还有,手机程序中的编辑框所能接受的字符编码是Unicode编码,而文件流中的编码是单字节的字节流,这样在读取文件到编辑框中显示是需要转码的,从编辑框中保存到文件的过程也是要转码的。关于汉字的编码我还是能说上个一二来,我曾有一篇文章《让Flash能读会写》就发表在软件报上面。在塞班程序中是不需要手动转码的,因为“utf.h”这个头文件

4、里提供了转码的API,我们只要拿过来用就可以了。程序制作过程:一.新建一个多页面框架模版程序Test。二.用记事本手动新建一个文本文件,输入“这是第一个Symbian程序!”并保存C:Symbian8.0aS60_2nd_FP2_SCepoc32winscHello.txt,注意保存时选择文件的编码为“UTF-8”。我们先准备一个文本文件让程序导入。三.在Test.rss和Test.hrh创建和注册菜单,在TestView.cpp中编写程序响应代码。四.在TestContainer.h中注册编辑

5、框的类和定义编辑框变量,添加读取和保存文件的公共函数。五.在TestContainer.rss文件中,创建编辑框,编写读写文件的实现代码。六.添加链接库“eikctl.libbafl.libefsrv.libcharconv.libestor.lib”最后,编译测试程序。附上程序代码:TestContainer.h源码(菜单的代码就没贴出来了,需自己写)#ifndefTESTCONTAINER_H#defineTESTCONTAINER_H#includeclassCEikLabel;

6、//forexamplelabelsclassCEikEdwin;classTResourceReader;classCTestContainer:publicCCoeControl,MCoeControlObserver{public://ConstructorsanddestructorvoidreadFileToEdit();voidsaveEditToFile();voidConstructL(constTRect&aRect);~CTestContainer();public://Newfuncti

7、onspublic://Functionsfrombaseclassesprivate://FunctionsfrombaseclassesvoidSizeChanged();TIntCountComponentControls()const;CCoeControl*ComponentControl(TIntaIndex)const;voidDraw(constTRect&aRect)const;voidHandleControlEventL(CCoeControl*aControl,TCoeEventaEv

8、entType);private://dataCEikLabel*iLabel;//examplelabelCEikEdwin*iEdwin;};#endif附上程序代码:TestContainer.rss源码#include"TestContainer.h"#include//forexamplelabelcontrol#include//forCE

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。