程序控制

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基础篇相关推荐

  1. 清华山维EPS二次开发-距离平行线

     Sub OnClick() '添加代码       SSProcess.PushUndoMark        SSProcess.ClearSelection        SSProcess ...

  2. VBS基础篇 - wscript 对象

    VBS基础篇 - wscript 对象 一.wscript对象 描述:提供对 Windows 脚本宿主对象模型根对象的访问. 详述:WScript 对象是 Windows 脚本宿主对象模型层次结构的根 ...

  3. Android 音视频开发之基础篇 使用 SurfaceView绘制一张图片

    Android 音视频开发 上一篇文章:使用 imageview绘制一张图片 任务一 SurfaceView绘制一张图片 文章目录 Android 音视频开发 前言 一.surfaceview是什么? ...

  4. Google Map 开发笔记——基础篇(Javascript )

    Google Map 开发笔记--基础篇 说明: 一.使用入门: 1.在您需要显示地图的 html 页面嵌入这段 script 2.地图 DOM 元素 3.初始化地图 二.地图画点.线.面 1.标记( ...

  5. apollo系列之apollo2 mcu开发(基础篇)之1.3-解析编译生成的IAR中的map文件

    查看全部教程开发请点击:apollo系列汇总 查看本文全部文章请点击:apollo系列之apollo2 mcu开发(基础篇)之1.3-解析编译生成的IAR中的map文件 =============== ...

  6. Xamarin.Forms开发实战基础篇大学霸内部资料

    Xamarin.Forms开发实战基础篇大学霸内部资料 介绍:本教程是国内第一本Xamarin.Forms开发专向教程.本教程针对Xamarin.Forms初学用户,全面细致的讲解Xmarin.For ...

  7. VBS基础篇 - 内置函数

    VBS基础篇 - 内置函数 Date/Time 函数 函数 描述 CDate 把有效的日期和时间表达式转换为日期(Date)类型. Date 返回当前的系统日期. DateAdd 返回已添加指定时间间 ...

  8. VBS基础篇 - 常量

    VBS基础篇 - 常量 常量:指的是在程序运行过程中其值保持不变的量,它用来保存固定不变的数值,字符串等常数 . 常量的定义:在vbscript中使用使用 Const 指令可以创建名称具有一定含义的字 ...

  9. VBS基础篇 - Dictionary对象

    VBS基础篇 - Dictionary对象 Dictionary是存储数据键和项目对的对象,其主要属性有Count.Item.Key,主要方法有Add.Exists.Items.Keys.Remove ...

  10. 小程序开发入门基础篇-张代浩-专题视频课程

    小程序开发入门基础篇-1995人已学习 课程介绍         采用小程序wepy框架,初级讲解如何搭建小程序的开发环境,创建工程,语法介绍.开发调试等,课程采用实战代码案例作为教材,通俗易懂,简单 ...

最新文章

  1. 【直播资料下载】Python第五讲——关于爬虫如何做js逆向的思路
  2. dbnull和null_NULL和DBNull的区别分析
  3. 教你学会Sql中 ROW_NUMBER的用法
  4. 发现Java程序中的Bug
  5. 工作379-回调日期补0操作
  6. 关于redis的持久化
  7. 13-Java和Scala中的Future
  8. ++代码实现 感知机的原理_决策树ID3原理及R语言python代码实现(西瓜书)
  9. 页面查询条件选框被隐藏的问题
  10. 面试了一个6年的Java,竟然什么都不会!
  11. 汇编程序:成绩分段统计
  12. cloudera manager安装使用
  13. C#模拟GetPOST提交表单(一)--HttpWebRequest以及HttpWebResponse --WebClient,restsharp
  14. 经典语录大全微信小程序源码下载多种分类语录多流量主模式
  15. 设置页眉为计算机网络,如何设置页眉从指定页开始
  16. 蓝桥杯练习题 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
  17. 搭建Jpress博客系统,超详细(保姆及教学)
  18. 关于travis scott的网名_小仙女可爱单纯的网名
  19. 搞一下 车载以太网实战 | 01 车载以太网帧结构详解
  20. 计算机网络最新复习【太原理工大学】

热门文章

  1. vb从入门到精通_干货|让你 ArcGIS Engine从入门到精通的22个视频
  2. Shell 编程入门到精通
  3. HTML基础知识点(二)
  4. 快速启动无法识别U盘启动盘。bios无法识别U盘启动盘
  5. 解决nginx服务器显示txt文本为乱码的问题
  6. php免登录发帖源码,企业版PHP自动发卡源码免授权优化版源码
  7. 《21天学通Java(第7版)》——VC程序员的学习笔记2
  8. 一道简单的CTF社工题思路
  9. android热敏打印机图片乱码,小票打印机常见故障及解决方法,小票打印机打印乱码怎么办...
  10. RF接口测试设计时需要考虑的事(robotframework框架)