關於英數字流水號設計 |
答題得分者是:syntax
|
cswang1210
一般會員 發表:46 回覆:42 積分:17 註冊:2005-01-06 發送簡訊給我 |
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
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 發送簡訊給我 |
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
我想他應該是....
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 發送簡訊給我 |
先判斷數字字串部份長度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 發送簡訊給我 |
恩,我想我們瞎猜,不是辦法,等事主說明吧
===================引 用 小傑克 文 章=================== 先判斷數字字串部份長度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 發送簡訊給我 |
|
cswang1210
一般會員 發表:46 回覆:42 積分:17 註冊:2005-01-06 發送簡訊給我 |
不好意思...因為在忙別的事情...所以把這個問題擱下了....
我需要的規則就像以下的樣子..... 我也覺得很奇怪....為什麼要用這麼奇怪的編碼....... 目前我想到的...是先分開英文跟數字的部份....分別做處理........ 數字部份有進位再去處理英文的部份...... ------------------------ 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, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |