線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:4102
推到 Plurk!
推到 Facebook!

關於英數字流水號設計

答題得分者是:syntax
cswang1210
一般會員


發表:46
回覆:42
積分:17
註冊:2005-01-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-10-22 23:58:40 IP:118.171.xxx.xxx 訂閱
各位大大:
小弟最近有一個需求....想請各位大大幫忙.....
我想寫一個function....讓程式可以自動編流水號...而這個流水號是有英文及數字的....
例如:一個四碼的流水號0000......編到9999後...我希望他幫我產生的下一個流水號是A000
然後A999之後是B000..直到Z999後...編ZA00...直到ZZZZ為最大值.....
請問我該怎麼寫才好........謝謝幫忙....

ps..希望流水號的位數是可以動態指定的......
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-10-23 09:13:12 IP:59.125.xxx.xxx 訂閱

procedure GetSerialNumber(String previousNumber): String
begin

1. 如果是 Unicode 必先轉 ASCII
2. for 迴圈
a. 由最後一位開始判斷,到第一位
直接使用 Byte 數值(0 = 0x30, 1 = 0x31, .... 9 = 0x39),加上 1 如果是 在 0x30 ~ 0x 39 之間,就結束
b. 如果超過,就加上 7,轉為 A ~ Z (小寫請改加上39, a~ z)
c. 再做進位判斷,如果超過 0x5A,就變成 0,然後進位 (將進位參數由 0 -> 1)
最到迴圈結束

end

方法二
procedure GetSerialNumber(String previousNumber): String
begin

1. 將 previousNumber,以36 為基底,轉為 int
2. 加 1
3. 轉回 36 表示法 {0,1,2,...9,A,B,C,.....Z 共 36 轉變化,類似 16 進位轉換的作法}

end

===================引 用 cswang1210 文 章===================
各位大大:
小弟最近有一個需求....想請各位大大幫忙.....
我想寫一個function....讓程式可以自動編流水號...而這個流水號是有英文及數字的....
例如:一個四碼的流水號0000......編到9999後...我希望他幫我產生的下一個流水號是A000
然後A999之後是B000..直到Z999後...編ZA00...直到ZZZZ為最大值.....
請問我該怎麼寫才好........謝謝幫忙....

ps..希望流水號的位數是可以動態指定的......
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-10-23 10:57:15 IP:114.32.xxx.xxx 未訂閱
您好, 

您確定是
AZZZ 之後是 B000
,
Z9ZZ 後編ZA00
?

如果是, 那您的編號方法是不連續的編碼法了吧

------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
編輯記錄
st33chen 重新編輯於 2009-10-23 11:02:42, 註解 無‧
GGL
資深會員


發表:104
回覆:600
積分:335
註冊:2006-11-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-10-25 02:54:35 IP:122.116.xxx.xxx 未訂閱
我想他應該是....
0000 - 9999
A000 - A999
B000 - B999
......................
Z000 - Z999
ZA00 - ZA99
ZB00 - ZB99
......................
ZZA0 - ZZA9
......................
ZZZ0 - ZZZ9
ZZZA - ZZZZ

===================引 用 st33chen 文 章===================
您好,

您確定是
AZZZ 之後是B000
,
Z9ZZ 後編ZA00
?

如果是, 那您的編號方法是不連續的編碼法了吧

小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-10-25 16:38:46 IP:59.112.xxx.xxx 訂閱
先判斷數字字串部份長度iL,和文字部分長度sL
截取數字字串部份轉成數字 1後轉回文字, 長度不足補0,長度超過原iL長度就進位
文字部分用 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
把字串部份最後一個字的值往後一格, 如果已經是Z 或是'' 就把數字部份第一位數變成文字部分最後一個字

這function 雖然處理有點小麻煩, 但是並沒很特殊的技巧



==========引 用 cswang1210 文 章===================
各位大大:
小弟最近有一個需求....想請各位大大幫忙.....
我想寫一個function....讓程式可以自動編流水號...而這個流水號是有英文及數字的....
例如:一個四碼的流水號0000......編到9999後...我希望他幫我產生的下一個流水號是A000
然後A999之後是B000..直到Z999後...編ZA00...直到ZZZZ為最大值.....
請問我該怎麼寫才好........謝謝幫忙....

ps..希望流水號的位數是可以動態指定的......
------
額有朝天骨,眼中有靈光
編輯記錄
小傑克 重新編輯於 2009-10-25 18:52:44, 註解 無‧
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-10-26 10:39:19 IP:59.125.xxx.xxx 訂閱
恩,我想我們瞎猜,不是辦法,等事主說明吧

===================引 用 小傑克 文 章===================
先判斷數字字串部份長度iL,和文字部分長度sL
截取數字字串部份轉成數字 1後轉回文字, 長度不足補0,長度超過原iL長度就進位
文字部分用 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
把字串部份最後一個字的值往後一格,如果已經是Z 或是'' 就把數字部份第一位數變成文字部分最後一個字

這function 雖然處理有點小麻煩, 但是並沒很特殊的技巧



==========引 用 cswang1210 文 章===================
各位大大:
小弟最近有一個需求....想請各位大大幫忙.....
我想寫一個function....讓程式可以自動編流水號...而這個流水號是有英文及數字的....
例如:一個四碼的流水號0000......編到9999後...我希望他幫我產生的下一個流水號是A000
然後A999之後是B000..直到Z999後...編ZA00...直到ZZZZ為最大值.....
請問我該怎麼寫才好........謝謝幫忙....

ps..希望流水號的位數是可以動態指定的......
max5020
資深會員


發表:30
回覆:277
積分:321
註冊:2003-06-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-10-28 12:01:00 IP:59.120.xxx.xxx 訂閱
是不是因為車牌號碼不夠用的原因啊?
開玩笑的, 請不要記錄, 呵呵!!
cswang1210
一般會員


發表:46
回覆:42
積分:17
註冊:2005-01-06

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-11-11 13:48:48 IP:211.20.xxx.xxx 訂閱
不好意思...因為在忙別的事情...所以把這個問題擱下了....
我需要的規則就像以下的樣子.....
我也覺得很奇怪....為什麼要用這麼奇怪的編碼.......
目前我想到的...是先分開英文跟數字的部份....分別做處理........
數字部份有進位再去處理英文的部份......

------------------------
0000-9999
A000-A999
B000-B999
...
Z000-Z999
AA00-AA99
AB00-AB99
---
AZ00-AZ99
BA00-BA99
...
ZA00-ZA99
...
ZZ00-ZZ99
AAA0-AAA9
AAB0-BBB9
....



編輯記錄
cswang1210 重新編輯於 2009-11-11 14:25:12, 註解 無‧
系統時間:2024-05-17 0:41:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!