用C#实现基于查寻字符串的文件行查询器(1)-概述

原创 2005年06月01日 22:17:00
作者:yxin1322
http://blog.csdn.net/yxin1322
转载请注明出处

     第一次写blog,真是无从下笔,不知道写点什么好,正好前几天C#实验课做了一个基于查寻字符串的文件行查询器。由于程序涉及到的知识颇为丰富,所以将整个程序的设计和实现过程记录在此,算是一个总结。

     所谓文件行查询就是以文本文件的行作为查找单位,查询结果返回所有满足条件的行。

     所谓查询字符串,就是通过一个有格式的字符串来表明你将要查找的内容,格式字符串中可以使用三种逻辑运算符&&、||和! ,分别表示与、或、非运算,三种运算符的优先级别从高到低的顺序是!、$$、||,同时可以用括号来控制逻辑运算的结合顺序,如:

  • aaa :查找的含有关键字为aaa的行
  • aaa && bbb:查找同时含有aaa和bbb的行
  • aaa||bbb:查找含有aaa或bbb的行
  • !aaa:查找不含有aaa的行
  • !(aaa && bbb):查找不同时包含aaa和bbb的行

     毫无疑问,要实现查找,我们首先要解析出查询字符串,使程序能够按照各运算符的优先级依次结合查找。这里我选择最常用的逆波兰式来解析查询字符串,因为后置运算符的逆波兰式特别适合计算机处理表达式计算,同时逆波兰式不需要用括号来控制运算结合顺序。当查询字符串转换成逆波兰式后,就可以按照其特有的算法来进行查询操作了。对于查询操作,定义了相关类进行操作,我将在以后的章节里详细介绍。(未完...)

 

C#字符串中获取指定行的方法

例: 字符串在文本中的显示:换行(\r\n)空行(\r\n\r\n) abcdefg hyjklmn ********** shaslkdfjhsldkfsldkfs ...
  • SunCherryDream
  • SunCherryDream
  • 2014年03月11日 11:36
  • 3510

用C#实现基于查寻字符串的文件行查询器(3)-设计与实现

作者:yxin1322http://blog.csdn.net/yxin1322转载请注明出处     上面2节我们已经很了解了程序应该具有的功能以及采用的算法,下面我们可以开始设计并实现程序了。  ...
  • yxin1322
  • yxin1322
  • 2005年06月02日 23:19
  • 1351

用C#实现基于查寻字符串的文件行查询器(2)-相关技术介绍

作者:yxin1322http://blog.csdn.net/yxin1322转载请注明出处一、逆波兰式的转换:     简单表达式有三中表示方法:中缀表示法:把双目运算符放在两个运算分量中间。前缀...
  • yxin1322
  • yxin1322
  • 2005年06月01日 23:38
  • 1551

C#中,将字符串一行行写入文本文件中

下面的代码示例显示向文本文件写入文本的简单方法。 using System; using System.IO; class Test  {     public static void Ma...
  • quxiao2002
  • quxiao2002
  • 2012年02月27日 23:03
  • 8927

星座查询:C#版根据生日查星座

public string GetAtomFromBirthday(DateTime birthday){    float birthdayF = 0.00F;    if (birthday.Mo...
  • jxufewbt
  • jxufewbt
  • 2007年09月02日 15:39
  • 2901

用shell从文件中提取指定字符串的行

#!/bin/bash  IFS=" " while read -r line  do    if [ "DROP TABLE" = ${line:0:10} ];    then...
  • Javascxl
  • Javascxl
  • 2014年04月21日 16:11
  • 1778

算法题/用递归实现一个字符串的全排列

python2.7算法思路: n个元素的全排列=(n-1个元素的全排列)+(另一个元素作为前缀); 出口:如果只有一个元素的全排列,则说明已经排完,则输出数组; 不断将每个元素放作第一个元素,然...
  • szj_huhu
  • szj_huhu
  • 2017年08月14日 16:34
  • 175

Java多线程 -- 线程的调度优先级

Java线程:线程的调度-优先级 与线程休眠类似,线程的优先级仍然无法保障线程的执行次序。只不过,优先级高的线程获取CPU资源的概率较大,优先级低的并非没机会执行。   线程的优先级用1-10之...
  • CHBSRZF
  • CHBSRZF
  • 2015年08月26日 16:34
  • 664

字符串处理总结(C#String类)

转载地址:http://blog.csdn.net/angelazy/article/details/8501776 C#中提供了比较全面的字符串处理方法,很多函数都进行了封装为我们的编程工作提...
  • wangzhen209
  • wangzhen209
  • 2016年05月18日 10:44
  • 1525

C#操作文件之 按行写入文件实例

下面是利用C#按行写入文件的操作:              FileInfo finfo = new FileInfo("D:/result.dat");            if (!finfo...
  • lightlater
  • lightlater
  • 2007年11月22日 22:44
  • 3566
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用C#实现基于查寻字符串的文件行查询器(1)-概述
举报原因:
原因补充:

(最多只允许输入30个字)