vc Symbian开发23Word格式文档下载.docx

上传人:b****7 文档编号:22720541 上传时间:2023-02-05 格式:DOCX 页数:10 大小:54.28KB
下载 相关 举报
vc Symbian开发23Word格式文档下载.docx_第1页
第1页 / 共10页
vc Symbian开发23Word格式文档下载.docx_第2页
第2页 / 共10页
vc Symbian开发23Word格式文档下载.docx_第3页
第3页 / 共10页
vc Symbian开发23Word格式文档下载.docx_第4页
第4页 / 共10页
vc Symbian开发23Word格式文档下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

vc Symbian开发23Word格式文档下载.docx

《vc Symbian开发23Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《vc Symbian开发23Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。

vc Symbian开发23Word格式文档下载.docx

aStream);

voidExternalizeL(RWriteStream&

aStream)const;

//外化

voidInternalizeL(RReadStream&

voidDisplay();

CStudent();

//无参构造函数

private:

CStudent(TInt32aNo,TInt32aScore);

voidConstructL(TDesC&

aName);

HBufC*iName;

TInt32iNo;

//明确指明Int类型的位数

TInt32iScore;

};

CStudent*CStudent:

:

NewLC(TDesC&

aName,TInt32aNo,TInt32aScore)

CStudent*self=new(ELeave)CStudent(aNo,aScore);

//构造CStudent指针对象

CleanupStack:

PushL(self);

//压入指针栈

self->

ConstructL(aName);

//赋值描述符,可能引起异常

Pop(self);

//弹出指针栈

returnself;

}

CStudent:

CStudent(){}

CStudent(TInt32aNo,TInt32aScore)

iNo=aNo;

//学号

iScore=aScore;

//分数

voidCStudent:

ConstructL(TDesC&

aName)

iName=aName.AllocL();

//注意这里的赋值方法

~CStudent()//析构函数

deleteiName;

iName=NULL;

ExternalizeL(RWriteStream&

aStream)const

aStream.WriteInt32L(iName->

Des().MaxLength());

//写入iName的最大长度

aStream<

<

*iName;

//写入姓名

aStream.WriteInt32L(iNo);

//写入学号

aStream.WriteInt32L(iScore);

//写入分数

InternalizeL(RReadStream&

aStream)

if(iName!

=NULL)//如果iName不为空

//释放iName资源(内存)

}

TInt32max;

max=aStream.ReadInt32L();

//读取iName的最大长度

iName=HBufC:

NewL(aStream,max);

//读取iName的名字

iNo=aStream.ReadInt32L();

//读取学号

iScore=aStream.ReadInt32L();

//读取分数

NewLC(RReadStream&

CStudent*self=new(ELeave)CStudent;

InternalizeL(aStream);

//进行内化

Display()

_LIT(KNo,"

No=%d\n"

);

_LIT(KScore,"

score=%d\n"

_LIT(KNewLine,"

\n"

console->

Printf(*iName);

Printf(KNewLine);

Printf(KNo,iNo);

Printf(KScore,iScore);

Printf(_L("

pressanykeytocontiune\n"

));

Getch();

classCTeacher:

//构造CTeacher指针对象(名字,学号,年龄)

staticCTeacher*NewLC(TDesC&

aName,TInt32aNo,TInt32aAge);

~CTeacher();

//构造函数,用于读取文件

staticCTeacher*NewLC(RReadStream&

CTeacher();

CTeacher(TInt32aNo,TInt32aAge);

TInt32iAge;

CTeacher*CTeacher:

aName,TInt32aNo,TInt32aAge)

CTeacher*self=new(ELeave)CTeacher(aNo,aAge);

CTeacher:

CTeacher(TInt32aNo,TInt32aAge)

iAge=aAge;

CTeacher(){};

voidCTeacher:

~CTeacher()

//写入名称长度

//写入编号

aStream.WriteInt32L(iAge);

//写入年龄

=NULL)

//读取名字长度

//根据长度,读取名称

//读取编号

iAge=aStream.ReadInt32L();

//读取年龄

CTeacher*self=new(ELeave)CTeacher;

_LIT(KAge,"

Age=%d\n"

Printf(KAge,iAge);

pressanykeytocontinue\n"

voidTSStoreL(RFsaFs,TDesC&

aFileName)

_LIT(KName1,"

gyb"

_LIT(KName2,"

lwm"

_LIT(KName3,"

ds"

_LIT(KName4,"

wxf"

TBuf<

10>

Name1(KName1);

Name2(KName2);

Name3(KName3);

Name4(KName4);

CStudent*stu1=CStudent:

NewLC(Name1,1,60);

CStudent*stu2=CStudent:

NewLC(Name2,2,80);

CTeacher*teacher1=CTeacher:

NewLC(Name3,1,23);

CTeacher*teacher2=CTeacher:

NewLC(Name4,2,24);

CArrayFixFlat<

CStudent>

*array1=new(ELeave)CArrayFixFlat<

(4);

CTeacher>

*array2=new(ELeave)CArrayFixFlat<

array1->

AppendL(*stu1);

AppendL(*stu2);

array2->

AppendL(*teacher1);

AppendL(*teacher2);

//建立直接文件存储

CFileStore*store=CDirectFileStore:

ReplaceLC(aFs,aFileName,EFileWrite);

store->

SetTypeL(TUidType(store->

Layout()));

//设置存储类型

CStreamDictionary*dictionary=CStreamDictionary:

NewLC();

//建立流字典写入学生写入学生数据

RStoreWriteStreamStuStream;

//写入流

TStreamIdSid=StuStream.CreateLC(*store);

//创建store下的写入流

TInt32numberOfStudents=array1->

Count();

StuStream<

numberOfStudents;

for(TInti=0;

i<

i++)

(*array1)[i].ExternalizeL(StuStream);

StuStream.CommitL();

PopAndDestroy();

//写入教师数据

RStoreWriteStreamTeacherStream;

//写入流

TStreamIdTid=TeacherStream.CreateLC(*store);

TInt32numberOfTeachers=array2->

TeacherStream<

numberOfTeachers;

for(i=0;

(*array2)[i].ExternalizeL(TeacherStream);

TeacherStream.CommitL();

//在流字典中建立流与Uid的映射

dictionary->

AssignL(TUid:

Uid(KStuDataStreamId),Sid);

Uid(KTeachDataStreamId),Tid);

RStoreWriteStreamroot;

//根流

TStreamIdrootid=root.CreateLC(*store);

//创建根流

root<

*dictionary;

root.CommitL();

SetRootL(rootid);

//设置根流

CommitL();

voidTSRestoreL(RFsaFs,TDesC&

(10);

PushL(array1);

PushL(array2);

//打开文件存储

OpenLC(aFs,aFileName,EFileRead);

//创建流字典

RStoreReadStreamrootStream;

rootStream.OpenLC(*store,store->

Root());

//打开根流

rootStream>

>

//读出流字典

TStreamIdSid=dictionary->

At(TUid:

Uid(KStuDataStreamId));

TStreamIdTid=dictionary->

Uid(KTeachDataStreamId));

//读出学生数据

RStoreReadStreamreadStuStream;

readStuStream.OpenLC(*store,Sid);

TInt32numberOfStudents;

readStuStream>

CStudent*stu=CStudent:

NewLC(readStuStream);

PushL(stu);

AppendL(*stu);

Pop(stu);

_LIT(KPrompt1,"

Liststudents:

Printf(KPrompt1);

(*array1)[i].Display();

//读出教师数据

RStoreReadStreamreadTeacherStream;

readTeacherStream.OpenLC(*store,Tid);

TInt32numberOfTeachers;

readTeacherStream>

CTeacher*teacher=CTeacher:

NewLC(readTeacherStream);

PushL(teacher);

AppendL(*teacher);

Pop(teacher);

_LIT(KPrompt2,"

Listteachers:

Printf(KPrompt2);

(*array2)[i].Display();

PopAndDestroy(store);

PopAndDestroy

(2);

voiddoExampleL()

RFsiFs;

User:

LeaveIfError(iFs.Connect());

_LIT(KFileName,"

c:

\\stuList1.txt"

20>

FileName(KFileName);

TSStoreL(iFs,FileName);

TSRestoreL(iFs,FileName);

iFs.Close();

运行效果

在之后的学习中,我们将继续介绍有关文件读写方面的知识,大家可以先运行这个例子体会一下

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1