2 h00473 h00473 于 2016.01.13 20:47 提问

c# datagridview 筛选数据 算法

先从 照片中提取拍摄时间的 exif信息,提取后格式化下,
DSC00508.JPG 2016-01-08 10:11:12 0
DSC00509.JPG 2016-01-08 10:11:21 9
DSC00510.JPG 2016-01-08 10:11:30 9
DSC00511.JPG 2016-01-08 10:11:38 8
DSC00512.JPG 2016-01-08 10:11:46 8
DSC00513.JPG 2016-01-08 10:11:55 9
DSC00514.JPG 2016-01-08 10:12:22 27
DSC00515.JPG 2016-01-08 10:12:31 9
DSC00516.JPG 2016-01-08 10:12:39 8
DSC00517.JPG 2016-01-08 10:12:48 9
DSC00518.JPG 2016-01-08 10:12:56 8
DSC00519.JPG 2016-01-08 10:13:06 10
DSC00520.JPG 2016-01-08 10:13:28 22

 第一列是 照片名字 ,第二列是 拍摄的日期 第三列是拍摄时间,第四列是两次拍摄 时间间隔

2016-1-8 10:11:39   0   
2016-1-8 10:11:48   9   
2016-1-8 10:11:57   9   
2016-1-8 10:12:05   8   
2016-1-8 10:12:13   8   
2016-1-8 10:12:21   8   
2016-1-8 10:12:49   28  
2016-1-8 10:12:58   9   
2016-1-8 10:13:06   8   
2016-1-8 10:13:14   8   
2016-1-8 10:13:23   9   
2016-1-8 10:13:33   10  
2016-1-8 10:13:54   21  
2016-1-8 10:14:03   9
2016-1-8 10:14:11   8
2016-1-8 10:14:20   9
2016-1-8 10:14:29   9
2016-1-8 10:14:54   25
2016-1-8 10:15:02   8
2016-1-8 10:15:11   9
2016-1-8 10:15:19   8

以上是一个设备的 本机时间,间隔 也是拍摄时间。实际上两个设备是,一个触发另外一个设备的,所以两个时间的 一对一的 列索引,间隔 几乎是一致的,就是所谓触发设备的物理时间,经过计算是,27秒,

现在要做的就是当第二个datagridview 不会出错的情况下,当 第一个出现丢失,如何去判断 丢失的是那个列,并继续做比较,找出所有丢失的列值  


6个回答

caozhy
caozhy   Ds   Rxr 2016.01.13 20:49
enpterexpress
enpterexpress   2016.01.13 22:11
caozhy
caozhy   Ds   Rxr 2016.01.13 20:50

参考上面的代码,你修改下
string filter = "第三列 > 11";

h00473
h00473   2016.01.13 20:51

我想的方法是 分组 ,因为每5个 时间数据后,会 出现一个大的时间间隔,以这为分界线,显示求平均,再去按照分组后的数据,查找,丢失的数据。因为 照片数据,是 不确定丢失位置的

h00473
h00473   2016.01.13 20:57

用 for 循环 我可以找出 所有 节点的 数值,已这个节点再去分组 就蒙圈了

h00473
h00473   2016.01.14 16:33

又想出一种新方法,本身第二组数据是触发第一组数据的 ,我用第二组数据 重新构建一个虚拟的第一组数据,生成第三组数据,然后对比第一组数据和第三组数据,如果差值能在 正负1 之间,就算是数据可以 一对一了,依次类推。差值很大的,说明这个第一组数据,是有问题的,所以舍弃当前对应比较的第三组数据,索引增加1 ,继续对比

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!