转自:http://support.esrichina-bj.cn/2006/0804/1192.html
文章编号: 31542
软件: ArcGIS-ArcEditor8.3,9.0,9.1,9.2,9.3,9.3.1ArcGIS-ArcInfo9.0,8.3,9.3.1ArcGIS-ArcView8.3,9.3.1
摘要:
说明文件介绍了如何利用“标注表达式”将大写、小写或两者混合的字符串转为正确的格式。例如,如果一个字符串是以下格式:
"hello world"
"HELLO WORLD"
"hELLO wORLD"
利用“标注表达式”可以将其统一转换为"Hello World"。
内容:
在ArcMap的“字段计算器”中,可以使用VBA表达式中的StrConv将字符串转为正确格式。然而,默认的标注表达式解析器VBScript没有这个功能。以下标注表达式解决了VB脚本存在的限制:
1. 打开“标注表达式”对话框。
A. 右键点击ArcMap内容列表中的图层,选择“属性”,显示“图层属性”对话框。
B. 选择“标注”标签。
C. 点击“标注字段”右边的“表达式”按钮。
2. 点击“高级”按钮。
3. 当只转换一个字段时,可以用以下代码。记得将两处字段名[MyFieldName]改为实际字段名。
FindLabel = PCase([MyFieldName])
End Function
Function PCase(strInput)
Dim iPosition
Dim iSpace
Dim strOutput
iPosition = 1
Do While InStr(iPosition,strInput," ",1) <> 0
iSpace = InStr(iPosition,1)
strOutput = strOutput & UCase(Mid(strInput,iPosition,1))
strOutput = strOutput & LCase(Mid(strInput,iPosition + 1,iSpace - iPosition))
iPosition = iSpace + 1
Loop
strOutput = strOutput & UCase(Mid(strInput,iPosition + 1))
PCase = strOutput
End Function
4. 当一次转换多个字段时,可以用以下代码。记得改字段名,需要的话可以增加更多字段。
FindLabel = PCase([MyFieldName1] & " " & [MyFieldName2] & " " & [MyFieldName3])
End Function
Function PCase(strInput)
Dim iPosition
Dim iSpace
Dim strOutput
iPosition = 1
Do While InStr(iPosition,1) <> 0
iSpace = InStr(iPosition,1)
strOutput = strOutput & UCase(Mid(strInput,1))
strOutput = strOutput & LCase(Mid(strInput,iSpace - iPosition))
iPosition = iSpace + 1
Loop
strOutput = strOutput & UCase(Mid(strInput,iPosition + 1))
PCase = strOutput
End Function
5. 点击“标注表达式”对话框的确定。
6. 确保“图层属性”的“标注”标签中“标注此图层中的要素”已勾选。
7. 点击“标注”标签中的确定。
创建时间:2006-08-04
最近更新: 2011-05-03