Codejie's C++ Space

Using C++

LingosHook:万事具备,只欠干活了~


    今天为了测试了SQLite3相关代码,不得不去实现查询结果解析代码。由于Lingoes的Dictionary是可以配置的,不同的词典会有不同的结果,这样对于Lingoes来说是个非常灵活的能力--翻译跟词典无关。但对于结果处理的一侧来说就非常繁琐了。
    基于Lingoes这个特性,翻译结果的解析也就跟具体的词典相关,因此设计一个CDictResultParser基类就是需要的了,不同的词典作为其子类存在,根据返回结果中的词典名词使用不同的词典解析对象处理。就有了下面的类声明代码。当前还没有确定使用哪个HTML Parser,因此先直接进行text分解。由于TEXT分解对于处理多词典方式比较繁琐,所以目前仅支持Lingoes自带的英汉缺省词典--Vicon English-Chinese Dictionary。但LingosHook在设计上是支持多词典的,就算以后没有有心情继续做,设计时还是需要为这样的扩展性做考虑的。

#ifndef __DICTRESULTPARSER_H__
#define  __DICTRESULTPARSER_H__

#include 
" wx/wx.h "
#include 
" DBAccess.h "

class  CDictResultParser
{
public :
    CDictResultParser(
const  wxString &  title)
        : m_strTitle(title), m_strNotFound(_(
"" ))
    
{}
    
virtual   ~ CDictResultParser()  {}

    
void  SetNotFoundSubString( const  wxString &  str)  { m_strNotFound  =  str; }

    
virtual   int  ParserText( const  wxString &  text,  const  wxString &  html, CDBAccess::TRecordData &  record)  const   =   0 ;
    
virtual   int  ParserHTML( const  wxString &  html, CDBAccess::TRecordData &  record)  const   =   0 ;
protected :
    wxString m_strTitle;
    wxString m_strNotFound;
}
;

class  CViconECDictResultParser :  public  CDictResultParser
{
public :
    CViconECDictResultParser();
    
virtual   ~ CViconECDictResultParser()  {}

    
virtual   int  ParserText( const  wxString &  text,  const  wxString &  html, CDBAccess::TRecordData &  record)  const ;
    
virtual   int  ParserHTML( const  wxString &  html, CDBAccess::TRecordData &  record)  const ;
}
;


#endif


    将昨天的DBAccess和今天的DictResultParser对象合并到LHTest中,如期获得了下面的结果:



    使用SQLiteSpy显式的,这个软件不错,free的,使用Donote方式,唉,要是有人也Donate这个LingosHook,我也想做的和SQLiteSpy界面一样好看。其是用Delphi写的,要是觉得一般,那看看下面以后LingosHook可能的样子,就知道Delphi做界面的好了,我是用wxWidgets+wxGlade的。。。

posted on 2009-11-18 17:52 codejie 阅读(515) 评论(0)  编辑 收藏 引用 所属分类: C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

Using C++

导航

统计

留言簿(73)

随笔分类(513)

积分与排名

最新评论

阅读排行榜

评论排行榜