当前位置:编程学习 > VB >>

代码自动计算长度

E1 L E2 E1 L E2
(029) 180 J0016 J0018 150 J0020
(030) 180 J0016 J0019 140 (034)
(031) 160 J0017 J0019 440 (035)
(032) 270 J0017 J0020 90 J0023
(033) 140 J0019 J0021 230 J0020
(036) 300 J0018 J0023 200 J0022
(037) 80 J0021 J0023 240 (042)
(038) 100 J0021 S(308) 0 S-308
(039) 140 J0021 S(316) 0 S-316
(040) 130 J0022 S(318) 0 S-318
(041) 130 J0022 S(321) 0 S-321
J0015 30 (027) S-308 200 J0016
J0015 30 S-308 S-316 50 (028)
J0016 60 J0017 S-318 0 S-321
J0017 900 J0018 S-318 0 S-316
J0018 220 J0019 S-321 10 J0015

以上是一个数据库(excel形式的),其中E1和E2为位置,L是两个端点的长度,带有括号的为端点,现在我需要两个端点的距离,由代码自动找这两个端点所需要哪几个位置段,同时将长度L相加的结果填在excel的“长度”一列;举例求029到032的距离:((029)180 J0016)+(J0016 60 J0017+((032)270 J0017)=180+60+270=510mm --------------------编程问答-------------------- 污蔑咩咩咩咩 --------------------编程问答-------------------- 没看明白! --------------------编程问答-------------------- 古大嗒嗒嗒大大 --------------------编程问答-------------------- E1 L E2 E1 L E2
(029) 180 J0016 J0018 150 J0020
(030) 180 J0016 J0019 140 (034)
(031) 160 J0017 J0019 440 (035)
(032) 270 J0017 J0020 90 J0023
(033) 140 J0019 J0021 230 J0020
(036) 300 J0018 J0023 200 J0022
(037) 80 J0021 J0023 240 (042)
(038) 100 J0021 S(308) 0 S-308
(039) 140 J0021 S(316) 0 S-316
(040) 130 J0022 S(318) 0 S-318
(041) 130 J0022 S(321) 0 S-321
J0015 30 (027) S-308 200 J0016
J0015 30 S-308 S-316 50 (028)
J0016 60 J0017 S-318 0 S-321
J0017 900 J0018 S-318 0 S-316
J0018 220 J0019 S-321 10 J0015
--------------------编程问答-------------------- 我发的东西会烂掉,不知道这个版块是怎么回事?而且还不能上传文件  哎............ --------------------编程问答-------------------- 吴力度吾拉蒂乌迪迪乌独独 --------------------编程问答-------------------- 我明白了,可不好写代码,你举得例子029到032是比较简单的一条线,如果多了还真不好找,可能需要递归,这还是能找到的情况,如果找不到,我不知道该怎样说。如果一个节点的分叉很多,很不好找。 --------------------编程问答-------------------- 这是什么啊 --------------------编程问答-------------------- 就是第二行 (029) 180 J0016 J0018 150 J0020 找到 长度 180 下一个目标是 J0016

倒数第三行 J0016 60 J0017 S-318 0 S-321,根据上面的 J0016 找到此行的长度60 和下一目标 J0017

根据J0017找到第五行(032) 270 J0017 J0020 90 J0023,取出长度 270

将三个目标长度相加 180+60+270=510 就是从029到032的长度,对吧? --------------------编程问答-------------------- 你们说的非常对,就是这样的情况,举例(029)到(042)的距离:180+60+900+150+90+240=1620mm;180是(029)到J0016的长度,60是J0016到J0017的长度,900是J0016到J0018的长度,150是J0018到J0020的长度,90是J0020到J0023的长度,240是J0023到(042)的长度 --------------------编程问答-------------------- 你们说的非常对,就是这样的情况,举例(029)到(042)的距离:180+60+900+150+90+240=1620mm;180是(029)到J0016的长度,60是J0016到J0017的长度,900是J0017到J0018的长度,150是J0018到J0020的长度,90是J0020到J0023的长度,240是J0023到(042)的长度



上面一个有误,以这个为准,书写错误,见谅(我们在工作中也是因为经常有这样的错误,所以我才发帖的) --------------------编程问答-------------------- 怎么没有人能解决啊?
--------------------编程问答-------------------- 布里里里布里里 --------------------编程问答-------------------- 你的数据库表中,记录是如何定义的?一条记录会有两条线吗?

这个影响到代码的写法。 --------------------编程问答-------------------- 另外,你的路径方向必须是从 E1 到 E2,不允许逆向吗? --------------------编程问答-------------------- 如果允许逆向,是必须找到最短路径,还是找到一条路径即可?
--------------------编程问答-------------------- 吴嘟嘟嘟无弟弟 --------------------编程问答-------------------- 可以正向,也可以逆向,任何两点只会有一条线是通的,如果代码判断到无法连通就提示一下,让用户查找原因;所有的分支数量不会超过5次的


--------------------编程问答-------------------- 带有括号的是端位,其余的是分支,所有的分支数量都不会超过5次的,也就是说以J0开头的(比如J001不会出现5次的) --------------------编程问答-------------------- 库嗒嗒嗒大大 --------------------编程问答-------------------- 喀喀喀喀喀喀 --------------------编程问答-------------------- 高手怎么都不出山啊? --------------------编程问答-------------------- 怎么没有人帮我啊?好着急
补充:VB ,  VBA
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,