Nutch二次开发总结

时间:2019-05-12 14:31:53下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《Nutch二次开发总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《Nutch二次开发总结》。

第一篇:Nutch二次开发总结

1.1 信息源选择及规范制定

Nutch通过制定相应的URL规则来达到对限定的URL进行爬取,即过滤信息。默认情况下可以在相关的配置文件中进行配置,它用正则表达式来规范URL。当然,还可以自己编写相应的插件等来实现所制定的URL规范。

1.2 信息预处理

这里的信息预处理是指将Nutch爬虫所下载下来的内容转变为Nutch索引器所能调用的文本。信息预处理过程主要涉及到如下内容:

(1)格式识别并抽取文本。一般情况下,Nutch爬虫下载下来的文档是HTML,但是网络上还存在诸多类型的其他文本:txt、doc、pdf、xls、rtf等等,甚至还有多媒体的文档格式。在进行索引之前,必然从这些下载下来的文件中抽取出文本信息,针对不同的格式文档抽取方式也不同。Nutch默认对HTML、TXT能直接处理,而其他的有些已经实现但并没有加载。目前有很多开源软件可以抽取文本信息,如word文档的poi、pdf文档的pdf-reader等等。在二次开发时,需要对相应的文档格式进行编写抽取文本工具。

(2)信息过滤。这里的信息过滤是指从抽取的文本中滤去那些不希望使其存在的文本内容,这个过程也不一定是独立的,可能会与上一个过程存在相交之处。举个实例,比如针对某一个网站的某一部分网页中的部分区域不希望被索引,那么可以编写一个相关的插件来实现对这个网站的这类网页进行过滤,去除这一区域内的内容。

(3)编码格式的转换。网络上的信息编码格式五花八门,并不是特别规范。一般情况下,Nutch处理后都能实现编码的统一,但是有些信息却不能很好地被默认程序转换,这时候就应当对Nutch进行扩展,以实现编码的转换。

1.3 索引本土化构建

以过信息预处理后的信息可以直接为Nutch索引。在索引过程中,需要考虑的因素也有很多。一是中文类语言的分词问题。这一点在前面实验中已有详细的分析并做了一些总结。二是信息的进一步处理,这一过程是在寻找最能表达原文语义的语词集合。另外还有一些其他相关技术如词干提取、停止词、本体等等。这个过程是相当重要的一个过程,直接决定了查询服务的效果。

1.4 排序规则制定

排序规则的制定并不仅仅影响到查询结果,可以说它贯穿在了整个搜索引擎的工作过程中。因为能影响排序规则的因素有很多,比如说与用户需求的相关性、系统业务需求等,具体的有如语词在文献中的词频、在整个文献空间的词频、语词位置等,甚至是信息时间都会影响到排序。因此在二次开发时,需要根据需求,针对性地制定排序规则,并把它反映在系统中。

1.5 查询系统及用户界面

Nutch的查询系统是发布在Tomcat下的,它提供了一种类似于google的查询界面,并且支持多语言。在实际的二次开发中,并不一定支持多种语言,可针对某一种语言进行改写。另外还可以对查询过程进行二次改发,改变它的查询方式、添加分页、增加summery等。对于用户接口界面,则根据实际情况改写即可。

第二篇:Discuz二次开发基本知识总结

随笔-12文章-0评论-46

Discuz二次开发基本知识总结

一)Discuz!的文件系统目录

注:想搞DZ开发,就得弄懂DZ中每个文件的功能。

a)Admin:后台管理功能模块

b)Api:DZ系统与其它系统之间接口程序

c)Archiver:DZ中,用以搜索引擎优化的无图版

d)Attachments:DZ中 ,用户上传附件的存放目录

e)Customavatars:DZ中,用户自定义头像的目录

f)Forumdata:DZ缓存数据的存放目录

g)Images:DZ模板中的图片存放目录

h)Include:DZ常用函数库,基本功能模块目录

i)Ipdata:DZ统计IP来路用的数据

j)Plugins:DZ插件信息的存放目录

k)Templates:DZ模板文件的存放目录

l)Wap:DZ无线,Wap程序处理目录

二)必须记熟Discuz!数据库设计的每个表的功能,每个表中每个字段的功能。关于DZ数据库设计文档,请参阅DZ相关的项目文档(请从本贴附件中下载)

三)Discuz!的流程控制

a)后台流程控:DZ后台所有的功能,均需要注册到admincp.php文件,每个功能都至少有一个或一个以上的Action(动作),在admincp.php中,可以定义Action的执行权限,分别为:“admin==1”管理员,或“admin==2 || admin==3”超级版主和版主,每个Action对应一个脚本文件,脚本文件的命名为action.inc.php(*.inc.php),并存放在admin目录下,如执行:admincp.php?action=dodo,相当于执行admin目录下的dodo.inc.php文件

b)前台流程控制:前台的流程控制比较简单:流程是自由的,如: 首页:index.php

会员注册:register.php;

会员登录:logging.php

发贴程序:post.php

会员信息:member.php

论坛内容:forumdisplay.php

查看贴子:viewthread.php

…大部分功能,此处不一一列出…

c)DZ根目下的config.inc.php属于整个DZ系统的配置文件

四)Discuz!的数据处理过程

a)DZ对mysql的数据库操作处理全部封装在dbstuff(db_mysql.class.php)类中

b)所在的外部数据均通过“daddslashes()”初步过滤,然后再过滤,再根据需要处理

五)Discuz!的显示控制(网站多样式风格输出)

a)显示层就是大家通常所看到的网站风格了。DZ中每套风络分别在templates及images下对应一个风格文件的存放目录。网站风格的制作,请参阅详细的DZ风格制作文档

b)DZ网站风格文件处理的原理:其实很简单,DZ使用template.func.php中的parse_template()以PHP正则运算把htm模文件中的模板标签,转换成了PHP代码,并根据styleid保存在forumdata/templates下,这个有点像Smarty中的技术。

六)DZ中的语言处理

a)DZ前台及后台中、英语言的实现,均是把语句定义成了语变量,然后在模板输入,语句变量的赋值,均放在模板目录中的*.lang.php文件中,DZ在生成网站风格时就加载了这相应的语言包。

七)DZ如何处理用户信息(存取、计算、更新过程)

新手要做二次开发,都必须掌握这数组中,每个数组元素的意义。

a)DZ的基本信息,如用户信息,Session信息存在如下变量中: a).$_DCACHE

b).$_COOKIE

c).$_DCOOKIE

d).$_DSESSION

e).$_DPLUGIN

b)可以通过print_r($GLOBALS),打印全部变量

八)DZ中缓存处理机制

a)DZ中缓存处理过程都放在“cache.func.php”中,DZ的缓存处理比较简单,其原理是把一个数组转换成了PHP代码,并保存在缓存目录下,大家可打开缓存文件查看便知。

b)使用方法:如果在新开的功能中,需要缓存某部分数据,基本上就是:

1)定义并注册缓存名字。

2)从数据读取相应的数据。

3)数据在写入缓存前作相应处理。

4)最后写入缓存。

具体操作,可以看文件中的代码,做相应的修改即可

九)DZ中模板处理机制

a)DZ独创的模板处理技术,类似于Smarty中的模板处理,只是具体算法,过程不同,Smarty是一种重型模板引擎方案。其原理都是把模板中的变量转换成相应的PHP代码,这个过程实际是模访JAVA中的一次编译,多处运行。

十)DZ中权限处理机制

a)对于DZ中前台的每相action都有$discuz_action定义,DZ根据用户所在的用户组来判定用户是否具有相应操作$discuz_action的权限。至于后台的权限权验证,则更简单了,依据“admin==1”来确定的十一)DZ中如何实现URL静态化

a)DZ中的静态有两法,只要懂ReWrite规划的朋友,一看就知。

十二)DZ独创的HTML编辑器,如何截取并使用,如果进行Discuz!代和Html代码的转换

a)这也算是DZ比较牛的一项技术了,在早期版中,因DZ编辑器的不足,使得很多用户放弃了DZ。实现原理:通过JS把用的一些操作转换成了DZ的bbcode代码。这样子提交了安全性,将带有bbcode代码的内容存入数据,在用户打开页页时,又把bbcode代码转换成html代码

本贴声明:由于时间有限,本贴只有关于DZ部分功能的简短分析。若各位网友,对本文感兴趣并想更为深入了解DZ,请在本贴后回贴!我将尽可能多的DZ技术分析写在本文,不断更新本贴内容。

部分文件说明:

admincp.php 管理

ajax.php ajax功能

announcement.php 公告

attachment 附件

board.php 真正的首页

config.inc.php 这个是配置文件

corpus.php 论坛文集

digest.php 精华帖子

discuz_version.php 论坛版本号

faq.php 问题列表

forumdisplay.php 论坛列表

index.php 跳转页面

loggin.php 认证页面(登录退出)mail_config.inc.php 邮件配置 member.php 用户操作

memcp.php 个人控制面版

misc.php 零碎功能

my.php 我的帖子

plugin.php 插件

pm.php 短信

post.php 发送帖子

redirect.php 页面重定向

register.php 注册

robots.txt 限制搜索

rss.php rss信息发布

search.php 论坛查询

secode.php 验证码

stats.php 统计

topic.php 首页论坛专题

topicadmin 主题管理

viewpro.php 显示个人信息

viewthread.php 主题显示

文件夹

admin 管理

api 接口

archiver 文档

attachments 附件

customavatars 自定义表情

forumdata 论坛数据包含缓冲数据 images 图片

include 公共文件

install 安装包

ipdata ip地址

plugins 插件

readme 帮助文档

templates 模板

utilities 工具包

wap 手机网站

文件夹include

advertisements.inc.php 广告管理 ajax.js ajax相关

attachment.func.php 附件函数集 bbscode.js 论坛表情

cache.fun.php 缓存函数集

category.inc.php 栏目

chinese.class.php

common.inc.php 最主要的头文件 common.js 最主要的js文件 corpus.func.php 论坛文集函数 counter.inc.php 论坛计数

cron.func.php 计划任务

db_mysql.class.php 数据库

db_mysql_error.inc.php 数据库错误 debug.php 调试信息

discuzcode.func.php 论坛代码 editor.func.php 编辑器

editor.js 编辑器

editpost.inc.php 编辑帖子

floatadv.js 浮动广告

forum.func.php 论坛函数集 global.func.php 全局函数

menu.js 菜单

misc.func.php 其它

newreply.inc.php 新回复

newthread.inc.php 新主题 *pmprompt.inc.php

post.fun.php 发表主题

printable.inc.php 论坛打印 qihoo.js qihoo

relatethreads.inc.php 相关主题 security.inc.php 安全

sendmail.inc.php 邮件

serverbusy.htm 系统繁忙

template.func.php 模板

threadpay.inc.php 购买帖子

第三篇:AutoCAD二次开发教程复习总结

红色部分为答案空白或不确定

CAD复习题及答案

1、AutoLISP

2、VisualLISP

3、VBA

4、ADS

5、ObjectARX

红色部分为答案空白或不确定

6、.NET 托管API

7、ActiveX Automation

红色部分为答案空白或不确定

8、Visual Java

1、AutoCAD二次开发方式有哪些?各自优缺点?

2、AutoCAD 中实现ObjectARX.NET API 的有哪些优点?

3、AutoCAD.NET API 的三个主要的DLL文件是?

4、简述ObjectARX.NET API所对应的VS.NET版本。

5、简述AutoCAD数据库的组成。

AutoCAD数据库是用来管理当前图形中的图元实体和其他非几何信息的容器对象,一个AutoCAD数据库包含一套固定的符号表和命名的对象词典,每一个符号表包含一个特定符号

红色部分为答案空白或不确定

表记录类的实例,例如层表(AcDbLayerTable)中包含层表的记录,块表(AcDbBlockTable)中包含块表记录,所有的AutoCAD实体均包含于块表记录中。词典提供了一种通用容器来存储对象,它可以保存AcDbObject对象以及其它对象,也可以创建新的对象词典,将新的数据库元素加入其中。

AutoCAD数据库的组成如图所示,从图中我们可以看出数据库主要由一下内容组成: 1)层表AcDbLayerTable和层表记录AcDbLayerTableRecord。

2)块表AcDbBlockTable和块表记录AcDbBlockTableRecord。AutoCAD中所有可见实体均存储在块表记录。块表中包含有两条特殊的记录*MODEL_SPACE(模型空间)和*PAPER_SPACE(图纸空间)。

3)其他符号表和符号表记录。

4)命名对象词典。缺省情况下当AutoCAD数据库被建立以后,词典中就包括了组词典以及MILINE样式词典。

5)符号表和命名对象词典都是存储数据库对象的容器,用于组织和管理数据库对象。AutoCAD数据库通常有9个固定类型的符号表,开发者不能向数据库中新增或者删除任何一种类型符号表,能实现的是向符号表中添加对应的符号表记录。

6、Application 对象是 AutoCAD.NET API 对象模型的根对象,它包括哪些部分?

Application 对象是层次结构的根,而且它提供对 AutoCAD 的主窗口的访问。

红色部分为答案空白或不确定

7、列出所有图形与非图形对象,他们有什么区别?

图形对象,也称为图元,是组成图形的可见对象(例如直线、圆、光栅图像等):

1)添加图形对象到图形中是通过正确的块表记录引用,然后使用 AppendEntity 方法将一个新对象添加到图形中来完成的

2)要修改或查询这些对象,请从正确的块表记录获得对象引用,然后使用对象本身的方法或特性。每一个图形对象都拥有允许应用程序执行大部分 AutoCAD 编辑命令的方法,例如复制、删除、移动、镜像等

这些对象还提供了一些方法,用来设置和检索对象的扩展数据(xdata),亮显和更新对象,以及从另外的图元设置属性。大多数图形对象具有诸如 LayerId、LinetypeId、Color 和 Handle 之类的典型特性。每个对象也具有一些特有的特性,例如 Center、StartPoint、Radius 和 FitTolerance 非图形对象是指属于图形的一部分但不可见的(提示性的)对象,例如 Layers、Linetypes、DimStyles、TableStyle 等

1)若要创建新的符号表记录,请使用表所有者的 Add 方法或使用 SetAt 方法添加一个字典到命令对象字典中

2)要修改或查询这些对象,请使用对象本身的方法或特性。每一个非图形对象都有用于特定目的的方法和特性,都有设置和检索扩展数据以及删除自己的方法

8、如何实现对AutoCAD数据库图形对象的访问?给出实例代码。

大部分的集合和容器对象都是通过 Document 或 Database 对象访问的。Document 和 Database 对象都包含一些相应的特性用来访问大多数可用集合的对象或对象 ID。例如,以下代码定义一个变量,并将其设置为当前图形的 LayersTable 对象:

红色部分为答案空白或不确定

9、AutoCAD中集合对象是指?列举出部分实例。

10、如何定义一个用户命令?CommandMethod 所接受的属性包括哪些?

命令和 AutoLISP 函数可以通过使用两个属性:CommandMethod 和 LispFunction 就可以在 AutoCAD.NET API 中被定义

使用 CommandMethod 属性定义一个命令,CommandMethod 属性期待一个字符串值,它将当作被定义命令的全局名称。和全局命令名称一起,CommandMethod 属性还能接受如下值:

【Command Flags】-定义命令的行为 【Group Name 】-命令组名称

【Local Name 】-本地化命令名称,通常用于特定语言

【Help Topic Name】定义当命令被激活时相应的快捷菜单的状态 【Help File Name】-包含当命令激活并按 F1 键时将要显示其中帮助主题的帮助文件

11、如何通过代码调用AutoCAD内部命令?

A、使用 SendStringToExecute 方法可以直接将命令发送到 AutoCAD 命令行。SendStringToExecute 方法将单个字符串发送到命令行。该字符串必须包含提供给所执行命令的参数,并依照该命令的提示顺序所要求的次序排列这些参数

B、使用 SendStringToExecute 执行命令是异步的,直到.NET 命令结束,否则不会被调

红色部分为答案空白或不确定

用。如果需要立即执行一个命令(同步),应该: 1)使用 COM Automation 库中的 SendCommand 方法,它可以利用.NET COM Interop 访问 2)使用 ObjectARX 或.NET API 定义命令,P/Invoke 非托管的用于本地化的 AutoCAD 命令的 acedCommand 或 acedCmd 方法

3)通过定义 AutoLISP 命令,P/Invoke 非托管的 acedInvoke 方法

12、如何实现图形对象的旋转、平移、缩放?请给出具体实现。

使用transformBy函数进行几何变换

1)Entity.TransformBy(Matrix3d transform)2)transformBy是Entity类的一个成员函数,该函数使用一个Matrix3d参数对实体进行相应的几何变换

3)Matrix3d是一个四维矩阵,常用函数: Translation:生成一个移动对象的矩阵 Rotation:生成旋转矩阵

Scaling:生成比例缩放矩阵。Mirroring:生成镜像矩阵

public static void Move(Entity ent, Point3d ptStart, Point3d ptEnd){ ent.TransformBy(Matrix3d.Displacement(ptEndn-5), sourceDb, false);

4)将新建块表记录加载到当前块表记录中 5)删除新建块表记录

23、AutoCAD有哪些选择集过滤规则类型?请列举部分实例代码。

选择集过滤规则类型:

A、使用选择集过滤器定义选择集规则

B、在选择集过滤器中指定多个条件

C、添加复杂的过滤器列表条件

D、在选择器过滤器条件中使用通配符

E、过滤扩展数据 实例:

DBObject dbObj = Trans.GetObject(idBTR, OpenMode.ForWrite);dbObj.Erase();

红色部分为答案空白或不确定

A)实例:使用过滤器选择圆图形实体

B)实例

C)实例1:选择半径大于或等于 5.0 的圆

// 创建一个 TypedValue 数组,用于定义过滤条件 TypedValue[] acTypValAr = new TypedValue[3];acTypValAr.SetValue(new TypedValue((int)DxfCode.Start, “CIRCLE”), 0);acTypValAr.SetValue(new TypedValue((int)DxfCode.Operator, “>=”), 1);acTypValAr.SetValue(new TypedValue(40, 5), 2);// 赋值过滤条件给 SelectionFilter 对象 SelectionFilter acSelFtr = new SelectionFilter(acTypValAr);// 要求在图形区域中选择对象 PromptSelectionResult acSSPrompt;acSSPrompt = acDocEd.GetSelection(acSelFtr);

实例2:选择 Text 或 Mtext 对象

红色部分为答案空白或不确定

// 创建一个 TypedValue 数组,用于定义过滤条件 TypedValue[] acTypValAr = new TypedValue[4];acTypValAr.SetValue(new TypedValue((int)DxfCode.Operator, “”), 3);// 赋值过滤条件给 SelectionFilter 对象 SelectionFilter acSelFtr = new SelectionFilter(acTypValAr);// 要求在图形区域中选择对象 PromptSelectionResult acSSPrompt;acSSPrompt = acDocEd.GetSelection(acSelFtr);

D)实例:选择所有文字字符串中出现“The”的多行文字

E)实例:查找出包含通过“MY_APP”应用程序添加的外部数据的圆

24、在AutoCAD中如何给一条道路添加扩展属性数据XData?请给出具体实现。

1)扩展数据需要一个唯一的应用程序名,可以通过acdbRegApp()进行注册,名字最长可达31 个字符

2)由于每个数据库对象可以附加多个应用程序的数据,所以在结果缓冲区链表中,应用程序名是每段扩展数据的第一个数据,其后的结果缓冲数据都归此应用程序名所有 具体实现:

红色部分为答案空白或不确定

public string appName = “Road”;[CommandMethod(“setXData”)] public void setXData(){ //选择实体 PromptEntityOptions pEntityOptions = new PromptEntityOptions(“n请选择道路”);PromptEntityResult pEntityResult = pEd.GetEntity(pEntityOptions);if(pEntityResult.Status == PromptStatus.OK){ ObjectId pEntId = pEntityResult.ObjectId;using(Transaction pTrans = m_db.TransactionManager.StartTransaction()){ Entity pRoadEnt =(Entity)pTrans.GetObject(pEntId, OpenMode.ForWrite);TypedValue[] vals = new TypedValue[]{ //注册应用程序 new TypedValue(Convert.ToInt16(DxfCode.ExtendedDataRegAppName),appName), new TypedValue(Convert.ToInt16(DxfCode.ExtendedDataAsciiString),“中央路”), new TypedValue(Convert.ToInt16(DxfCode.ExtendedDataAsciiString),“沥青路面”), new TypedValue(Convert.ToInt16(DxfCode.ExtendedDataAsciiString),“2000”), new TypedValue(Convert.ToInt16(DxfCode.ExtendedDataAsciiString), “双向”)};//创建缓存 ResultBuffer pResBuff = new ResultBuffer(vals);//设置扩展数据 pRoadEnt.XData = pResBuff;pTrans.Commit();} } }

[CommandMethod(“ReadXData”)] public void ReadXData(){ //选择实体 PromptEntityOptions pEntityOptions = new PromptEntityOptions(“n请选择道路”);PromptEntityResult pEntityResult = pEd.GetEntity(pEntityOptions);if(pEntityResult.Status == PromptStatus.OK){ ObjectId pEntId = pEntityResult.ObjectId;using(Transaction pTrans = m_db.TransactionManager.StartTransaction()){ Entity pRoadEnt =(Entity)pTrans.GetObject(pEntId, OpenMode.ForRead);if(pRoadEnt.XData == null)return;//得到实体扩展数据缓存 ResultBuffer pResBuff = pRoadEnt.XData;//转换成TypedValue数组 TypedValue[] getvals = pResBuff.AsArray();string pRoadName = getvals[1].Value.ToString();string pRoadMtia = getvals[2].Value.ToString();string pRoadYear = getvals[3].Value.ToString();string pSingle = getvals[4].Value.ToString();pTrans.Commit();} } }

25、如何使用DBDictionary对象给一设计图或一图形对象添加属性信息?实 例:使用扩充词典(XRecord)存储扩展数据

红色部分为答案空白或不确定

[CommandMethod(“setXRecord”)] public void setXRecord(){ using(Transaction pTrans = m_db.TransactionManager.StartTransaction()){ DBDictionary dbDictionary = pTrans.GetObject(m_db.NamedObjectsDictionaryId, OpenMode.ForWrite)as DBDictionary;//创建存储图纸设计者信息数据字典 if(!dbDictionary.Contains(“设计者”)){ DBDictionary pDesDict = new DBDictionary();dbDictionary.SetAt(“设计者信息”, pDesDict);Xrecord pDesRecord = new Xrecord();TypedValue[] vals = new TypedValue[]{ new TypedValue(Convert.ToInt16(DxfCode.ExtendedDataAsciiString),“李明”), new TypedValue(Convert.ToInt16(DxfCode.ExtendedDataAsciiString),“深圳建筑设计院”), new TypedValue(Convert.ToInt16(DxfCode.ExtendedDataAsciiString),“2005”), new TypedValue(Convert.ToInt16(DxfCode.ExtendedDataAsciiString), “100年”)};//创建缓存 ResultBuffer pResBuff = new ResultBuffer(vals);pDesRecord.XData = pResBuff;pDesDict.SetAt(“设计者”, pDesRecord);} pTrans.Commit();} }

26、“当一个对象要被修改时,使用Database对象的ObjectOpendForModify事件应该被通知”这句话是否正确? I don’t know ,nor do I care

(P103)表格第一竖排最后一个,个人认为应该正确

27、AutoCAD中的词典和符号表有什么区别和联系?

AutoCAD 中的词典是一般的容器对象,这类似于AutoCAD中的符号表,但符号表只能存储指定类型的对象,而词典则可以保存任意的DbObject对象或其派生类的对象,实际上词典是通用非图形数据库对象的容器

在AutoCAD中词典用DbDictionary类表示,和符号表一样包含一个唯一的字符串关键字,它的操作也非常类似于符号表操作方法

28、简述创建字体样式的基本过程。

29、ObjectARX.NET API提供了哪几种创建二维圆弧CircularArc2d的方法?

使用Autodesk.AutoCAD.DatabaseServices下的Arc类创建圆弧,该类提供了三种定义圆弧的方法:

Arc():不带参数

Arc(Point3d center, double radius, double startAngle, double endAngle)Arc(Point3d center, Vector3d normal, double radius, double startAngle, double endAngle)

红色部分为答案空白或不确定

30、采用交互方式,绘制一个已知圆心和半径的圆,并将圆的颜色设置成红色。

[DllImport(“acad.exe”, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode)] //调用绘制圆命令 private static extern int acedCommand(int type1, string command, int type2, string center, int type3, string radius, int end);[CommandMethod(“DrawCircle”)] public void DrawCircle(){ acedCommand(5005, “circle”, 5005, “100,100,0”, 5005, “30”, 5000);}

第一段代码是交互式创建圆,但没有颜色;第二段代码是静态创建圆,其中pCir.ColorIndex = 1,参数“1”代表红色,4代表绿色,2代表黄色

第四篇:网站二次开发协议范文

网站二次开发合同

甲方:

乙方:

甲方在此委托乙方进行

网站的二次开发。为明确双方责任,经友好协商,双方达成以下协议:

第一条:项目的内容、价款、开发进度、交付方式。

第二条:甲方的权利和义务

1.提供专人与乙方联络。

2.提供所有需要放到网上的资料交给乙方,并保证资料的合法性。

3.乙方在完成合同规定的义务后,甲方按照附录一的要求,及时支付费用。

4.甲方将在著作权法的范围内使用本合同标的及相关作品、程序、文件源码,不得将其复制、传播、出售或许可给其它第三方。

5.甲方对本合同标的中的网页、图像享有排版的版权。

6.版权所有归甲方(包括原文件、程序、文字、动画文件、有声文件、及相关作品)第三条:乙方的权利和义务

1.提供专人与甲方联络。

2.按附录一的要求,使用甲方资料,进行网站的二次开发。

3.在附录一要求的期限内,完成网站的二次开发,并通知甲方进行验收。

4.在验收期内甲方要求下,对不合格地方进行修改。

5.乙方未经甲方同意不得向第三方拷贝或泄露网站程序。6.乙方负责维护甲方网站运营期间数据的安全。

7.在附录一要求进行网站更新的情况下,在接到甲方要求网站更新的传真2日内,按照要求对网站进行更新;

8.在附录一要求进行培训的情况下,对甲方1-3名技术人员进行培训。第四条:验收

1.验收标准有以下几条:

a.甲方可以通过任何上网的计算机访问这个网站。

b.主页无文字拼写及图片(以甲方提供的材料为准)错误。

c.网络程序正常运行。

2.验收期为5天时间。

第五条 违约责任

1.任何一方有证据表明对方已经、正在或将要违约,可以中止履行本合同,但应及时通知对方。若对方继续不履行、履行不当或者违反本合同,该方可以解除本合同并要求对方赔偿损失。

2.因不可抗力而无法承担责任的一方,应在不可抗力发生的3 天内,及时通知另一方。

3.一方因不可抗力确实无法承担责任,而造成损失的,不付赔偿责任。本合同所称不可抗力是指不能预见、不能克服并不能避免且对一方当事人造成重大影响的客观事件,包括但不限于自然灾害如洪水、地震、火灾和风暴等以及社会事件如战争、**、政府行为等。

第六条 保密条款

双方应严格保守在合作过程中所了解的对方的商业及技术机密,否则应对因此造成的损失承担赔偿。

第七条 以上条款如有未尽事疑,经甲、乙双方协商后加以补充:

补充内容: 乙方需提供使用文档,并根据使用文档对甲方技术人员提供相关培训等支持。并在交付后有免费代码维护义务,并在双方合作共赢的基础上提供更多技术支持(比如有偿的功能开发等项目)。

第八条 其它

1.如果本合同任何条款根据现行法律被确定为无效或无法实施,本合同的其他所有条款将继续有效。此种情况下,双方将以有效的约定替换该约定,且该有效约定应尽可能接近原约定和本合同相应的精神和宗旨。

2.附录一规定的有效期满,乙方未完成附录一任务,超出期限每天扣两百,超出期限后放弃该任务,按网站的费用双倍赔偿。

3.如乙方在期限内放弃该任务,按网站的费用双倍赔偿。3.本合同经双方授权代表签字并盖章,自签订日起生效。

4.本合同一式两份,双方当事人各执一份,具有同等法律效力。

甲方(盖章):

乙方(盖章)代表:

代表:

第五篇:RobotFramework二次开发小结

RobotFramework二次开发小结

本文主要针对用例之间的调度,和定时运行用例这两个方向进行了介绍,其中用例之间的调度在RobotFramework平台上直接可以实现,对定时运行用例,我们进行了Robot平台的二次开发。

【用例之间调度】:

1、前一个用例的执行结果是后一个用例的执行条件,在python编译环境下定义两个函数。

图1 python编写资源库文件

在RobotFramework里添加该资源库文件,定义一个全局变量${turn},新建两个用例test1和test3,Robot平台提供了关键词Run Keyword if,可以实现两个用例之间的调度关系,如果函数(在Robot称为关键字)check返回的是True则执行函数Add,否则不会执行函数Add。

图2 RobotFramework设计用例1

2、前一个用例的执行结果是后一个测试用例的输入值,定义一个全局变量${sum},将函数Add的执行结果传给函数Fun。

图3 RobotFramework设计用例2

【RobotFramework二次开发】 关于定时运行用例,对Robot平台进行了二次开发,在Robot平台的菜单栏里添加一个Tasks菜单项,点击下拉菜单Schedule弹出设置界面。

图 4 RobotFramework二次开发界面

1、该Task Schedule Dialog 可以设计定时运行用例,有两种触发方式,Single和Cycle(CI Trigger方式目前没有实现),其中Cycle可以设置间隔时间,单位为hour、day、week;

2、打开Task Schedule Dialog时,自动将Robot平台设计的用例树放在界面的绿色区域,可以选择单个用例或多个用例,输入Task Name(也就是Robot平台的tag),选定触发方式(Single或Cycle),点击Add按钮添加任务;

3、选择添加的任何一个任务,可以通过Modify按钮修改Task Name,或通过Delete按钮删除该任务;

4、鼠标点击一个任务时,在绿色区域的用例树中,被设置的用例会自动打勾显示。

图5 RobotFramework平台二次开发功能图

5、点击Start按钮将按设置时间依次运行各用例,如图6所示,如果用例是保存在文件夹D:python_testSofttest,,任务的运行报告自动保存在当前目录的OutputDirN下,如果是Cycle方式会再建一层文件夹(文件夹名为任务运行时间)。

图 6 用例执行报告保存文件夹

关注点:Task Schedule Dialog里的Task Name就是Robot平台的tag,执行的过程先判断设定时间,如果满足条件,将Output Directory目录下的含有该tag的所有用例都运行一次。用例执行顺序和最初在Robot平台设计的用例顺序一致。

6、Robot平台的二次开发使用方法:将FrameTask.py,mainframe.py,TaskSchedule.py,TestTree.py放在C:Python26Libsite-packagesrobotideui,覆盖所有文件,再打开Robot就可以看到菜单项。

下载Nutch二次开发总结word格式文档
下载Nutch二次开发总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    UAP报表二次开发手册[模版]

    UAP报表二次开发手册 v.871 1. 数据源定义 报表数据源可分为实体关系查询,SQL脚本查询和自定义查询三个类型,如下图所示: 图1.1 其中数据源名称和数据源描述是为了标识数据源以......

    网站二次开发的合同

    网站二次开发合同 甲方:乙方:甲方在此委托乙方进行网站的二次开发。为明确双方责任,经友好协商,双方达成以下协议: 第一条:项目的内容、价款、开发进度、交付方式 由附件一载明。......

    黄河故道二次开发座谈材料(精选合集)

    立足实际科学谋划 做好黄河故道二次综合开发工作 黄河故道二次开发,作为今年徐州市“三重一大”重点项目,是一项惠民工程,又是一项打基础管长远的工作,涉及万千农民群众的利益,对......

    NC二次开发培训感受(最终定稿)

    3月25日到3月28日四天的NC二次开发培训也许让我们学不到很实质性的东西,但是通过这次的培训确实接触了算是正规的培训吧。自从去年开始从事NC的二次开发之类,学习NC的途径就......

    监控及二次开发实习实习报告

    实验一监控及二次开发实习 【实验目的】内容宋体,小四 【实验要求】 【实验原理】 【实验内容】 【本实验遇到问题及解决方案】 【对本实验的改进建议和疑难问题】......

    二次开发实习报告五篇

    资源环境与旅游学院 ArcGIS二次开发 实习报告 班级:地信11101 姓名: 罗丽 学号:201114030110、 指导老师:李巍 日期:2014年11月01日 一、 实习目的 本学期通过对ArcGIS软应用......

    ERP二次开发工作职责

    1.负责B0报表的开发。2.负责ORACLEERP系统相关开发工作跟进。3.负责其他系统与ERP接口的技术支持。......

    NCV55-供应链二次开发接口红皮书

    NC供应链二次开发 接口红皮书 NC-SCM 5.5 用友NC-SCM 2013-03-25 目录 第一章 前言 ........................................................................................