资源简介
author:July
thanks:ys,fuxiang。
本系统源码是个人原创文章系列,程序员编程艺术第二十六章:基于给定的文档生成倒排索引的编码与实践的整个工程源码
look:http://blog.csdn.net/v_july_v/article/details/7109500
windows下VS2010,linux环境下皆已测试通。
且只限于学习研究之用,请勿作其它用途。
如果你能将本系统改进优化,并能反馈与我,我将感激不尽。谢谢。
email:zhoulei0907@yahoo.cn
page:http://blog.csdn.net/v_JULY_v/。
代码片段和文件信息
/*
author:July
thanks:ys,fuxiang。
本系统源码是个人原创文章系列,程序员编程艺术第二十六章:基于给定的文档生成倒排索引的编码与实践的全部源码
look:http://blog.csdn.net/v_july_v/article/details/7109500
windows下VS2010,linux环境下皆已测试通。
且只限于学习研究之用,请勿作其它用途。
如果你能将本系统改进优化,并能反馈与我,我将感激不尽。谢谢。
email:zhoulei0907@yahoo.cn
page:http://blog.csdn.net/v_JULY_v/。
*/
/*
*如要在linux 下编译 请加上这句#define OS_LINUX
*如果在windows 下 请注释掉
*/
//#define OS_LINUX
#ifndef OS_LINUX
#pragma once
#else
#define strcpy_s strcpy
#define strncpy_s strncpy
#endif
#include “CreateIndexFile.h“
#include “FileProcess.h“
#include “HashSearch.h“
#include “StringProcess.h“
static char filename[FILE_MAX_NUM][FILENAME_MAX_LEN] = {0};
static char words[WORD_MAX_NUM][WORD_MAX_LEN] = {0};
static char items[ITEM_MAX_NUM][WORD_MAX_LEN] = {0};
/************************************************************************/
/* function: 从行缓冲中得到各项信息,将其写入items数组
/* parameter:
/* author:
/* time:
/************************************************************************/
void GetItems(char *&move int &count int &wordnum)
{
char *front = move;
bool flag = false;
int len;
move = strstr(move “#####“);
if (*(move + 5) == ‘#‘) {
flag = true;
}
if (move) {
len = move - front;
strncpy(items[count] front len);
}
items[count][len] = ‘\0‘;
count++;
if (flag) {
move = move + 10;
} else {
move = move + 5;
}
}
/************************************************************************/
/* function: 保存关键字相应的文档内容
/* parameter:
/* author:
/* time:
/************************************************************************/
doc_list SaveItems()
{
char date[9];
doc_list infolist = (doc_list) malloc(sizeof(DOCNODE));
strcpy_s(infolist->id items[0]);
infolist->classOne = atoi(items[1]);
strcpy_s(infolist->classTwo items[2]);
infolist->classThree = atoi(items[3]);
strncpy_s(date items[4] 8);
date[8] = ‘\0‘;
strncpy_s(infolist->time date 9);
strcpy_s(infolist->md5 items[5]);
infolist->weight = atoi(items[6]);
return infolist;
}
int main()
{
key_list keynode;
char *pbuf *move;
int filenum = GetFileName(filename);
FILE *frp;
pbuf = (char *)malloc(BUF_MAX_LEN);
memset(pbuf 0 BUF_MAX_LEN);
HASHVALUE *hashvalue = (HASHVALUE *)malloc(sizeof(HASHVALUE));
FILE *fwp = OpenWriteFile(“index.txt“);
if (fwp == NULL) {
return 0;
}
PrepareCryptTable();
int wordnum = 0;
for (int i = 0; i < filenum; i++)
{
frp = OpenReadFile(i filename);
if (frp == NULL) {
break;
}
// 每次读取一行处理
while (fgets(pbuf BUF_MAX_LEN frp))
{
int count = 0;
move = pbuf;
if (GetRealString(pbuf) <= 1)
continue;
while (move != NULL)
{
// 找到第一个非‘#‘的字符
while (*move == ‘#‘)
move++;
if (!strcmp(move ““))
break;
GetItems(move count wordnum);
}
for (int i = 7; i < count; i++) {
// 将关键字对应的文档内容加入文档结点链表中
InitHashValue(items[i] hashvalue);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5276 2012-01-10 13:49 CreateInvertedIndex-3\CreateIndexFile.cpp
文件 781 2012-01-04 21:16 CreateInvertedIndex-3\CreateIndexFile.h
文件 32208 2011-12-17 21:13 CreateInvertedIndex-3\CreateInvertedIndex-3\12\ky_res.log_201112161533
文件 53940 2011-12-17 21:14 CreateInvertedIndex-3\CreateInvertedIndex-3\12\ky_res.log_201112161548
文件 125184 2011-12-17 21:15 CreateInvertedIndex-3\CreateInvertedIndex-3\12\ky_res.log_201112161559
文件 175974 2011-12-17 10:46 CreateInvertedIndex-3\CreateInvertedIndex-3\12\ky_res.log_201112171045
文件 100325 2011-12-17 10:47 CreateInvertedIndex-3\CreateInvertedIndex-3\12\ky_res.log_201112171046
文件 119023 2011-12-17 10:48 CreateInvertedIndex-3\CreateInvertedIndex-3\12\ky_res.log_201112171047
文件 185994 2011-12-17 10:48 CreateInvertedIndex-3\CreateInvertedIndex-3\12\ky_res.log_201112171048
文件 12760 2011-12-17 12:16 CreateInvertedIndex-3\CreateInvertedIndex-3\12\ky_res.log_201112171216
文件 15800 2011-12-18 23:31 CreateInvertedIndex-3\CreateInvertedIndex-3\12\ky_res.log_201112172347
文件 139155 2011-12-18 23:34 CreateInvertedIndex-3\CreateInvertedIndex-3\12\ky_res.log_201112180032
文件 2595 2011-12-18 23:45 CreateInvertedIndex-3\CreateInvertedIndex-3\12\ky_res.log_201112181735
文件 4276 2012-01-05 10:48 CreateInvertedIndex-3\CreateInvertedIndex-3\CreateInvertedIndex-3.vcproj
文件 1427 2012-01-05 10:49 CreateInvertedIndex-3\CreateInvertedIndex-3\CreateInvertedIndex-3.vcproj.7SJDTOZKTGNQKYR.Administrator.user
文件 5437 2012-01-05 15:47 CreateInvertedIndex-3\CreateInvertedIndex-3\CreateInvertedIndex-3.vcxproj
文件 1363 2012-01-05 15:46 CreateInvertedIndex-3\CreateInvertedIndex-3\CreateInvertedIndex-3.vcxproj.filters
文件 143 2012-01-05 15:46 CreateInvertedIndex-3\CreateInvertedIndex-3\CreateInvertedIndex-3.vcxproj.user
文件 14944 2012-01-05 10:48 CreateInvertedIndex-3\CreateInvertedIndex-3\Debug\BuildLog.htm
文件 778 2012-01-10 13:50 CreateInvertedIndex-3\CreateInvertedIndex-3\Debug\cl.command.1.tlog
文件 3228 2012-01-10 13:50 CreateInvertedIndex-3\CreateInvertedIndex-3\Debug\CL.read.1.tlog
文件 594 2012-01-10 13:50 CreateInvertedIndex-3\CreateInvertedIndex-3\Debug\CL.write.1.tlog
文件 35739 2012-01-10 13:50 CreateInvertedIndex-3\CreateInvertedIndex-3\Debug\CreateIndexFile.obj
文件 2847 2012-01-10 13:50 CreateInvertedIndex-3\CreateInvertedIndex-3\Debug\CreateInvertedIndex-3.Build.CppClean.log
文件 406 2012-01-10 13:50 CreateInvertedIndex-3\CreateInvertedIndex-3\Debug\CreateInvertedIndex-3.exe.em
文件 472 2012-01-10 13:50 CreateInvertedIndex-3\CreateInvertedIndex-3\Debug\CreateInvertedIndex-3.exe.em
文件 381 2012-01-10 13:50 CreateInvertedIndex-3\CreateInvertedIndex-3\Debug\CreateInvertedIndex-3.exe.intermediate.manifest
文件 97 2012-01-10 13:50 CreateInvertedIndex-3\CreateInvertedIndex-3\Debug\CreateInvertedIndex-3.lastbuildstate
文件 5663 2012-01-10 13:50 CreateInvertedIndex-3\CreateInvertedIndex-3\Debug\CreateInvertedIndex-3.log
文件 232 2012-01-10 13:50 CreateInvertedIndex-3\CreateInvertedIndex-3\Debug\CreateInvertedIndex-3_manifest.rc
............此处省略47个文件信息
- 上一篇:无卡CDMA授时模块开发参考
- 下一篇:索爱A2机型解锁
评论
共有 条评论