清华山维EPS二次开发VBS基础篇
程序控制
For-next
SSProcess.PushUndoMark
SSProcess.ClearSelectConditionGroups
SSProcess.ClearSelectCondition
SSProcess.ClearSelection
SSProcess.SetSelectCondition "SSObj_Type", "==", "point"
SSProcess.SelectFilter
cnt= SSProcess.GetSelGeoCount
for i=0 to cnt-1[step 2]
id= SSProcess.GetSelGeoValue (i,"SSObj_ID" )
MSGBOX id
next
While-wend
SSProcess.PushUndoMark
SSProcess.ClearSelectConditionGroups
SSProcess.ClearSelectCondition
SSProcess.ClearSelection
SSProcess.SetSelectCondition "SSObj_Type", "==", "point"
SSProcess.SelectFilter
cnt= SSProcess.GetSelGeoCount
while cnt<>0
id= SSProcess.GetSelGeoValue (cnt-1, "SSObj_ID" )
MSGBOX id
cnt=cnt-1
wend
while-wend 语句在循环中不允许结束,不如我们只想显示前5个点的ID
do-while-loop
SSProcess.PushUndoMark
SSProcess.ClearSelectConditionGroups
SSProcess.ClearSelectCondition
SSProcess.ClearSelection
SSProcess.SetSelectCondition "SSObj_Type", "==", "point"
SSProcess.SelectFilter
cnt= SSProcess.GetSelGeoCount
c=0
do while( c<5)
id= SSProcess.GetSelGeoValue (c,"SSObj_ID" )
MSGBOX id
c=c+1
loop
if
select case
Dim value '定义一个变量
value = 10 '变量赋值为10
Select Case value '判断变量的值大小,如果相等则输出变量值
Case 0 MsgBox 0
Case 1 MsgBox 1
Case 2 MsgBox 2
Case Else MsgBox "数值超出范围!" '如过都不相等,则输出”数值超出范围!”
End Select
Exit(for,sub,function,do)
数组操作
数组
定义数组,使用常数定义数组的长度,不能直接使用数值变量定义,如果要使用数值变量,则首先定义一个不带参数的数组,再redim
Dim arr(5)
Dim arrX()
Cnt=9
Redim arrX(Cnt)
SSProcess.ClearSelectConditionGroups
SSProcess.ClearSelectCondition
SSProcess.ClearSelection
SSProcess.SetSelectCondition "SSObj_Type", "==", "POINT"
SSProcess.SelectFilter
cnt= SSProcess.GetSelGeoCount
MSGBOX cnt
dim arrX()
dim arrY()
dim arrZ()
redim arrX(cnt)
redim arrY(cnt)
redim arrZ(cnt)
for i=0 to cnt-1
arrX(i)= SSProcess.GetSelGeoValue (i,"SSObj_X")
arrY(i)= SSProcess.GetSelGeoValue (i,"SSObj_Y")
arrZ(i)= SSProcess.GetSelGeoValue (i,"SSObj_Z")
next
dictionary
类似于C#里的hashtable,key value
Sub OnClick()
'添加代码将左侧2个房屋的名称设置为4#,编号分别设置为1和2,右侧两栋楼名称设置为5#,编号分别设置为1和2,以名称和编号的组合为key保存每栋楼的建筑面积,并根据key提取4#楼1层的面积
SSProcess.PushUndoMark
SSProcess.ClearSelectConditionGroups
SSProcess.ClearSelectCondition
SSProcess.ClearSelection
SSProcess.SetSelectCondition "SSObj_Code", "==", "3103013"
SSProcess.SelectFilter
cnt= SSProcess.GetSelGeoCount
dim dic
set dic=CreateObject("Scripting.Dictionary")
for i=0 to cnt-1
lh= SSProcess.GetSelGeoValue (i,"[JZMC]")
bh= SSProcess.GetSelGeoValue (i,"[JZBH]")
key=lh+bh
mj= SSProcess.GetSelGeoValue (i,"SSObj_Area")
dic.add key ,mj
next
if dic.Exists("4#1") then'判断某个key是否存在
c=dic.Item("4#1")'提取key对应的value
msgbox c
end if
msgbox dic.count'输出字典数据总数
End Sub
List(是否存在)
字符串操作
Split-拆分字符串
标准符号分割
str="1,2,3,4,5"
arrStr=split(str,",")
msgbox arrStr(4)
>5
空格分割
通常情况下,要分割的字符串之中,字符之间的空格往往不是一个且个数并不相同,比如
Str=”1 2 3 4 5”分割的话,直接用
arrStr=split(str," ")
msgbox arrStr(4)
是实现不了的,通常是先将字符之间的空格替换为1个空格,然后再分割。类似于这种替换多个空格为1个空格的通用函数,可以将其写在一个vbs文件里,方便多个程序调用,这里顺便记录一下跨文件函数引用的方法,不同于c中的include,vbs稍微复杂点,直接贴代码:
commonFunction.vbs文件里
Function myReplace(ByVal s )
'将字符串中的多个连续空白符成一个
'调用:str=myReplace(ostr)
myReplace = ""
With CreateObject("VBSCRIPT.REGEXP")
.Global = True
.IgnoreCase = True
.Pattern = "\s+" '查找空白字符,空格、制表符什么的
myReplace = .Replace(s," ")
End With
End Function
在test.vbs里引用
********************************************************************
Sub Include (strFile)
Dim fsObj : Set fsObj = CreateObject("Scripting.FileSystemObject")
Dim vbsFile : Set vbsFile = fsObj.OpenTextFile(strFile,1, TRUE)
Dim myFunctionsStr : myFunctionsStr = vbsFile.ReadAll
vbsFile.Close
Set vbsFile = Nothing
Set fsObj = Nothing
ExecuteGlobal myFunctionsStr
End Sub
*********************************************************************
Sub OnClick()
scriptLocation ="C:\Users\Administrator\Desktop\砀山\Eps2008\DeskTop\外业生产台面\Script\杨军建\commonFunction.vbs"
Include(scriptLocation)’引用文件位置
str="1 2 3 4 5"
msgbox str
str1=myReplace(str)
msgbox str1
arrStr=split(str1," ")
msgbox arrStr(4)
End Sub
Mid-提取字符串中字符
str="YangJunJian"
msgbox str
str1=mid(str,3,4)
msgbox str1
>ngJu
str="YangJunJian"
msgbox str
str1=mid(str,1,4)
msgbox str1
>Yang
Replace-字符串替换
dim txt
txt="This is a beautiful day!"
document.write(Replace(txt,"beautiful","horrible"))
输出:
This is a horrible day!
复杂情况参考正则表达式
此外还有LTrim/RTime/Trim/Len/inStr/Join
清华山维EPS二次开发VBS基础篇相关推荐
- 清华山维EPS二次开发-距离平行线
Sub OnClick() '添加代码 SSProcess.PushUndoMark SSProcess.ClearSelection SSProcess ...
- VBS基础篇 - wscript 对象
VBS基础篇 - wscript 对象 一.wscript对象 描述:提供对 Windows 脚本宿主对象模型根对象的访问. 详述:WScript 对象是 Windows 脚本宿主对象模型层次结构的根 ...
- Android 音视频开发之基础篇 使用 SurfaceView绘制一张图片
Android 音视频开发 上一篇文章:使用 imageview绘制一张图片 任务一 SurfaceView绘制一张图片 文章目录 Android 音视频开发 前言 一.surfaceview是什么? ...
- Google Map 开发笔记——基础篇(Javascript )
Google Map 开发笔记--基础篇 说明: 一.使用入门: 1.在您需要显示地图的 html 页面嵌入这段 script 2.地图 DOM 元素 3.初始化地图 二.地图画点.线.面 1.标记( ...
- apollo系列之apollo2 mcu开发(基础篇)之1.3-解析编译生成的IAR中的map文件
查看全部教程开发请点击:apollo系列汇总 查看本文全部文章请点击:apollo系列之apollo2 mcu开发(基础篇)之1.3-解析编译生成的IAR中的map文件 =============== ...
- Xamarin.Forms开发实战基础篇大学霸内部资料
Xamarin.Forms开发实战基础篇大学霸内部资料 介绍:本教程是国内第一本Xamarin.Forms开发专向教程.本教程针对Xamarin.Forms初学用户,全面细致的讲解Xmarin.For ...
- VBS基础篇 - 内置函数
VBS基础篇 - 内置函数 Date/Time 函数 函数 描述 CDate 把有效的日期和时间表达式转换为日期(Date)类型. Date 返回当前的系统日期. DateAdd 返回已添加指定时间间 ...
- VBS基础篇 - 常量
VBS基础篇 - 常量 常量:指的是在程序运行过程中其值保持不变的量,它用来保存固定不变的数值,字符串等常数 . 常量的定义:在vbscript中使用使用 Const 指令可以创建名称具有一定含义的字 ...
- VBS基础篇 - Dictionary对象
VBS基础篇 - Dictionary对象 Dictionary是存储数据键和项目对的对象,其主要属性有Count.Item.Key,主要方法有Add.Exists.Items.Keys.Remove ...
- 小程序开发入门基础篇-张代浩-专题视频课程
小程序开发入门基础篇-1995人已学习 课程介绍 采用小程序wepy框架,初级讲解如何搭建小程序的开发环境,创建工程,语法介绍.开发调试等,课程采用实战代码案例作为教材,通俗易懂,简单 ...
最新文章
- 【直播资料下载】Python第五讲——关于爬虫如何做js逆向的思路
- dbnull和null_NULL和DBNull的区别分析
- 教你学会Sql中 ROW_NUMBER的用法
- 发现Java程序中的Bug
- 工作379-回调日期补0操作
- 关于redis的持久化
- 13-Java和Scala中的Future
- ++代码实现 感知机的原理_决策树ID3原理及R语言python代码实现(西瓜书)
- 页面查询条件选框被隐藏的问题
- 面试了一个6年的Java,竟然什么都不会!
- 汇编程序:成绩分段统计
- cloudera manager安装使用
- C#模拟GetPOST提交表单(一)--HttpWebRequest以及HttpWebResponse --WebClient,restsharp
- 经典语录大全微信小程序源码下载多种分类语录多流量主模式
- 设置页眉为计算机网络,如何设置页眉从指定页开始
- 蓝桥杯练习题 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
- 搭建Jpress博客系统,超详细(保姆及教学)
- 关于travis scott的网名_小仙女可爱单纯的网名
- 搞一下 车载以太网实战 | 01 车载以太网帧结构详解
- 计算机网络最新复习【太原理工大学】
热门文章
- vb从入门到精通_干货|让你 ArcGIS Engine从入门到精通的22个视频
- Shell 编程入门到精通
- HTML基础知识点(二)
- 快速启动无法识别U盘启动盘。bios无法识别U盘启动盘
- 解决nginx服务器显示txt文本为乱码的问题
- php免登录发帖源码,企业版PHP自动发卡源码免授权优化版源码
- 《21天学通Java(第7版)》——VC程序员的学习笔记2
- 一道简单的CTF社工题思路
- android热敏打印机图片乱码,小票打印机常见故障及解决方法,小票打印机打印乱码怎么办...
- RF接口测试设计时需要考虑的事(robotframework框架)