📄 noteinfomanage.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 + -