1. 程式人生 > >解析ArcGis的欄位計算器(三)——文字型欄位計算,編號那些事兒

解析ArcGis的欄位計算器(三)——文字型欄位計算,編號那些事兒

實際操作中我們一般會將編號欄位定義為文字型,因為編號不是序號,序號是一個遞增數值,而編號往往是一個數字串程式碼。
1、怎麼編號?
最簡單的編號—>直接在編號欄位使用欄位計算器將FID欄位值+1計算過來便是。

BH=[FID]+1


這應該只能叫做序號值,還不夠,還有一個問題需要我們去解決,因為編號往往是一個數字程式碼,它一般是由區域程式碼或者型別標識碼等(字首)+固定位數序號組成的
BH的固定位數序號如果是4位,那麼全碼應該是“字首+0001”,“字首+0002”……“字首+0010”……“字首+0100”……“字首+9999”。
可以看出序號前面補的“0”位數是不一樣的,可以通過下面的方式輕鬆實現。

BH="
字首" & left("0000",4-len( [FID]+1)) & ([FID] +1)


left("字串",n)是從左側開始擷取字串的指定前n位;len("字串")是計算字串長度。這個例子中序號部分長度為4,序號部分“0”的長度應該是4-序號值的長度,暫記為n,從“0000”左邊開始擷取n個0 拼接上序號值就是我們要的結果了。

有沒有比較zhuangbility的操作?當然有的,比如下面可以smallzhuangbility一下的Python函式

rec=0
def autoIncrement():
 global rec
 pStart = 1 #初始值
 pInterval = 1 #
間隔值 if (rec == 0): rec = pStart else: rec = rec + pInterval return rec

怎麼呼叫翻看俺前邊的帖子

autoIncrement()直接呼叫
(str(autoIncrement())).zfill(5) 固定位數為5,前邊補0
autoIncrement()+1000 加起碼1000

2、編號的修改