资源简介
Everything桌面搜索,原理,源码,强大的功能,与工具everything几乎性能一样

代码片段和文件信息
// BasicSearch.cpp
// 版权所有(C) 陈雄
// Homepage:
// Email:chenxiong0115@163.com chenxiong115@qq.com
// purpose:
// 您可以以任何方式使用本代码,如果您对本代码不满,
// 您可以将其粉碎。您也可以删除版权信息和作者联系方式。
// 如果您给我一个进步的机会,我将万分感谢。
/////////////////////////////////////////////////////////////////////////////////
#include “global.h“
#include “StrMatch.h“
const int ALPHABETA_SIZE=0x80;
const short FAIL_STATE=0x8000; //-32768 用于AC算法
BYTE g_NoCaseTable[ALPHABETA_SIZE]; //搜索时已经初始化
void Helper_InitNoCaseTable()
{
for(int i=0;i if(i>=‘A‘ && i<=‘Z‘) g_NoCaseTable[i]=i+32;
else g_NoCaseTable[i]=i;
}
}
//pParentDir是待考察文件的直接父指针
__forceinline BOOL IsExtnameSat(PDIRECTORY_RECORD pParentDirPDIRECTORY_RECORD* ppDirint *pbSubDirint nCheck)//扩展名满足么
{
PDIRECTORY_RECORD p;
for(int i=0;i {
p=pParentDir;
if(pbSubDir[i]){//含子目录
for(;p;p=p->ParentPtr)
{
if(ppDir[i]==p) return TRUE;
}
}else{//不包含子目录
if(ppDir[i]==p) return TRUE;
}
}
return FALSE;
}
//遍历文件,使用AC算法判断<0x80转换表
//空间优化9~0x31不存在
const DWORDLONG MAX_DWORDLONG=0xffffffffffffffff;
void Helper_OnlyNormalSearchAscii(BOOL bCase
BOOL bDirSearchBOOL bFileSearch
int *pIdExtint nExt
PDIRECTORY_RECORD* ppDirint *pbSubDirint nCheck
)
{
if(pIdExt) bDirSearch=FALSE;//如果存在有效扩展名 不搜索目录
SearchStrOpt *pStrOpt;
if(bCase) pStrOpt=&g_StrOptCase;
else pStrOpt=&g_StrOptNoCase;
ListNormal *pNormal;
int _nMaxStates=1;//最大状态数,至少一个初态
DWORDLONG nTerminalTag=MAX_DWORDLONG;
short iFinalState=-1;
for(pNormal=pStrOpt->pNormal;pNormal;pNormal=pNormal->_pNext){
_nMaxStates+=pNormal->_len;
nTerminalTag&=~(0x1<<(-iFinalState--));
}
//终止状态标志<0 [-1 -2 -3]
short *pStateTable=new short[_nMaxStates*ALPHABETA_SIZE];
short **pStatebase =new short*[_nMaxStates];
//pStatebase[i][0]表示是否为终态标识 pStatebase[i][1]表示fail函数
for(int i=0;i<_nMaxStates;++i) pStatebase[i]=pStateTable+i*ALPHABETA_SIZE;
//初始化所有TO状态为失效状态
for(int i=0;i<_nMaxStates;++i){
*pStatebase[i]=0;//<0时表示终止状态
for(int j=32;jse[i][j]=FAIL_STATE;
}
PWCHAR pWchpWchEnd;
short statenextState;//状态变量
short nTotalState=0;//总状态数
iFinalState=-1;
for(pNormal=pStrOpt->pNormal;pNormal;pNormal=pNormal->_pNext){//增加模式到AC图
state=0;
pWch=pNormal->_wchs;pWchEnd=pNormal->_wchs+pNormal->_len;
for(;pWch nextState=pStatebase[state][*pWch];
if(FAIL_STATE==nextState) break;
state=nextState;
}
//继续添加
for(;pWch pStatebase[state][*pWch]=++nTotalState;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 34182 2010-09-30 15:27 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\BasicSearch.cpp
文件 63996 2010-06-08 18:29 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\DesktopSearch.aps
文件 97281 2010-09-30 15:27 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\DesktopSearch.cpp
文件 5895 2010-05-20 15:28 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\DesktopSearch.rc
文件 890 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\DesktopSearch.sln
..A..H. 193536 2010-06-09 16:52 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\DesktopSearch.suo
文件 6014 2010-05-22 19:10 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\DesktopSearch.vcproj
文件 1413 2010-06-09 16:52 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\DesktopSearch.vcproj.QINGQING.Administrator.user
文件 10005 2010-09-30 15:27 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\DirBasicInfoMap.cpp
文件 1864 2010-09-30 15:27 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\DirBasicInfoMap.h
文件 15771 2010-09-30 15:27 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\DirFilterList.cpp
文件 3148 2010-09-30 15:27 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\DirFilterList.h
文件 13015 2010-09-30 15:27 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\ExtArray.cpp
文件 2722 2010-09-30 15:27 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\ExtArray.h
文件 13790 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\FilterCtrl.cpp
文件 2145 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\FilterCtrl.h
文件 3917 2010-06-09 16:49 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\global.h
文件 5570 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\Helper.h
文件 15912 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\Index.cpp
文件 1765 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\Index.h
文件 4471 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\IndexNodeBlock.h
文件 672 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\Lock.h
文件 1498 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\MemoryMgr.cpp
文件 700 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\MemoryMgr.h
文件 1992 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\MemoryPool.cpp
文件 3100 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\MemoryPool.h
文件 8098 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\NameSort.cpp
文件 8454 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\NameSort.h
文件 8140 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\ntfs.cpp
文件 7126 2010-06-08 13:31 【分享】山寨Everything桌面搜索原理源码\NtfsDesktopSearch\ntfs.h
............此处省略14个文件信息
- 上一篇:s3c2440裸机DS18B20程序
- 下一篇:28335的SPWM调试
相关资源
- Scratch源码
- E4A无障碍跨程序操作类库(带源码、
- 设备管理系统源码
- 安卓wifi直连app源码
- 我的世界源码(易语言版)
- labview编程软件滤波器以及编写程序设
- 我的界面(visual foxpro)源码
- 易语言:一键cf基址源码
- The Secret Path 3D 3D魔方迷宫[源码][scra
- scratch垃圾分类源码(最终版本).sb
- 安卓QQ6.71协议源码易语言,qq协议源码
- 编译原理实验工具及参考源码(lex&
- E盾偷后台工具源码
- UNIX/LINUX编程实践教程的源码
- 十以内加减法练习 powerbuilder源码
- 农场开发项目
- OCR源码
- PLC上位机编程软件
- 用foobar2000听google音乐[更新一下]
- 学生信息管理系统源码
- 用VC 编写的仿QQ聊天室程序源代码
- 毕业论文之温度传感器DS18B20(源码
- 可自定义导航网站源码
- 栅栏填充算法源码(VC)
- msp430F149操作红外接收模块源码
- [免费]图像识别c 源码
- 周易排盘源码
- RSA算法源码
- 一个人脸识别程序源码
- 编译原理课程设计:词法语法编译器
评论
共有 条评论