标题:一个很难的循环问题![已经写出来了,感谢各位大侠](源码已贴出)【注释已 ...
取消只看楼主
nvzhanshi
Rank: 2
等 级:论坛游民
帖 子:54
专家分:47
注 册:2010-11-28
结帖率:66.67%
已结贴  问题点数:20 回复次数:12 
一个很难的循环问题![已经写出来了,感谢各位大侠](源码已贴出)【注释已加】
问题描述:
目前在做关于汽车车牌管理的系统,在车牌入库方面遇到了麻烦,还请各位大侠指点一二,在下不甚感激。
关于车牌入库,都是批量入库,比如输入车牌起始号码和终止号码(号码均是5位,包含数字和字母),点击入库按钮,方可在数据库内添加相应条数的记录。例如:起始号码(10000),终止号码(10099),入库后,在数据库是相应的100条记录。这样的很容易实现,因为车牌号码都是数字。
但是关于车牌号码还存在字母,比如:起始号码(100W0),终止号码(101W4),入库后,数据库中的内容有15条,车牌号分别是(100W0,100W1,100W2,100W3,100W4,100W5,100W6,100W7,100W8,100W9,101W0,101W1,101W2,101W3,101W4)。如果是这样的起始号码和终止号码,应该如何使用循环往数据库中写入呢?
还有一种情况,就是一个号牌有多个字母,比如(3Q7T8,3Q7T9,3Q8T0),(B789D,B790D,B791D),(76DS8,76DS9,77DS0)。

以上就是这个关于车牌入库存在的显示问题,请各位有经验的同志给个思路或算法,谢谢了!


[ 本帖最后由 nvzhanshi 于 2010-12-1 13:24 编辑 ]
搜索更多相关主题的帖子: 数据库 汽车 
2010-11-28 19:38
nvzhanshi
Rank: 2
等 级:论坛游民
帖 子:54
专家分:47
注 册:2010-11-28
得分:0 
以下是引用cnfarer在2010-11-28 20:36:30的发言:

其实,你可以先把那个字母位去掉,就变在了一个纯数了(这个时候就可以用循环了),生成号码时,转换成字符串,再在指定位置插入那个字母就行了!
大侠,问一下,如果我要判断这个变量的某几位是字母,用什么方法好?
比如:a=123w7,b=124w1
用什么函数进行拆分?或者用什么函数放到数组里面?然后怎么判断?
我现在也可以写出来,不过感觉写出来以后效率会很低,请大侠指点一下!
2010-11-29 18:23
nvzhanshi
Rank: 2
等 级:论坛游民
帖 子:54
专家分:47
注 册:2010-11-28
得分:0 
以下是引用gupiao175在2010-11-29 00:57:10的发言:

    str="数据" '车牌数据
    Set Reg = New RegExp
    Reg.Global     = True
    Reg.Pattern    = "[A-Za-z]" '字母正则
    Reg.IgnoreCase = False
    str2=Reg.replace(str,"");'str2就是不带字母的数据了。然后循环插入数据!在插入的时候在固定的位置再插入回原来有的字母!不过这种方法只适合字母固定位置的情况,如果是随机的,那就没办法了。
这个方法好像只能满足str中只有1个字母吧!就算是我固定了字母的位置也不行。例如:str1=123w5(规定在第4位就可以),str2=1w2c5(有多个字母的车牌,显然就不行了)
这样的方法确实不行!

[ 本帖最后由 nvzhanshi 于 2010-11-29 18:27 编辑 ]
2010-11-29 18:25
nvzhanshi
Rank: 2
等 级:论坛游民
帖 子:54
专家分:47
注 册:2010-11-28
得分:0 
以下是引用hams在2010-11-29 08:12:06的发言:

i1=1000
i2=1014
for i=i1 to i2
response.write mid(i,1,3)&"W"&mid(i,4,1)
next
大侠给出的这段是说我知道第几位是字母,才能和样写。并且要知道字母是什么。
但是对于怎么在变量中把字母分离出来,我想的方法很麻烦。大侠可否帮忙给出一段分离字母和判断字母的代码?

例子:i1=123W7 i2=124W1
2010-11-29 18:31
nvzhanshi
Rank: 2
等 级:论坛游民
帖 子:54
专家分:47
注 册:2010-11-28
得分:0 
很感谢各位版主帮忙解答!不过问题还没解决,还请各位大侠帮忙想想办法!
2010-11-29 18:32
nvzhanshi
Rank: 2
等 级:论坛游民
帖 子:54
专家分:47
注 册:2010-11-28
得分:0 
感谢gupiao175的精彩回复,刚才我自己也写了一段,请按我的思路看一下!中间又出现了问题,请帮忙想想怎么解决!
一下只有找出第几位是字母和重新组合(这里有问题)的代码。


以下是部分参数和笔记=====================================================
起码:123W7   止码:124W1     起:1W3Q7   止1W4Q1    起:1WQ12  起:W12Q3
a=(1,2,3,W,7)   b=(1,2,4,W,1)   c=( , , ,W, )      aa=1237  bb=1241  
=========================================================================
  
以下是代码部分===========================================================
<%
a=123W7
b=124W1
a(0)=mid(a,1,1)
a(1)=mid(a,2,1)
a(2)=mid(a,3,1)
a(3)=mid(a,4,1)
a(4)=mid(a,5,1)
b(0)=mid(b,1,1)
b(1)=mid(b,2,1)
b(2)=mid(b,3,1)
b(3)=mid(b,4,1)
b(4)=mid(b,5,1)
x=0

for i=0 to 4
if IsNumeric(a(i)) then    '如果a(i)是数字,这个函数不会用,不知道是不是这样写!不过就这个意思!
else
 if x=1 then
    d=a(i)
    di=i+1
    x=x+1
 else
    c=a(i)
    ci=i+1
    x=x+1
 end if
end if

if x=1 then
aa=left(a,ci-1)&right(a,5-ci)
bb=left(b,ci-1)&right(b,5-ci)
end if

----------------------------------------------------未完成部分
if x=2 then
aa=left(a,ci-1)&mid(a,ci+1,d1-c1-1)&right(a,5-ci)
bb=left(b,ci-1)&right(b,5-ci)
end if
next
----------------------------------------------------未完成部分

%>
===================================================================
问题:
单横线中间的部分,是重组带有2个字母的数据的代码,我想了很久,没有想出怎么写来,请大侠赐教!

另外,中间也能有语法错误,不过意思就是这样的,大侠先凑合看,帮我看看这个思路能不能行!

[ 本帖最后由 nvzhanshi 于 2010-11-29 19:28 编辑 ]
2010-11-29 19:27
nvzhanshi
Rank: 2
等 级:论坛游民
帖 子:54
专家分:47
注 册:2010-11-28
得分:0 
以下是引用hams在2010-11-30 07:59:38的发言:

关键是你自己没有明确规律是什么,字母参不参与循环。
字母不参与循环,而且车牌中的字母不只是W或Q,26个字母好像都有吧!
2010-11-30 09:18
nvzhanshi
Rank: 2
等 级:论坛游民
帖 子:54
专家分:47
注 册:2010-11-28
得分:0 
以下是引用gupiao175在2010-11-29 23:25:29的发言:

你的这种录入我感觉不实际.即使技术上能做到,但是实际的车牌号即使扣除字母部分,其他数字部分怎么可能那么有规律的由小到大的排列呢??
字母是26个字母中的任何一个,大侠可以试想一下你在路上看到的车牌!对于数字,去掉字母的起码肯定比去掉字母的止码要小,这是肯定的!不然也没法批量录入!
2010-11-30 09:20
nvzhanshi
Rank: 2
等 级:论坛游民
帖 子:54
专家分:47
注 册:2010-11-28
得分:0 
以下是引用gupiao175在2010-11-30 00:01:30的发言:



对于这样一组代码,你看到什么没有,位置是固定的很容易进行修改!但是对于位置不固定的,那修改起来就非常麻烦了!
需要考虑的因素太多了。如果我来操作的话至少要写几十行的代码来判断过滤.
就是因为字母位置不固定,所以上面我写了那么多,主要是用于判断字母,进行数字重组,然后在循环中,从相应的位置插入字母,然后将变量存入数据库!

大侠不要考虑固定字母了,那个东西在现实的车牌录入中是不可能的。
帮忙想一下这个随机位置是字母的车牌吧。

并且一个车牌中最多只有2个字母,比如:鲁A12C5T,其中黑A是指的归属地,这个我们不考虑,因为所有车牌都是的归属地都一样,我们只要考虑12C5T就行了!
2010-11-30 09:25
nvzhanshi
Rank: 2
等 级:论坛游民
帖 子:54
专家分:47
注 册:2010-11-28
得分:0 
以下是引用jansonwang在2010-11-30 09:22:33的发言:

随机从数字0-9 字母A-Z中选择字符组合成5位字符,然后入库,每次入库都判断一下本次入库的号码是否在库中存在,如果存在则重新随机生成一个,这样一直循环。直到最后的记录数等于理论上的全部记录数。
没有理解大侠的意思!
2010-11-30 09:40



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-327181-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.133947 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved