最近有点小忙,各种事情,心情也不是很好,烦心事特别多,因此最近更新的比较慢。

不敢再松懈了,今天正好有点时间,就继续看了一下VBScript中关于对象的一些内容。

一、对象

  OOP是编程规模发展到一定程度后才出现的,因为不但操作系统的程序规模越来越大,而且应用

程序的规模也是日益增长。

  代码重用在OOP出现后又是进一步提升。

  什么是对象呢?  按照以前Unix的套路:一切皆文件。  在这里也可以说一切皆对象。计算机本身

也可以看做一个对象。

  对象具有特征和功能,特征表现为属性,功能表现为方法。

  具体不啰嗦,可以看看计算机概论一类的书。

二、代码

  

'对象

'对象的特点
'从本质上来说对象是内存中的一块内存区域,这块区域和变量一样
'但是对象和变量又存在差距。对象必须利用专门的语句进行关联后才
'能引用,且在使用完毕后必须用专门的语句进行销毁才能保证占用的
'内存被回收,否则就会造成“内存泄露” Option Explicit '创建对象
Dim objDict
'1、通过CreateObject函数创建对象,这个函数需要传递一个必须的参数
' 这个参数指定要创建的对象的类型。 这个参数在系统中叫做
' progID, 如下面的"Scripting.Dictionary"就是ProgID
'2、通过CreateObject函数创建的对象,只是存储在内存中,我们还不能直
' 接进行操作,这个函数会返回一个对象的引用,如果不将这个返回的引用
' 与某个变量联系起来就无法访问对象。
'3、通过set语句将创建的对象与变量联系起来,这个过程也叫实例化对象。
' 如下所示
Set objDict = CreateObject("Scripting.Dictionary")
MsgBox objDict.Count '4、如果对象使用完毕,那么必须对其进行撤销,否则对象占用的内存就不会
' 回收,这样就会造成内存泄露,因此必须进行撤销。通过下面的语句
' 撤销对象。 当然如果脚本小那么在脚本结束运行的时候,系统会自动撤销
' 对象。 这个意思是说对象在超出作用域的范围后会自动撤销。
Set objDict =Nothing If objDict Is Nothing Then
MsgBox "对象objDict已经撤销"
End If '脚本运行时对象
'脚本运行时对象必须通过其他对象创建才能访问。最典型的就是文件系统对象
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject") Dim objFolder
'下面的语句必须已经创建了文件夹:D:\01_vbs, 否则会出错
Set objFolder = objFSO.GetFolder("D:\01_vbs") '对象的访问
'对象具有属性和方法, 属性表示对象的一些特征
'方法用来改变属性的特征, 对象的属性和方法通过下面的语法格式进行访问
' 对象.属性
' 对象.方法
MsgBox objFolder.Drive '访问创建的objfolder对象的驱动器属性
MsgBox objFolder.Name '访问创建的objfolder对象的名称属性
MsgBox objFolder.Path '访问创建的objfolder对象的路径属性 '访问对象的方法,通过文件夹对象的CreateTextFile方法创建文件
objFolder.CreateTextFile "对象新建的文件.txt",True,False '我们可以查看文件夹对象下的文件,这个需要通过集合来访问
'文件夹对象下有一个文件集合,我们通过传递集合下的元素的名称来访问集合
'同样文件也是一个对象,因此也需要进行实例化
'如下所示
Dim objFile
Set objFile = objFolder.Files("对象新建的文件.txt") '同样通过下面的方法访问对象属性
MsgBox objFile.Name & "创建的时间为:" & objFile.DateCreated '访问对象的特殊语句 With语句
'因为对象的属性和方法均具有一个共同的特点:归属于同一个对象
'因此为方便,vbs提供了一种简便的访问方法就是
With objFile
MsgBox "Drive is:" & .Drive & vbNewLine &_
"Path is:" & .Path & vbNewLine
End With

三、WinCC中的对象模型

  要理解WinCC中的VBS脚本,大体有前面几篇随笔的内容和本篇随笔的内容基本够用了,需要

补充的是属于WinCC特有的VBS对象模型。这里暂时不多说,只用一张图

  WinCC中VBS的对象模型。

四、小结

  对于WinCC的VBS脚本,大体需要的关于VBS的基本知识已经描述完毕,其他的高级功能需要

进一步学习的可以参考微软的出版物《vbs脚本参考》

  从我本身这些年的WinCC的使用经验来看,前面描述的基本够用,一般不会用到太复杂的功能。

后面在描述一些关于文件系统对象的知识后就全面的描述WinCC的相关内容。

--------------------------------------------------------------分割线---------------------------------------------------------------

1、文章均为个人原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/

2、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料

3、如果您觉得文章对您有帮助可转至页面上半部分打赏,或移步:打赏 

4、或者在页面右下角点推荐哟!!!

--------------------------------------------------------------分割线---------------------------------------------------------------

工控随笔_21_西门子_WinCC的VBS脚本_10_对象_01的更多相关文章

  1. 工控随笔_13_西门子_WinCC的VBS脚本_04_变量类型之二

    上一个随笔说了一些关于vbs变量类型的内容,这一篇我们继续说说变量类型相关的内容. 一.NULL补充内容 '需要注意的是,NULL不能简单通过 = 来进行比较,而必须通过 'IsNull函数来实现 ' ...

  2. 工控随笔_20_西门子_WinCC的VBS脚本_09_常量和流程控制_02

    vbs不但提供了分支结构,还提供了丰富的循环形式.一共有3种循环: 1.for循环 2.do...loop循环 3.while循环 各种循环有各自的特点,在使用的时候可以进行转换. 前面已经描述过Fo ...

  3. 工控随笔_19_西门子_WinCC的VBS脚本_08_常量和流程控制_01

    在编程的过程中,有时候我们会使用一些固定的值,例如圆周率,或者某个人的生日,或者家庭住址等等, 这些信息对于一个对象来说一旦确定就不会改变,因此我们在编程的时候也不希望这些信息会改变,在VBS里面 也 ...

  4. 工控随笔_18_西门子_WinCC的VBS脚本_07_变量作用域和传值、传址

    在vbs脚本中也存在和其他编程语言一样的概念,那就是变量的作用域,变量的作用域决 定在什么范围内可以访问. 同样的在vbs脚本中对于变量也有一个生命周期, 变量的生命周期决定了变量的存续时间 这个主要 ...

  5. 工控随笔_17_西门子_WinCC的VBS脚本_06_过程和函数

    和其他语言一样,vbs提供了过程和函数机制,通过函数和过程可以优化代码结构和实现代码复用, 减少代码的编写量. 一.代码 具体不再多说,看实例代码. ' vbs的函数和过程 '1.过程式编程是一大编程 ...

  6. 工控随笔_15_西门子_WinCC的VBS脚本_05_变量类型之三_VBS数组

    数组是一种复杂数据类型,不但有数组本身的数据类型: 数组,还有数组元素中存储的数据的类型. 一.vbs中的数组类型 在VBS中提供了两种数组类型,一种是固定数组,一种是动态数组. 1.固定数组 就是在 ...

  7. 工控随笔_12_西门子_WinCC的VBS脚本_03_变量类型

    说到编程语言,总是绕不开数据类型,因为数据类型决定了数据可以进行什么样的操作.同时数据类型 从广义上来说是一种数据结构,在过程式编程的过程中,曾经有过这样一种说法: 程序 = 数据结构 + 算法 可见 ...

  8. 工控随笔_11_西门子_WinCC的VBS脚本_02_运算符

    VBS脚本做为编程语言,提供了很多的运算符,通过这些运算符,可以实现不同的操作.运算符具有不同的类型 不同的运算符之间具有运算优先级. 一.运算符的分类 大体分为以下几类: 1.赋值运算符 2.算术运 ...

  9. 工控随笔_07_西门子_WinCC利用命令行实现操作log日志

    在WinCC中可以通过报警纪录来实现操作员纪录,这个需要WinCC的消息系统进行组态和配置. 利用消息系统进行实现上诉功能不但复杂而且时间久啦也不方便查询.那么有没有一种简单的方法来 实现操作员纪录呢 ...

随机推荐

  1. Fiddler抓不到https的解决办法

    这个问题可能是证书的问题,操作步骤如下:  Step 1:打开系统证书管理器certmgr.msc,点击操作–查找证书,然后输入fiddler查找所有相关证书,将查找出来的结果全部删除: Step 2 ...

  2. ansible小计

    一.忽略hosts,只在一台机器上执行: /usr/local/bin/ansible-playbook /app/ansiblecfg/ztr/ent_extract.yml --limit=10. ...

  3. Windows MySQL测试数据库employees的导入

    一: 首先下载employees测试数据库 https://launchpad.net/test-db/ 二:用文本编辑器打开其中的employees.sql文件,将第38行的set storage_ ...

  4. django项目中购物车的实现

    对于做项目而言,最重要的是分析清楚自己负责模块的思路,确定思路后,把每一步实现的步骤确定后,根据步骤,去实现代码,测试. 购物车的逻辑:    登录用户可以添加购物车,未登陆用户页可以添加到购物车   ...

  5. vue.js 视频教程

    0.1智能社vuejs(1-11章全套) 0.2英文版learing vuejs 0.3Vue.js实战小米阅读开发 0.4走进Vue.js2.0 0.5Vuejs教程45节课 0.6Vue.js+N ...

  6. flashback_scn导出

    1.应用场景2.oracle实现该技术的原理理论,及限制3.实操及与scn时间相关的函数查询 一.flashback_scn导出1) OGG同步,对表的数据进行同步,第一次可以完全导出,中途如果由于某 ...

  7. vue插件

    Vue.js提供了插件机制,可以在全局添加一些功能.它们可以简单到几个方法.属性,也可以很复杂,比如一整套组件库. 注册插件需要一个公开的方法install,它的第一个参数是Vue构造器,第二个参数是 ...

  8. 多线程系列之自己实现一个 lock 锁

    我们面试中经常会被问到多线程相关知识,这一块内容往浅了说大家都会,但是一问到底层实现原理,我们往往就一脸懵逼. 这段时间准备好好学习多线程,接下来会写一系列关于多线程的知识. 我们首先要了解线程,百度 ...

  9. hdu 1394 逆序对(nlgn+o(n) )

    Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s) ...

  10. git 提交本地工程

    1> 进入github 建立repository 2> 得到git master 地址 3> 得到进入本地工程目录 右键->git bash here 4>执行 以下命令 ...