📄 filemanagement.cpp
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -