chulse 发表于 2017-8-13 10:39:55

ArcPad的VBScript

这里是否有人使用VBS来自定义Arcpad以进行数据收集?
我一直在使用它来收集树数据。
有没有人有一个示例来分析文本字符串中的数字,运行计算并替换字符串中的结果?
谢谢
**** Hidden Message *****

Roy_043 发表于 2017-8-13 17:28:36

我不知道Arcpad,但这里有一个VBS的例子,若要测试代码,请使用。vbs扩展名,然后双击该文件。    Dim InP,matches,newVal,oldVal,reg。
inp = InputBox("输入带数字的文本")。
Set reg = New RegExp。
reg,模式= "\d+\,?\d+(?=\D*)" '更改" \ "如果需要,转换为“,”号。。
Set matches = reg,执行(输入)。
如果0 匹配,然后数数。
oldVal = matches(0),值。
newVal = oldVal + 15 '加15,无需将oldVal转换为数字或将newVal转换为字符串,。
MsgBox(Replace(inp,oldVal,newVal,1,1))。
否则。
MsgBox("未找到号码")。
结束If。

chulse 发表于 2017-8-14 10:00:35

谢谢我能够通过使用数组计算出我需要什么
增加胸径
子DBHPLUS
<div>昏暗的目标层、目标窗体、目标窗体和目标窗体、strDBH、aa、ub</div>
设置objTheLayer=Application.Map.Layers.item(1)
设置objTheForm=objTheLayer.Forms(1)
设置objEditFormCtrls=objTheForm.Pages(“PAGE1”)。控件
If(objEditFormCtrls(“txtDBH”)。值=),然后
objEditFormCtrls(“txtDBH”)。值=1
其他
“获取表单字段中的DBH字符串”
strDBH=objEditFormCtrls(“txtDBH”)。值
删除所有空格
strDBH=Replace(strDBH,“,”,1,-1)
“使用逗号delimeter创建数组
aa=split(strDBH,,,-1,1)
<div>获取数组的od上限
ub=ubound(aa)
“将最后一个条目转换为整数并添加一个
aa(ub)=1+cint(aa(ub))
<div>通过添加逗号从数组中重建字符串
strDBH=Join(aa,“,”
“将新字符串传递给表单字段
objEditFormCtrls(“txtDBH”)。值=strDBH
如果
自由对象
设置aa=nothing
设置ub=nothing
设置strDBH=Nothing
设置objEditFormCtrls=Nothing
设置objTheForm=Nothing
设置objTheLayer=Nothing
末端接头

Roy_043 发表于 2017-8-14 11:12:56


有趣的一点。我真的不知道。我已经为excel使用了类似的东西,并且需要类型转换,所以我想我在这里需要它。我相信我已经读到JOIN返回一个字符串,无论输入如何,所以我认为不需要CStr。我需要在没有Cint的情况下进行测试才能看到。
页: [1]
查看完整版本: ArcPad的VBScript