解析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、编号的修改

猜你喜欢

转载自www.cnblogs.com/yzhyingcool/p/10085769.html