文本行查询系统[4]-顶层查询类的实现
来源:互联网 发布:cst软件 mac 编辑:程序博客网 时间:2024/04/29 13:07
// Query.cs
using System;
using System.Collections;
using System.Text;
namespace SEI.DL88250.SourceCodes.CSharp.QTL
{
/// <summary>查询类的基类
/// </summary>
public abstract class Query
{
/// <summary>文本内容,复制于系统文本缓冲区
/// </summary>
protected static ArrayList _textContent;
/// <summary>查询的结果,行号
/// </summary>
protected ArrayList _solutionIndex;
/// <summary>缺省的构造器
/// </summary>
/// <remarks>从系统缓冲区拷贝文本内容</remarks>
public Query()
{
_textContent = QTL.textContentBuffer;
_solutionIndex = new ArrayList();
}
/// <summary>抽象查询方法
/// </summary>
public abstract void Search();
/// <value>属性,返回/设置结果行号集
/// </value>
/// <remarks>返回/设置
/// <see cref="_solutionIndex"/>字段
/// </remarks>
public ArrayList Solution
{
get { return _solutionIndex; }
set { _solutionIndex = (ArrayList)value; }
}
}
}
using System;
using System.Collections;
using System.Text;
namespace SEI.DL88250.SourceCodes.CSharp.QTL
{
/// <summary>查询类的基类
/// </summary>
public abstract class Query
{
/// <summary>文本内容,复制于系统文本缓冲区
/// </summary>
protected static ArrayList _textContent;
/// <summary>查询的结果,行号
/// </summary>
protected ArrayList _solutionIndex;
/// <summary>缺省的构造器
/// </summary>
/// <remarks>从系统缓冲区拷贝文本内容</remarks>
public Query()
{
_textContent = QTL.textContentBuffer;
_solutionIndex = new ArrayList();
}
/// <summary>抽象查询方法
/// </summary>
public abstract void Search();
/// <value>属性,返回/设置结果行号集
/// </value>
/// <remarks>返回/设置
/// <see cref="_solutionIndex"/>字段
/// </remarks>
public ArrayList Solution
{
get { return _solutionIndex; }
set { _solutionIndex = (ArrayList)value; }
}
}
}
// UnitaryQuery.cs
using System;
using System.Collections;
using System.Text;
namespace SEI.DL88250.SourceCodes.CSharp.QTL
{
/// <summary>
/// 单关键字查询类
/// </summary>
public class UnitaryQuery : Query
{
/// <summary>查询关键字
/// </summary>
protected string _op;
/// <value>返回关键字</value>
/// <remarks>返回
/// <see cref="_op"/>字段
/// </remarks>
public string Op
{
get { return _op; }
}
/// <summary>缺省的构造器,设查询关键字串为空
/// </summary>
public UnitaryQuery()
{
_op = null;
}
/// <summary>带参数的构造器,初始化查询关键字串并开始查询
/// </summary>
/// <param name="op">查询关键字串</param>
public UnitaryQuery(string op)
{
_op = op;
Search();
}
/// <summary>带参数的构造器,直接根据参数构造查询结果
/// </summary>
/// <param name="solution">查询结果</param>
/// <remarks>这个特殊的构造器主要是提供给NotQuery类方法使用</remarks>
public UnitaryQuery(ArrayList solution)
{
_solutionIndex = solution;
}
/// <summary>将包含查询关键字的行记录到结果集合里</summary>
/// <remarks>覆盖了基类的Search()方法</remarks>
public override void Search()
{
for (int i = 1; i < _textContent.Count; i++)
{
if (-1 != ((string)_textContent[i]).IndexOf(_op))
{
_solutionIndex.Add((object)(i));
}
}
}
}
}
using System;
using System.Collections;
using System.Text;
namespace SEI.DL88250.SourceCodes.CSharp.QTL
{
/// <summary>
/// 单关键字查询类
/// </summary>
public class UnitaryQuery : Query
{
/// <summary>查询关键字
/// </summary>
protected string _op;
/// <value>返回关键字</value>
/// <remarks>返回
/// <see cref="_op"/>字段
/// </remarks>
public string Op
{
get { return _op; }
}
/// <summary>缺省的构造器,设查询关键字串为空
/// </summary>
public UnitaryQuery()
{
_op = null;
}
/// <summary>带参数的构造器,初始化查询关键字串并开始查询
/// </summary>
/// <param name="op">查询关键字串</param>
public UnitaryQuery(string op)
{
_op = op;
Search();
}
/// <summary>带参数的构造器,直接根据参数构造查询结果
/// </summary>
/// <param name="solution">查询结果</param>
/// <remarks>这个特殊的构造器主要是提供给NotQuery类方法使用</remarks>
public UnitaryQuery(ArrayList solution)
{
_solutionIndex = solution;
}
/// <summary>将包含查询关键字的行记录到结果集合里</summary>
/// <remarks>覆盖了基类的Search()方法</remarks>
public override void Search()
{
for (int i = 1; i < _textContent.Count; i++)
{
if (-1 != ((string)_textContent[i]).IndexOf(_op))
{
_solutionIndex.Add((object)(i));
}
}
}
}
}
// BinaryQuery.cs
using System;
using System.Collections;
namespace SEI.DL88250.SourceCodes.CSharp.QTL
{
/// <summary>
/// 二元查询类
/// </summary>
public abstract class BinaryQuery : Query
{
/// <summary>op1的运算结果
/// </summary>
protected ArrayList _resultOfOp1;
/// <summary>op2的运算结果
/// </summary>
protected ArrayList _resultOfOp2;
/// <summary>缺省的构造器
/// </summary>
public BinaryQuery()
{
_resultOfOp1 = new ArrayList();
_resultOfOp2 = new ArrayList();
}
/// <summary>带参数的构造器,初始化以前的查询结果
/// </summary>
/// <param name="q1">运算量1</param>
/// <param name="q2">运算量2</param>
public BinaryQuery(Query q1, Query q2)
{
_resultOfOp1 = q1.Solution;
_resultOfOp2 = q2.Solution;
}
}
}
using System;
using System.Collections;
namespace SEI.DL88250.SourceCodes.CSharp.QTL
{
/// <summary>
/// 二元查询类
/// </summary>
public abstract class BinaryQuery : Query
{
/// <summary>op1的运算结果
/// </summary>
protected ArrayList _resultOfOp1;
/// <summary>op2的运算结果
/// </summary>
protected ArrayList _resultOfOp2;
/// <summary>缺省的构造器
/// </summary>
public BinaryQuery()
{
_resultOfOp1 = new ArrayList();
_resultOfOp2 = new ArrayList();
}
/// <summary>带参数的构造器,初始化以前的查询结果
/// </summary>
/// <param name="q1">运算量1</param>
/// <param name="q2">运算量2</param>
public BinaryQuery(Query q1, Query q2)
{
_resultOfOp1 = q1.Solution;
_resultOfOp2 = q2.Solution;
}
}
}
- 文本行查询系统[4]-顶层查询类的实现
- 文本行查询系统[5]-业务逻辑查询类的实现
- 文本行查询系统[6]-系统用户接口的实现
- 文本行查询系统[3]-系统的体系层次设计
- 文本查询系统
- 文本行查询系统[2]-表达式分析器的构建
- 文本行查询系统[7]-测试
- c++primer文本查询系统
- 文本行查询系统[1]-理论与原理
- 支持逻辑运算符的文本查询程序的OOP实现
- 根据接口名字查询系统中所有的实现类
- 文本查询
- 文本查询
- SICP中查询系统的实现
- 查询词提示系统的简单实现
- 文本编辑器的查询功能
- 标准库+类——实现文本查询
- 50万邮件文本分域检索与查询的python实现(4)
- 文本行查询系统[1]-理论与原理
- 对 FreeTextBox 在线编辑器的功能改进
- 写字。留念
- 文本行查询系统[2]-表达式分析器的构建
- 文本行查询系统[3]-系统的体系层次设计
- 文本行查询系统[4]-顶层查询类的实现
- 文本行查询系统[5]-业务逻辑查询类的实现
- aa
- Preparing a thesis or professional paper ?
- 文本行查询系统[6]-系统用户接口的实现
- 头顶一片天
- 轻松实现检测Windows肉鸡系统信息
- 文本行查询系统[7]-测试
- TO Z28