📄 myxmlparseview2.cpp
字号:
/*
* ============================================================================
* Name : CMyXMLParseView2 from MyXMLParseView2.h
* Part of : MyXMLParse
* Created : 19.05.2008 by
* Implementation notes:
* Initial content was generated by Series 60 Application Wizard.
* Version :
* Copyright:
* ============================================================================
*/
// INCLUDE FILES
#include <aknviewappui.h>
#include <avkon.hrh>
#include <MyXMLParse.rsg>
#include "MyXMLParseView2.h"
#include "MyXMLParseContainer2.h"
#include "Myxmlparse.hrh"
#include "MyXMLParseAppUi.h"
#include <charconv.h>//// for char set convert GBK - Unicode
#include <eikmenup.h>
#include <eikenv.h>///iEikonEnv
#include <AknQueryDialog.h> //弹出对话框
#include <f32file.h >//文件
#include <aknnotewrappers.h>//非阻塞对话框
#include "MyXMLParseAppUi.h"
#include "s32file.h"//for readstream
// ================= MEMBER FUNCTIONS =======================
// ---------------------------------------------------------
// CMyXMLParseView2::ConstructL(const TRect& aRect)
// EPOC two-phased constructor
// ---------------------------------------------------------
//
void CMyXMLParseView2::ConstructL()
{
BaseConstructL( R_MYXMLPARSE_VIEW2 );
}
// ---------------------------------------------------------
// CMyXMLParseView2::~CMyXMLParseView2()
// destructor
// ---------------------------------------------------------
//
CMyXMLParseView2::~CMyXMLParseView2()
{
if ( iContainer )
{
AppUi()->RemoveFromViewStack( *this, iContainer );
}
delete iContainer;
}
// ---------------------------------------------------------
// TUid CMyXMLParseView2::Id()
//
// ---------------------------------------------------------
//
TUid CMyXMLParseView2::Id() const
{
return KView2Id;
}
// ---------------------------------------------------------
// CMyXMLParseView2::HandleCommandL(TInt aCommand)
// takes care of view command handling
// ---------------------------------------------------------
//
void CMyXMLParseView2::HandleCommandL(TInt aCommand)
{
switch ( aCommand )
{
case EAknSoftkeyOk:
{
iEikonEnv->InfoMsg( _L("view2 ok") );
break;
}
case EAknSoftkeyBack:
{
AppUi()->ActivateLocalViewL( TUid::Uid( EMultiViewsView1Id ) );
break;
}
default:
{
AppUi()->HandleCommandL( aCommand );
break;
}
}
}
// ---------------------------------------------------------
// CMyXMLParseView2::HandleClientRectChange()
// ---------------------------------------------------------
//
void CMyXMLParseView2::HandleClientRectChange()
{
if ( iContainer )
{
iContainer->SetRect( ClientRect() );
}
}
// ---------------------------------------------------------
// CMyXMLParseView2::DoActivateL(...)
//
// ---------------------------------------------------------
//
void CMyXMLParseView2::DoActivateL(
const TVwsViewId& /*aPrevViewId*/,TUid /*aCustomMessageId*/,
const TDesC8& /*aCustomMessage*/)
{
if (!iContainer)
{
CMyXMLParseAppUi* appUi = static_cast<CMyXMLParseAppUi*>(AppUi());
iFileName=appUi->Share();
Edit();
iContainer = new (ELeave) CMyXMLParseContainer2;
iContainer->SetMopParent(this);
iContainer->ConstructL(displayBuf, ClientRect() );
AppUi()->AddToStackL( *this, iContainer );
}
}
// ---------------------------------------------------------
// CMyXMLParseView2::DoDeactivate()
//
// ---------------------------------------------------------
//
void CMyXMLParseView2::DoDeactivate()
{
if ( iContainer )
{
AppUi()->RemoveFromViewStack( *this, iContainer );
}
delete iContainer;
iContainer = NULL;
}
// End of File
void CMyXMLParseView2::Edit()
{
_LIT(iFileNameleft,"c:\\Nokia\\");
TBuf<128>iPath(iFileNameleft);
iPath.Append(iFileName);
RFs iFs;
RFile aFile;
iFs.Connect();//连接文件
aFile.Open(iFs,iPath,EFileRead);//打开文件
TBuf8<1024>readBuf;
// aFile.Write(_L8("Some thing you wanna write...\n"));
// aFile.Read(readBuf,100);
ConvGbk2Uni(readBuf,displayBuf);//转换
aFile.Close();
iFs.Close();
}
void CMyXMLParseView2::ConvGbk2Uni(TDesC8& original, TDes& res)
{
RFs aFileServerSession;
aFileServerSession.Connect();
CCnvCharacterSetConverter* converter=CCnvCharacterSetConverter::NewLC();
if(converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,aFileServerSession)!=CCnvCharacterSetConverter::EAvailable)
User::Leave(KErrNotSupported);
TInt state=CCnvCharacterSetConverter::KStateDefault;
TPtrC8 str( original );
HBufC* iInfoText = HBufC::NewL( str.Length() );
TPtr16 ptr = iInfoText->Des();
if(CCnvCharacterSetConverter::EErrorIllFormedInput == converter->ConvertToUnicode(ptr, str, state))
User::Leave(KErrArgument);
res.Zero() ;
res.Copy(ptr) ;
aFileServerSession.Close();
CleanupStack::PopAndDestroy();
delete iInfoText;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -