搜索包含关键字的文本
最近迷茫了许多,唉,把这几天CSDN出问题没有贴上去的博客都贴上来吧.主要是一个搜索,可以看作是一个上次小搜索的翻版吧。
#include < stdio.h >
#include < stdlib.h >
#include < process.h >
#include < stddef.h >
#define MAX_THREADS 3
DWORD WINAPI ThreadPro(LPVOID);
HANDLE hThreadLimitSemaphore;
char szSearchFor[ 1024 ];
int main( int argc, char * argv[])
... {
WIN32_FIND_DATA *lpFindData;
HANDLE hFindFile;
HANDLE hThread;
DWORD dummy;
int i;
if (argc!=2)
...{
printf("Usage: %s <search_string> ",argv[0]);
return 0;
}
strcpy(szSearchFor,argv[1]); //搜索内容 这里是搜索后缀名为*.c 的源文件中是否有搜索字段
lpFindData=calloc(1,sizeof(WIN32_FIND_DATA));
hThreadLimitSemaphore=CreateSemaphore(NULL,MAX_THREADS,MAX_THREADS,NULL); //这里Semaphore最大为3
hFindFile=FindFirstFile("*.c",lpFindData); //搜索当前目录下后缀名为.c 的文件
if (hFindFile==INVALID_HANDLE_VALUE)
...{
return -1;
}
do
...{
WaitForSingleObject(hThreadLimitSemaphore,INFINITE); //等待Semaphore的激活 也就是可以又开辟线程了
hThread=(HANDLE)_beginthreadex(NULL,0,ThreadPro,lpFindData,0,&dummy);
CloseHandle(hThread); //这里只是把句柄关闭了,对线程没有影响,只是没有办法对它进行调用
lpFindData=calloc(1,sizeof(WIN32_FIND_DATA)); //这里又申请了一部分空间,主要是为下一次循环申请空间,注意这里lpFindData空间其实是在副线程被释放的
//同时开三个线程 是对不同的lpFindData操作的
} while(FindNextFile(hFindFile,lpFindData));
CloseHandle(hFindFile);
for (i=0;i<MAX_THREADS;i++)
...{
WaitForSingleObject(hThreadLimitSemaphore,INFINITE); //等待所有进程结束,注意前面不是CloseHandle(hThread),失去了对线程直接控制
}
CloseHandle(hThreadLimitSemaphore);
return 0;
}
DWORD _stdcall ThreadPro( void * arg)
... {
WIN32_FIND_DATA *lpFindData=(WIN32_FIND_DATA *)arg;
char buf[1024];
FILE *fp;
fp=fopen(lpFindData->cFileName,"r");
if(!fp) return -1;
while (fgets(buf,sizeof(buf),fp))
...{
if (strstr(buf,szSearchFor))
...{
printf("%s: %s ",lpFindData->cFileName,buf);
}
}
fclose(fp);
free(lpFindData);
ReleaseSemaphore(hThreadLimitSemaphore,1,NULL);
return 0;
}
搜索包含关键字的文本相关推荐
- linux shell之替换目录下包含关键字所有文本里面的内容
1 问题 替换目录下包含关键字所有文本里面的内容 比如在目录 /root/chenyu/cy/下,把包含文本/A/B C替换成文本E=F 2 解决办法 命令如下 grep -Rl /A/B\ C /r ...
- 查找计算机里包含相关文字,windows7如何搜索包含关键字的文件_win7电脑文件怎么查关键字文件...
在使用windows7系统的过程中,许多用户都会进行创建一些新的文件,可是由于保存的文件过多,导致存放的文件路径总是会记不住,等到用户想要找文件时总是不知道按照什么方式来找,这时就可以通过搜索包含关键 ...
- BeautifulSoup4 find_all搜索包含指定文本内容的标签返回空list的问题
最近帮助公司其他团队用python写了一个爬虫,遇到了不少问题,其中就有一个问题是使用BeautifulSoup4的find_all搜索包含指定文本内容时返回的是空的list,查看了官方文档也上goo ...
- 编写文件搜索小程序:1. 输入绝对路径以及搜索关键字,2. 搜索指定路径下(包括子文件夹)中名称包含关键字的所有文件并打印出,3. 将当前操作记录日志
package com.homework;import java.io.File; import java.io.FileOutputStream; import java.io.IOExceptio ...
- 在搜索框自动输入文本_Selenium 时间搜索框查询和日期大小比较
在做Selenium自动化的时候,会遇到时间搜索框查询(如下图)并比较查询结果是否在输入的时间之类的问题. 要想解决这个问题,首先,第一步要做的就是选择时间,并获取到所选时间的文本信息. 如上图所示, ...
- linux 删除含有关键词的文件_linux下查找包含关键字的文件
在linux下如果要查找包含某个关键字的文件,如要在nagios目录下搜索带有关键字"store-rd-sys"的文件,在终端下运行命令: /usr/local/nagios/et ...
- 在搜索框自动输入文本_【Zotero文档翻译】管理篇:搜索
本文翻译自Zotero文档:https://www.zotero.org/support/searching 快速搜索 快速搜索能够让您快速在库中或分类中找到所需条目. 运行快速搜索 快速搜索的操作十 ...
- 初学搜索之关键字选择
初学搜索之关键字选择 --------序言------------ 搜索引擎影响我们的生活已经许多年,它在我们需要下载某些资源.查看新闻.找到特定网站等时能够帮助我们及时快速地找到相关网页.但是如果仅 ...
- IDEA查询包含关键字的文本文件
ctrl+shift+F,可以整个项目搜索关键字查询包含关键字的文件,或者Edit->Find->Find in path. 注意:使用快捷键搜索的时候关闭搜狗输入法后再去使用,否则不会弹 ...
最新文章
- 数学家对人工智能的贡献,从牛顿到哥德尔
- OO第一单元作业总结
- 园林系统优秀党员推荐材料_昆山合纵生态科技有限公司——园林废弃物循环利用“昆山合纵模式”的探索和实践者...
- DL之NN/Average_Darkness/SVM:手写数字图片识别(本地数据集50000训练集+数据集加4倍)比较3种算法Average_Darkness、SVM、NN各自的准确率
- 根据控件句柄读控件在内存的数据_WPF 2020界面开发新纪元——Accordion控件、图表功能升级...
- 【LeetCode】TreeNode类实现解析(java实现)
- python获取历史双色球数据_你的梦想,我来买单!Python分析双色球中奖号码竟成功获取特等奖
- 利用C++实现哈夫曼算法
- 为什么你写的文字没人看,没人赞?
- 挂***方法和技巧大汇总
- 《HelloGitHub》第 24 期(两周年)
- Python爬虫之一:十几行代码下载王者荣耀所有皮肤
- 创新移动互联,阿凡题学习神器引领搜索新体验
- ANS.1的基础总结
- 制药工程专业计算机考试考哪样,制药工程考研可以考什么专业
- python+selenium+scrapy框架爬取斗鱼主播相册内的 图片
- 腾讯QQ2004II Beta3火爆下载 可自定义头像
- Unity关于程序集(Assembly )的那些事
- VS2019试用期结束怎么办
- “微信之父”张小龙首次演讲实录:详解微信平台四大价值观