日期:2014-05-18  浏览次数:20663 次

急求有人能给我讲下这个编号算法吗
急求有人能给我讲下这个编号算法吗

就是当我设置了一个起始编号规则,后面的新增编号都是按照这个编号规则自动递增。
如:起始编号规则:TFT11-AA.aa,后面应该是TFT11-AA.ab,   TFT11-AA.ac   .....   TFT11-AA-az.......TFT11-AB-aa.......至TFT99-ZZ-zz结束,   而且起始编号位数范围为1-9,即   TFT1-A.a   到   TFT111111111   -   AAAAAAAAA.aaaaaaaaa  

急呀,有人能帮我一下吗??谢谢。。。。

------解决方案--------------------
你只要判断好起始编码是几位,就应该可以判断出最大的编码是多少了,其他的通过用十六进制来增加一下编码,显示的时候,根据起始编码,再分段(中间加入“-”)显示不就解决了吗。
------解决方案--------------------
刚写了一会没搞出来,你自己去写代码得了.

我的大概想法是这样的:
string[] str ={ "abc ", "abc ", "abc " };
//把你的编码位数及每位对应的编码字母存到这个数组里
string[] strCode = new string[str.Length];
//这个数组存储编码对应的字符串.
//下面把编码每位对应的编码的int值计算出来,再做除法,取余,减法等运算把每位对应的字符取出来存到strCode里
//再对strCode进行指定格式的组织即可.

现在有点事去了. 如果明天还没搞出来我帮你写出来.
------解决方案--------------------
11_AA_aa
这个不就是个特别一点的进制算码,
根据这个字父串的长度
动态从右到左取出每个字母或数字,用分三种情况去处理,
最先取出的一个字母如果其ASCLL编码是z,则将下一个字母根据ASCLL编码向上加一,
如果如果它的下一个字母不是z或者Z或者9,则加一之后跳出循环,
否则同规则继续循环