检查所有实体的编号是否重复

//在cad画图中经常为遇到需要对实体进行编号的操作,这样就会存在可能因为认为操作而导致的编号重复的问题,

这样就需要程序有自动检测编号是否重复的问题,此代码是根据自己所做的项目进行编写的,所以不能使用与所有的

代码中,但思路可以借鉴。

//检查所有实体的编号是否有重复部分
void SignRepetition()
{
AcDbObjectIdArray entIds = ObtainEntId();
int count = 0;
//遍历每个Id对应实体的扩展数据看是否存在相同的
for (int i = 0; i < (entIds.length()-1); i++)
{
AcDbEntity *pEnt1;
resbuf *pBuf1;
Acad::ErrorStatus es = acdbOpenObject(pEnt1, entIds[i], ZcDb::kForRead);
if ( Acad::eOk != es )
{
acutPrintf(_T("\n打开实体失败!"));
return;
}
pBuf1 = pEnt1->xData(_T("BMC_NO_APP"));
resbuf *buf1;
buf1 = pBuf1;
buf1 = buf1->rbnext;
for (int j = i+1; j < entIds.length(); j++)
{
AcDbEntity *pEnt2;
resbuf *pBuf2;
Acad::ErrorStatus es = acdbOpenObject(pEnt2, entIds[j], ZcDb::kForRead);
if ( Acad::eOk != es )
{
acutPrintf(_T("\n打开实体失败!"));
return;
}
pBuf2 = pEnt2->xData(_T("BMC_NO_APP"));
resbuf *buf2;
buf2 = pBuf2;
buf2 = buf2->rbnext;
CString str1 = buf1->resval.rstring;
CString str2 = buf2->resval.rstring;
if ( str1 == str2 )
{
acutPrintf(_T("\n编号错误,有实体编号相同!"));
SignEnt(entIds[i]);
SignEnt(entIds[j]);
++count;
}
pEnt2->close();
acutRelRb(pBuf2);
}
pEnt1->close();
acutRelRb(pBuf1);
}
if ( count== 0 )
{
acutPrintf(_T("\n没有重复的编号!"));
}
else
{
acutPrintf(_T("\n有实体编号相同,已用圆标记!"));
}
}

时间: 2024-08-29 01:06:15

检查所有实体的编号是否重复的相关文章

EntityFramework_MVC4中EF5 新手入门教程之一 ---1.创建实体框架数据模型

Contoso University  Web 应用程序 你会在这些教程中构建的应用程序是一个简单的大学网站. 用户可以查看和更新学生. 课程和教师信息.这里有几个屏幕,您将创建. 这个网站的用户界面样式一直接近由内置的模板,生成的内容,以便本教程可以集中主要精力如何使用实体框架. 系统必备组件 方向和屏幕截图在本教程中假定您正在使用Visual Studio 2012或Visual Studio 2012 速成网站,最新的更新与截至 2013 年 7 月,安装的 Windows Azure S

关于重复记录和外部 ID (CRM导入提示已找到重复的查找引用)

http://docs.huihoo.com/oracle/crm-on-demand/21/local/html/Release21_SimpleChinese/index.htm?toc.htm?aboutrecordduplicateshelp.html 关于重复记录和外部 ID 在导入记录时,可以选择采用以下方法处理重复记录: 不导入重复记录 覆盖现有记录 注意: 在导入“任务”.“预约”和“附注”时无法使用此覆盖选项.将始终为这些记录类型创建新记录. 为重复项创建附加记录(仅限于“联系

两段检验系统生成的identityHashCode是否重复的代码

前言:承接上一篇hashCode和identityHashCode 的关系,下面的两段简单的程序主要是检验一下系统生成的identityHashCode是否存在重复的情况. 1:可以自由控制生成对象的个数,并且不受测试的类是否重写hashCode()方法的影响 import java.util.HashSet; import java.util.Set; public class CheckSystemIdentity { public static void main(String args[

mysql insert 主键 重复问题

转自:http://blog.163.com/[email protected]/blog/static/173131045201222122732435/ mysql中insert into和replace into以及insert ignore用法区别: mysql中常用的三种插入数据的语句: insert into表示插入数据,数据库会检查主键,如果出现重复会报错: replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用

Strut2 采用token机制防御CSRF同时也可以防止表单重复提交

一 未配置Struts2 token的情况下测试 1.从表单提交数据,可以从下图看出,快速点击保存按钮,请求提交了两次 2.检查post提交的数据中未含有token参数 3.查看数据列表,有重复数据 4.将刚才的请求由post请求转换为get请求(CSRF攻击),从下图可以看出请求成功 二 配置Struts2 token值后再次测试 1. 在工程中的Struts文件中配置token机制,针对新增与修改的form请求 2.在页面头部添加<%@ taglib uri="/struts-tags

Javascript - 数组去重复

这里我使用的场景是将表单中所有的input的值塞入数组中,然后通过去除重复的值.如果数组的长度和原数组的长度一致,说明没有重复,如果不一致(少于)则报错 //通过$.unique对数组进行“去重”,再和原数组对比,如果不相等说明有重复的值.这种方法的缺点是无法获取重复的对象然后提示用户 if (Acc_arr.length != $.unique(Acc_arr).length) { //发现重复 layer.msg("检测到银行卡号重复.银行信息关系到划扣操作.开发人员请求你认真检查.确保正确

HTML字符实体(Character Entities),转义字符串(Escape Sequence) 转

为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号,该怎么办呢? 这就要说到HTML转义字符串(Escape Sequence)了. 转义字符串(Escape Sequence)也称字符实体(Character Entity).在HTML中,定义转义字符串的原因有两个: 第一个原因是像“<”和“>”这类符号已经用来表示HTM

Hibernate之实体关系映射

延迟加载与即时加载 例如Person类和Email类是一对多关系,如果设为即时加载,当加载Person时,会自动加载Email,如果设置为延迟加载,当第一次调用person.getEmails()时才会执行SQL语句加载Email 注解配置时,@OnetToMany(Fetch = FetchType.EAGER)为即时加载,Fetch = FetchType.LAZY为延迟加载 延迟加载和即时加载的策略适用于所有一对多.多对一.多对多等所有的实体关系 一般来说,延迟加载要比即时加载节省资源,但

iOS HTML标签字符实体,转译字符串归类大全 【转载】

为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号,该怎么办呢? 这就要说到HTML转义字符串(Escape Sequence)了. 转义字符串(Escape Sequence)也称字符实体(Character Entity).在HTML中,定义转义字符串的原因有两个: 第一个原因是像"<"和">