filemanagement.cpp

来自「一个比较完整的有关移动开发的例子 vc++6.0下编译通过」· C++ 代码 · 共 96 行

CPP
96
字号
#include "FileManagement.h"
#include "DataManagement.h"
#include "FairyLandAppUi.h"
#include <s32file.h>
void CFileManagement::ReadFileL()
{
	//创建会话
	RFs iFession;
	User::LeaveIfError(iFession.Connect());
	
	RFileReadStream readStream;
	TBuf<64> sFileName;
#ifdef __WINS__
	sFileName.Copy(_L("c:\\memo.str"));
#else
	CFairyLandAppUi* pApp=(CFairyLandAppUi*)CEikonEnv::Static()->AppUi();
	pApp->GetAppPath(sFileName);
	sFileName.Append(_L("memo.str"));
#endif
	if (KErrNone!=readStream.Open(iFession,sFileName,EFileRead))
	{
		iFession.Close();
		return;
	}
	readStream.PushL();
	CFairyLandAppUi* pUi=(CFairyLandAppUi*)CEikonEnv::Static()->AppUi();
	CArrayVarFlat<CDataManagemnet>* iArray=pUi->GetArray();
	TInt nNum=0;	
	nNum=readStream.ReadInt32L();
	for (TInt i=0;i<nNum;i++)
	{
		TInt nLen=0;
		nLen=readStream.ReadInt32L();
//		HBufC*	pTitle = HBufC::NewL(nLen);
		TBuf<10> pTitle;
		readStream >> pTitle;//读标题
		nLen=readStream.ReadInt32L();
		TBuf<500> pContent;
		pContent.Zero();
		if (nLen!=0)
		{
			readStream>>pContent;
		}
		CDataManagemnet* data=CDataManagemnet::NewL(pTitle,pContent);
		iArray->AppendL(*data,sizeof(*data));
		delete data;
	}

	readStream.Pop();
	readStream.Release();
	readStream.Close();
	iFession.Close();
}



void CFileManagement::WriteFileL()
{
	RFs iFession;
	User::LeaveIfError(iFession.Connect());
	
	TBuf<64> sFileName;
#ifdef __WINS__
	sFileName.Copy(_L("c:\\memo.str"));
#else
	CFairyLandAppUi* pApp=(CFairyLandAppUi*)CEikonEnv::Static()->AppUi();
	pApp->GetAppPath(sFileName);
	sFileName.Append(_L("memo.str"));
#endif
	iFession.Delete(sFileName);
	RFileWriteStream writeStream;
	User::LeaveIfError(writeStream.Create(iFession, sFileName, EFileWrite));
	
	writeStream.PushL();
	CFairyLandAppUi* pUi=(CFairyLandAppUi*)CEikonEnv::Static()->AppUi();
	CArrayVarFlat<CDataManagemnet>* iArray=pUi->GetArray();
	TInt nNum=iArray->Count();
	writeStream.WriteInt32L(nNum);
	for (TInt i=0;i<nNum;i++)
	{
		writeStream.WriteInt32L(iArray->At(i).GetTitle()->Length());
		writeStream<<iArray->At(i).GetTitle()->Des();
		if (iArray->At(i).GetContent()==NULL)
		{
			writeStream.WriteInt32L(0);
			continue;
		}
		writeStream.WriteInt32L(iArray->At(i).GetContent()->Length());
		writeStream<<iArray->At(i).GetContent()->Des();
	}
	writeStream.CommitL();
	writeStream.Pop();
	writeStream.Release();
	writeStream.Close();
	iFession.Close();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?