⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file.cpp

📁 symbian系统上的记事本程序
💻 CPP
字号:
#include "File.h"
#include "s32file.h"
#include <aknnotewrappers.h> 
#include <aknviewappui.h>
#include <avkon.hrh>
#include "Message.h"

void CFileMessage::WriteUser(TDes& aname, TDes& apasw)
{
	RFs iFession;
	User::LeaveIfError(iFession.Connect());
	iFession.Delete(_L("userinf.ini"));
	RFileWriteStream writeStream;
	User::LeaveIfError(writeStream.Create(iFession, _L("C:\\userinf.ini"), EFileWrite));
	writeStream.PushL();      
	
	writeStream.WriteInt32L(aname.MaxLength());
	writeStream << aname;             
	
	writeStream.WriteInt32L(apasw.MaxLength());
	writeStream << apasw; 
	
	writeStream.CommitL();
	writeStream.Pop();
	writeStream.Release();
	iFession.Close();
	
	_LIT(message,"write ok !");
	CAknInformationNote* informationNote = new (ELeave) CAknInformationNote;
	informationNote->ExecuteLD(message);
}

void CFileMessage::ReadUser(TDes& aname, TDes& apasw)
{
	RFs iFession;
	User::LeaveIfError(iFession.Connect());
	RFileReadStream readStream;
	if( KErrNone != readStream.Open(iFession, _L("C:\\userinf.ini"), EFileRead))
	{
		iFession.Close();
		return;
	}
	readStream.PushL();
	
	TBuf<16> buf;
	
	TInt nLen = 0;
	nLen = readStream.ReadInt32L();
	if(nLen > 0)
	{
		readStream >> aname;
	}
	nLen = readStream.ReadInt32L();
	if(nLen > 0)
	{
		readStream >> apasw;
	}
	
	readStream.Pop();
	readStream.Release();	
	iFession.Close();
}

CFileMessage::CFileMessage()
{
	
	
}

CFileMessage::~CFileMessage()
{
	if(NULL != iFileInfo)
	{
		delete iFileInfo;
		iFileInfo = NULL;
	}
}

CFileMessage* CFileMessage::NewL()
{
	CFileMessage* self = CFileMessage::NewLC();
	CleanupStack::Pop(self);
	return self;
}

CFileMessage* CFileMessage::NewLC()
{
	CFileMessage* self = new(ELeave) CFileMessage;
	CleanupStack::PushL(self);
	self->ConstructL();
	return self;
}

void CFileMessage::ConstructL()
{
	iFileInfo = new(ELeave) CArrayFixFlat<CMessage>(10);
}

void CFileMessage::LoadFileInfo(CArrayFixFlat<CMessage>* aInfo) // 加载文件信息
{
	_LIT(KFileInfo, "C:\\EveryDay.data");
	RFs& Fession = CEikonEnv::Static()->FsSession();
	RFileReadStream ReadStream;
	// User::LeaveIfError(ReadStream.Open(Fession, KFileInfo, EFileRead));
	if(KErrNone != ReadStream.Open(Fession, KFileInfo, EFileRead))
	{
		return ;
	}
	
	ReadStream.PushL();
	
	TInt32 Length=0;	
	CMessage* file=new(ELeave) CMessage;
	TInt32 num=0;
	num=ReadStream.ReadInt32L();
	TBuf<32> mtitle;
	TBuf<128> mcontent;
	
	for (TInt32 i=0;i<num;i++)
	{
		Length=ReadStream.ReadInt32L();
		if(Length>0)
		{
			ReadStream >> mtitle;
			
		}
		Length=ReadStream.ReadInt32L();
		if (Length>0)
		{
			
			ReadStream >> mcontent;	
		}
		
		file->SetTitleInfo(mtitle);
		file->SetContInfo(mcontent);
		
		aInfo->AppendL(*file);
		
	}
	
	ReadStream.Pop();
	ReadStream.Release();
	
	delete file;
}

void CFileMessage::SaveFileInfo(CArrayFixFlat<CMessage>* aInfo) // 保存文件信息
{
	_LIT(KFileInfo, "C:\\EveryDay.data");
	RFs& Fession = CEikonEnv::Static()->FsSession();
	Fession.Delete(KFileInfo);
	RFileWriteStream writeStream;
	User::LeaveIfError(writeStream.Create(Fession, KFileInfo, EFileWrite));
	/*	writeStream.PushL();*/
	
	TInt32 nLeng = aInfo->Count();
	writeStream << nLeng;
	TInt32 nsize = 0;
	
	for(TInt32 i=0; i<nLeng; ++i)
	{
		nsize=aInfo->At(i).GetTitleInfo().Length();
		writeStream.WriteInt32L(nsize);
		if (nsize>0)
		{
			writeStream << aInfo->At(i).GetTitleInfo();
		}
		
		nsize=aInfo->At(i).GetContInfo().Length();
		writeStream.WriteInt32L(nsize);
		if (nsize>0)
		{
			writeStream << aInfo->At(i).GetContInfo();
		}
	}
	writeStream.CommitL();
	/*	writeStream.Pop();*/
	writeStream.Release();
	
}

⌨️ 快捷键说明

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