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

📄 noteinfomanage.cpp

📁 symbian 2rd 备忘录
💻 CPP
字号:
#include "NoteInfoManage.h"

#include <f32file.h>
#include <s32file.h>
#include <eikenv.h>
#include <aknnotewrappers.h>
#include <coemain.h>
#include "AssistantAppUi.h"


CNoteInfoManage* CNoteInfoManage::NewL()
{
	CNoteInfoManage* self = NewLC();
	CleanupStack::Pop(self);
	return self;
}
CNoteInfoManage* CNoteInfoManage::NewLC()
{
	CNoteInfoManage* self = new(ELeave) CNoteInfoManage;
	CleanupStack::PushL(self);
	self->ConstructL();
	return self;
}
CNoteInfoManage::~CNoteInfoManage()
{
	for(TInt i = 0;i<m_NoteInfoArray.Count();i++)
	{
		delete m_NoteInfoArray[i];
	}
 	m_NoteInfoArray.Reset();	
//	m_NoteInfoArray.ResetAndDestroy();
}
void CNoteInfoManage::Add(const TDesC& aDate,const TDesC& aTitle,const TDesC& aContent)
{
	CNoteInfo* editINfo = new(ELeave) CNoteInfo;
	editINfo->SetDate(aDate);
	editINfo->SetTitle(aTitle);
	editINfo->SetContent(aContent);
	m_NoteInfoArray.Append(editINfo);

}
void CNoteInfoManage::Delete(TInt aIndex)
{
	delete m_NoteInfoArray[aIndex];
	m_NoteInfoArray.Remove(aIndex);
}
void CNoteInfoManage::Modify(TInt aIndex, const TDesC& aTitle, const TDesC& aContent)
{

	m_NoteInfoArray[aIndex]->SetTitle(aTitle);
	m_NoteInfoArray[aIndex]->SetContent(aContent);
}
TInt CNoteInfoManage::GetCount()
{
	return m_NoteInfoArray.Count();
}
void CNoteInfoManage::GetNoteInfo(TInt aIndex, TDes& aDate,TDes& aTitle,TDes& aContent)
{
	aDate.Copy(m_NoteInfoArray[aIndex]->GetDate()->Des());
	aTitle.Copy(m_NoteInfoArray[aIndex]->GetTitle()->Des());
	if(m_NoteInfoArray[aIndex]->GetContent() != NULL)
	{
		aContent.Copy(m_NoteInfoArray[aIndex]->GetContent()->Des());
	}
}
void CNoteInfoManage::SaveNoteInfo()
{
	WriteFile();
}

CNoteInfoManage::CNoteInfoManage()
{

}
void CNoteInfoManage::ConstructL()
{
	ReadFile();
}
void CNoteInfoManage::ReadFile()
{
	RFs iFession;
	TBuf<KMaxPath> sFileName;
#ifdef __WINS__
	sFileName.Copy(_L("c:\\file.str"));
#else
	/*sFileName.Copy(_L("c:\\file.str"));*/
	CAssistantAppUi* pApp = (CAssistantAppUi*)CEikonEnv::Static()->AppUi();
	pApp->GetAppPath(sFileName);
	sFileName.Append(_L("file.str"));
#endif

	User::LeaveIfError(iFession.Connect());
	RFileReadStream readStream;
	if(KErrNone != readStream.Open(iFession, sFileName,EFileRead))
	{
		iFession.Close();
		return;
	}
	readStream.PushL();

	TInt nCount = readStream.ReadInt32L();
	for(TInt i=0; i<nCount; i++)
	{
		CNoteInfo* pTemp = new(ELeave)CNoteInfo;
		pTemp->InternalizeL(readStream);
		m_NoteInfoArray.Append(pTemp);
	}

	readStream.Pop();
	readStream.Release();
	iFession.Close();
}
void CNoteInfoManage::WriteFile()
{

	RFs aFs;
	TBuf<KMaxPath> sFileName;
#ifdef __WINS__
	sFileName.Copy(_L("c:\\file.str"));
#else
	/*sFileName.Copy(_L("c:\\file.str"));*/
	CAssistantAppUi* pApp = (CAssistantAppUi*)CEikonEnv::Static()->AppUi();
	pApp->GetAppPath(sFileName);
	sFileName.Append(_L("file.str"));
#endif
	
	User::LeaveIfError(aFs.Connect());
	aFs.Delete(_L("file.str"));

	RFileWriteStream writeStream;
	User::LeaveIfError(writeStream.Create(aFs, sFileName, EFileWrite));
	writeStream.PushL();

	writeStream.WriteInt32L(m_NoteInfoArray.Count());
	for (TInt i=0; i<m_NoteInfoArray.Count(); i++)
	{
		CNoteInfo* pTemp = (CNoteInfo*)m_NoteInfoArray[i];
		pTemp->ExternalizeL(writeStream);
	}

	writeStream.CommitL();
	writeStream.Pop();
	writeStream.Release();
	aFs.Close();
}

⌨️ 快捷键说明

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