取编号的问题

pborvb 2008-08-25 12:00:56
长度为两位,当从01到99满了以后,从A1、A2、A3...A9、B1、B2、...如此往下取,怎样实现?
...全文
92 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kenryu3450 2008-08-25
  • 打赏
  • 举报
回复
判断下不就行了么?
先判断首位是字母还是数字 然后判断第二位的大小
编程夜猫 2008-08-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yangjinok 的回复:]
3楼不错方法,lz还是做交通信号灯啊,有点像
[/Quote]
ybkenan 2008-08-25
  • 打赏
  • 举报
回复
if ls_mun <'99'
ls_mun = String(Int(ls_mun)+1)
else
ls_left = left(ls_num,1)
ls_right = right(ls_num,1)
if ls_right = '9' then
ls_right = '1'
if ls_left <> '9' then
ls_left = Char(Asc(ls_left) +1)
else
ls_left = 'A'
end if
else
ls_right = string(int(ls_right) + 1 )
end if
ls_mun = ls_left + ls_right
end if

lllyyymmm 2008-08-25
  • 打赏
  • 举报
回复
eviler 2008-08-25
  • 打赏
  • 举报
回复
恩,是的,这样取编号其实没有多少个的

99 + 26 * 9 = 333 个编号 啊
jlwei888 2008-08-25
  • 打赏
  • 举报
回复
解决的根本还是要增加宽度!
eviler 2008-08-25
  • 打赏
  • 举报
回复
函数 f_next 参数: string ls_num


int num
string ls_left,ls_right
if ls_num = '' or isnull(ls_num) or ls_num = '0' then return '1'

num = integer(ls_num)
if num = 0 then
ls_left = left(ls_num,1)
ls_right = right(ls_num,1)
if ls_right = '9' then
if ls_left = 'Z' then
messagebox("信息提示","标号已经用完")
return '-1'
end if
return char(asc(ls_left) + 1) + '1'
else
return ls_left + string(integer(ls_right) + 1)
end if
elseif num = 99 then
return 'A1'
else
return string(num + 1)
end if


看看是不是对你有点帮助
yangjinok 2008-08-25
  • 打赏
  • 举报
回复
3楼不错方法,lz还是做交通信号灯啊,有点像
zhxwen1 2008-08-25
  • 打赏
  • 举报
回复
设置两个字符数组,一个存储英文字母,一个存储数字,然后组合数组项,生成新数组
eviler 2008-08-25
  • 打赏
  • 举报
回复
如果取到 z9 之后再怎么往下

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧