搬家第42天 您所在的位置:网站首页 wincc报表控件为什么只有7行 搬家第42天

搬家第42天

2024-07-18 03:07| 来源: 网络整理| 查看: 265

忽然发现这一篇是去年3月11日写的,一年了啊。

今天在一个西门子的群上,有人问了wincc操作数据库的问题,我以前自己练习过,群里面其他热心的网友也回答得很好。后来我扩展性的想了一些应用场景,这些场景实现编程需要一些基础功能。这一片博客我先不说是假定的什么样的场景,先练习基础功能:创建一个文本文件,写入指定的内容,或者读取一个文本文件。 先练习创建文件和写内容吧。新建一个wincc项目,添加一个画面main,上面放一个按钮,用于创建文件和写入内容。我假定文件的路径在wincc项目文件夹下,名字叫做“测试项目.txt”,按钮的鼠标点击事件写入一下vbs脚本 Sub OnClick(ByVal Item)              '这是操作文件的练习,为后面的练习做铺垫,目的是查找当前项目文件夹下'是否存在某个文件,如果有,就先删除它,然后再创建它,并且写入一些内容Dim prjpath,fname,fso,objfileSet fso = CreateObject("scripting.FileSystemObject")prjpath=HMIRuntime.ActiveProject.Pathfname=prjpath & "\测试文件.txt"Set objfile=fso.CreateTextFile(fname,True)'覆盖文件objfile.writeline("朝辞白帝彩云间")objfile.writeline("千里江陵一日还")objfile.writeline("两岸猿声啼不住")objfile.writeline("轻舟已过万重山")objfile.close()Set objfile=NothingEnd Sub 这里解释一下,HMIRuntime.ActiveProject.Path获取项目的绝对路径,因为项目路径不固定,项目可能移动到其他路径,所以通过系统函数获取。 fso.CreateTextFile(fname,True)创建一个文本文件,这里的文本文件就包括了txt,也可以是ini文件等,参数true的意思是如果已经存在,就直接覆盖,不提示。 .writeline就是写入一行内容。这里写了四行内容。 .close就是关闭对象,最后让对象=nothing释放对象。 保存运行,点击按钮就能看到一个写了四句古诗内容的txt文件,如果对这个文件做修改,关闭。再次点击按钮,打开文件会发现刚才的修改无效,因为修改后的文件在.CreateTextFile时候被覆盖了。 扩展一下,如果要判断文件是否存在,可以使用 fso.FileExists(fname) 如果要删除一个存在的文件,而且不用提示,可以用 fso.DeleteFile(fname)   接下来实现读取文本文件内容。 添加一个按钮和一个文本框,文本框的名字叫做txtbox,按钮的鼠标点击事件添加以下脚本: Sub OnClick(ByVal Item)  Dim fso,prjpath,fname,objfile,txtboxSet txtbox=ScreenItems("txtbox")txtbox.Text=""Set fso = CreateObject("scripting.FileSystemObject")prjpath=HMIRuntime.ActiveProject.Pathfname=prjpath & "\测试文件.txt"If fso.FileExists(fname) Then Set objfile=fso.OpenTextFile(fname,1,False)While Not objfile.atEndofLine txtbox.Text=txtbox.Text & objfile.readlineWendEnd Ifobjfile.close()Set objfile=NothingEnd Sub 上面的程序中.OpenTextFile表示打开一个文本文件,参数true表示只读打开,第三个参数表示文件不存在的话,是否创建,这里不创建。 .atEndofLine表示是否到了文件末尾,.readline表示读一行。 其他的操作还有.SkipLine表示跳到下一行开始。.Skip(5)表示向后移动5个字符。.Read(5)表示读5个字符. .ReadAll() 表示读取所有内容,前面的练习也可以使用这个命令,只不过为了展示.atEndofLine才一行一行的读取。      

补充一个内容:写入文本文件可能需要做字符串替换操作,函数是replace,语法是

replace(string,find,replacewith[,start[,count[,compare]]])

string 需要被搜索的字符串

find 将被替换掉的字符串部分

replacewith 用于替换的字符串

start可选项,从第几个字符开始查找替换,默认是1

count 可选项,替换多少次,默认是-1,全部都要替换

compare 可选项,规定所使用的字符串比较类型。默认是 0

 

compare有两种类型:

vbBinaryCompare 值为0 ,执行二进制比较

vbTextCompare。值为1,执行文本比较。

 

详见https://www.w3school.com.cn/vbscript/func_replace.asp



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有