- 浏览: 2036422 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (651)
- ACE (35)
- BAT (9)
- C/C++ (116)
- fast-cgi (14)
- COM (27)
- python (59)
- CGI (4)
- C# (2)
- VC (84)
- DataBase (29)
- Linux (96)
- P2P (6)
- PHP (15)
- Web (6)
- Memcached (7)
- IME输入法 (11)
- 设计模式 (2)
- 搜索引擎 (1)
- 个人情感 (4)
- 笔试/面试 (3)
- 一亩三分地 (33)
- 历史 (2)
- 地理 (1)
- 人物 (3)
- 经济 (0)
- 不仅仅是笑哦 (43)
- 小故事大道理 (2)
- http://www.bjdsmyysjk120.com/ (0)
- http://www.bjdsmyy120.com/ (0)
- 它山之石可以攻玉 (15)
- 大学生你关注些什么 (28)
- 数据恢复 (1)
最新评论
-
luokaichuang:
这个规范里还是没有让我明白当浏览器上传文件时,STDIN的消息 ...
FastCGI规范 -
effort_fan:
好文章!学习了,谢谢分享!
com技术简介 -
vcell:
有错误os.walk(strPath)返回的已经是全部的文件和 ...
通过python获取目录的大小 -
feifeigd:
feifeigd 写道注意:文章中的CPP示例第二行 #inc ...
ATL入门:利用ATL编写简单的COM组件 -
feifeigd:
注意:文章中的CPP示例第二行 #include " ...
ATL入门:利用ATL编写简单的COM组件
// word_dict.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" #include <assert.h> #include <ctype.h> #include <stdio.h> #include <string.h> #include <time.h> #include <string> #include <vector> typedef struct { size_t uLineNo; size_t uWordSeq; } term_index_t; #if defined(_WIN32) #include <Windows.h> #include <hash_map> using namespace std; using namespace stdext; typedef hash_map< string, vector<term_index_t> > map_term_index; #if !defined(_WINSOCK2API_) && !defined(_WINSOCKAPI_) struct timeval { long tv_sec; long tv_usec; }; #endif int gettimeofday(struct timeval *tv, void *tzp) { time_t clock; struct tm tm; SYSTEMTIME wtm; GetLocalTime(&wtm); tm.tm_year = wtm.wYear - 1900; tm.tm_mon = wtm.wMonth - 1; tm.tm_mday = wtm.wDay; tm.tm_hour = wtm.wHour; tm.tm_min = wtm.wMinute; tm.tm_sec = wtm.wSecond; tm.tm_isdst= -1; clock = mktime(&tm); tv->tv_sec = (long)clock; tv->tv_usec = wtm.wMilliseconds * 1000; return 0; } #else #include <sys/time.h> #include <ext/hash_map> using namespace std; using namespace __gnu_cxx; struct str_hash { size_t operator()(const string &str) const { return __stl_hash_string(str.c_str()); } }; typedef hash_map<string, vector<term_index_t>, str_hash> map_term_index; #endif map_term_index g_term_index; size_t time_stat(bool bBegin = true) { static struct timeval st_time_begin, st_time_end; static char szInfo[128]; if (bBegin) { gettimeofday(&st_time_begin, NULL); return 0; } else { gettimeofday(&st_time_end, NULL); return (st_time_end.tv_sec - st_time_begin.tv_sec) * 1000 + (st_time_end.tv_usec - st_time_begin.tv_usec) / 1000; } } void Str_Lower(char *pStr) { assert(pStr); while (*pStr) { *pStr++ = tolower(*pStr); } } // 返回true表示还未读完,否则表示读完 bool GetWord(const char *pBuffer, string &strWord, size_t &uCurPos) { assert(pBuffer); strWord = ""; // 跳过前面的空白以及标点符号等 for (;;) { if (!pBuffer[uCurPos]) { return false; } else if (isalnum(pBuffer[uCurPos])) { break; } uCurPos++; } // 读取单词 for (;;) { if (!pBuffer[uCurPos]) { return false; } else if (isalnum(pBuffer[uCurPos])) { strWord.append(1, tolower(pBuffer[uCurPos])); } else { break; } uCurPos++; } return true; } int CreateRevIndex(const char *pInFile) { assert(pInFile); FILE *pFp = fopen(pInFile, "r"); if (!pFp) { printf("Open file:%s failed!\n", pInFile); return -1; } char szInBuffer[4096]; bool bProcEnd; string strWord; size_t uProcPos, uLineNo = 0, uWordSeq; term_index_t word_index; while (fgets(szInBuffer, sizeof(szInBuffer), pFp)) { uProcPos = 0; bProcEnd = false; uLineNo++; uWordSeq = 0; while (!bProcEnd) { bProcEnd = !GetWord(szInBuffer, strWord, uProcPos); if (0 == strWord.size()) { continue; } uWordSeq++; word_index.uLineNo = uLineNo; word_index.uWordSeq= uWordSeq; g_term_index[strWord.c_str()].push_back(word_index); } } fclose(pFp); return 0; } int main(int argc, char *argv[]) { const char *pInFile = "kjv.txt"; if (argc > 1) { pInFile = argv[1]; } size_t uInteval = 0; time_stat(true); if (0 != CreateRevIndex(pInFile)) { printf("Call CreateRevIndex failed!\n"); return -2; } uInteval = time_stat(false); printf("construct search use: %ums\n", uInteval); char szBuffer[512]; string strOutInfo; while (true) { printf("Please Enter word which you want to search:"); scanf("%s", szBuffer); Str_Lower(szBuffer); if (!strncmp("exit", szBuffer, 5)) { printf("exit..., good bye!\n"); break; } printf("The word you search is : %s\nSearch result: ", szBuffer); time_stat(true); map_term_index::iterator iter = g_term_index.find(szBuffer); if (g_term_index.end() == iter) { uInteval = time_stat(false); printf("Not found!\n"); } else { strOutInfo = ""; for (vector<term_index_t>::iterator it = iter->second.begin() ; it != iter->second.end(); ++it) { ::_snprintf(szBuffer, sizeof(szBuffer), "{%u,%u},", it->uLineNo, it->uWordSeq); // printf("{%u,%u},", it->uLineNo, it->uWordSeq); strOutInfo += szBuffer; } uInteval = time_stat(false); printf("%s\nTotal num is: %u\n", strOutInfo.c_str(), iter->second.size()); } printf("This search use: %ums\n", uInteval); } return 0; }
发表评论
-
Berkeley DB 使用经验总结
2012-08-27 14:41 3086作者:陈磊 NoSQL是现在互联网Web2.0时代备受 ... -
嵌入式数据库系统Berkeley DB
2012-08-27 14:37 1533前言 UNIX/LINUX平台下的数据库种类非常多 ... -
C语言中标准输入流、标准输出流、标准错误输出流
2011-06-13 14:32 9293C语言中标准输入流、标准输出流、标准错误输出流 在 ... -
Rsync 实现原理
2011-05-12 20:06 8319Rsync 实现原理 前言 关于rsync的原始文档 ... -
c++简单的虚函数测试
2011-04-27 14:25 1020#include <iostream> u ... -
C++文件行查找
2011-04-26 14:10 1408#include <iostream> # ... -
c++偏特化简单示例
2011-04-13 11:17 2156c++偏特化 // temp1.c ... -
GDB调试精粹及使用实例
2011-03-16 14:06 1141GDB调试精粹及使用实例 一:列文件清单 1. ... -
简单的ini文件解析
2011-02-12 16:36 1623int GetKeyVal(const string s ... -
scanf族函数高级用法
2011-01-25 16:00 2562如何解释 fscanf(fd,&quo ... -
使用scons替代makefile(1)
2011-01-25 11:58 3733早在多年前我刚开始接触linux下的C程序时,经常被makef ... -
使用scons替代makefile(2)
2011-01-25 11:57 3584本篇文章接着上一篇进一步介绍scons的使用方法,主要介绍静态 ... -
使用scons替代makefile(3)
2011-01-25 11:55 4821在上两篇文章中已经简单介绍了用scons编译库文件,可执行程序 ... -
C 支持动态添加测试数据的测试代码
2011-01-13 17:22 1120/下面的定义为了支持可扩增。 //当需要增加一个新的测试用列 ... -
Linux下Makefile的automake生成
2010-12-28 16:55 1102******************helloworld.c* ... -
SCons笔记(详细版)
2010-12-23 16:11 105411. 基本使用 SConstruct文件就功能而言相当于Ma ... -
scons 学习
2010-12-23 11:14 2181scons 学习 作者:Sam(甄峰) sam_code@h ... -
scons随笔
2010-12-22 20:20 4707scons随笔 Scons是新一代的软件构件工具,或者说ma ... -
Scons在linux下的安装和使用
2010-12-21 11:59 3286因为正在用的一个开源软件需要的Developm ... -
排列组合的实现
2010-12-20 12:41 1063简单算法: 从前往后(或者从后往前)每次交换一个位置。当存在 ...
相关推荐
这个程序演示了使用Word作为自动化服务器,Delphi地自动化控制器是如何将一个查询结果插入到word文档中。返回应用参数.这个调用在英文和法文版的 Word中相同。,对德文版的Word,这个过程名是翻译后的。如果这个过程...
可以通过搜索引擎查询该链接的评价或者咨询专业人士的意见来判断其可靠性。 - **病毒扫描**:下载完成后,建议使用杀毒软件进行全面扫描,确保安装包未被篡改或植入恶意代码。 - **版权问题**:非官方渠道提供的Word...
本功能是将各个模板的数据均查询并导出为word后,将word转换成PDF格式,并将word合并成一个整体word,对整体word进行转换成PDF 本资源中集成了 根据word模板导出word功能 、合并多个word功能 、word转换成pdf功能 、...
1. **ActiveX控件和OLE自动化**:PowerBuilder支持通过OLE(Object Linking and Embedding)自动化技术来调用其他应用程序,如Word。OLE允许PB应用作为宿主,控制Word对象模型,实现对Word的远程操作。首先,需要在...
本文将基于给定的“学生成绩信息查询 word文档”标题和描述,详细探讨C# 2005环境下如何设计并实现一个学生信息管理系统,包括其界面设计、程序结构和可能的操作流程。 一、学生信息管理系统界面设计: 在C# 2005中...
JavaScript Word 插件是一种在网页端处理文档的强大工具,它允许用户在浏览器环境中创建、编辑和操作Microsoft Word文档。在现代Web应用中,这种技术尤其适用于在线协作、文档分享和远程工作场景。以下是对这个“js ...
1. **数据准备**:从数据库中获取需要展示在Word文档中的内容。这可能涉及到SQL查询,以及对查询结果的处理,如格式化数据、拼接字符串等。 2. **创建Word对象**:在`Wordmaker.class.php`中,可能会使用第三方库,...
1. **读取模板文件**:使用`XWPFDocument`类打开模板文件。模板文件通常包含固定的文本和占位符,这些占位符将在循环中被替换。 2. **获取表格**:在Word文档中找到你需要循环填充的表格。这可以通过`XWPFDocument`...
6. 循环与迭代:如果要将多个SQLite数据库文件的内容合并到一张Word报表上,那么程序需要有处理多个文件的能力,这通常通过循环结构实现,遍历文件列表,对每个文件执行相同的查询和生成文档的操作。 7. 错误处理:...
1. **布局与网格系统**:Word界面通常有多个面板和工具栏,我们可以使用CSS3的Flexbox或Grid布局来创建这种复杂的布局。通过定义容器的display属性为flex或grid,我们可以灵活地控制子元素的排列方式。 2. **颜色和...
例如,我们可以创建一个DOMDocument实例,加载HTML文件,然后通过DOMXpath查询元素和属性: ```php $doc = new DOMDocument(); $doc->loadHTMLFile('your_html_file.html'); $xpath = new DOMXpath($doc); ``` 接...
结合PHP的数组或数据库查询结果,开发者可以将动态数据绑定到文档的各个部分,实现内容的自动化填充,从而生成个性化的文档。 总而言之,PHPWord中文手册是PHP开发者处理Word文档的宝贵资源,它涵盖了从基础操作到...
适用于读取带有table信息的word大型文档, 下载者需要进行自定义的后续开发,适配自己的文档格式。 读取word依赖于DocX.dll, 导出excel依赖于Spire.XLS.dll 数据库操作依赖MySql.Data.dll,MySql.Data....9.支持查询
1. 首先,需要添加 WordXP 单元到 Delphi 项目中,以便使用 Word 的对象模型。 2. 然后,需要实例化 WordApplication 对象,以便控制 Word 应用程序。 3. 接下来,需要加载 Word 文档模板,并将其设置为活动文档。 4...
1. **Word2Vec的核心概念** - **连续词袋模型(CBOW)**:CBOW是Word2Vec的一种方法,它通过上下文单词来预测目标单词。模型会计算上下文单词的平均向量,然后这个向量通过一个多层感知机(MLP)预测目标单词。 - ...
这意味着用户可以通过该工具连接到MySQL数据库,选择要导出的数据表或查询结果,然后将这些数据导出为Word文档,方便进行报告编写、数据分析或者共享给不熟悉数据库的人。 数据库导出工具通常具备以下特点和功能: ...
通过将MySQL的表结构导出为Word文档,用户可以清晰地看到表的字段名、数据类型、主键、外键等信息,这对于设计数据库模型、编写SQL查询或与非技术人员沟通数据库设计非常有用。 2. **MS SQL Server**:Microsoft ...
1. **安装与配置iReport**: - 下载并安装`iReport`软件,根据操作系统选择相应的版本。 - 配置JDBC驱动,以便连接数据库获取数据。这通常需要将JDBC驱动库添加到`iReport`的类路径中。 2. **设计报表模板**: -...
1. 引入Apache POI库:在项目中添加Apache POI依赖,通常是通过Maven或Gradle的配置完成。 2. 创建Word文档对象:使用`XWPFDocument`类创建一个新的Word文档实例。 ```java XWPFDocument document = new ...
在IT领域,数据库和文档处理是两个非常关键的方面,特别是在数据管理和报告生成...利用MySQL的查询功能和iText的文档生成能力,我们可以创建出结构清晰、信息丰富的Word文档,这对于数据分析、报告编写等工作非常有用。