wincc vbscript Split 函数用法

合集下载

wincc中使用vbs的常用函数

wincc中使用vbs的常用函数

wincc中使用vbs的常用函数1.函数array()功能:创建一个数组变量格式:array(list)参数:list为数组变量中的每个数值列,中间用逗号间隔例子:<%i=array(“1”,”2”,”3”)%>结果:i被赋予为数组2.函数Cint()功能:将一表达式/其它类型的变量转换成整数类型(int)格式:Cint(expression)参数:expression是任何有效的表达式/其它类型的变量例子:<%f=”234”response.write cINT(f)+2%>结果:236函数Cint()将字符”234”转换成整数234.如果表达式为空,或者无效时,返回值为0;3.函数:Creatobject()功能:创建及返回一个ActiveX对象.格式:Creatobject(obname)参数bname是对象的名称例子:<%Set con=Server.CreateObject(“ADODB.Connection”)%>结果:4.函数Cstr()功能:将一表达式/其它类型的变量转换成字符类型(string)格式:Cstr(expression)参数:expression是任何有效的表达式/其它类型的变量例子:<%s=3+2response.write”The result is:”&cStr(s)%>结果:函数Cstr()将整数5转换成字符”5”.5.函数Date()功能:返回当前系统(server端)的日期格式:Date()参数:无例子<%date()%>结果:05/10/006.函数Dateadd()功能:计算某个指定的时间和格式:dateadd(timeinterval,number,date)参数:timeinterval是时间单位(月,日..);number是时间间隔值,date是时间始点.例子:<%currentDate=#8/4/99#newDate=DateAdd(“m”,3,currentDate)response.write newDate%><%currentDate=#12:34:45PM#newDate=DateAdd(“h”,3,currentDate)response.write newDate%>结果:11/4/993:34:45PM其中“m”=”month”;“d”=”day”;如果是currentDate格式,则,“h”=”hour”;“s”=”second”;7.函数Datediff()功能:计算某量个指定的时间差格式:datediff(timeinterval,date1,date2[,firstdayofweek[,firstdayofyear]])参数:timeinterval是时间单位;date1,date2是有效的日期表达式,firstdayofweek,firstdayofyear是任意选项.例子:<%fromDate=#8/4/99#toDate=#1/1/2000#response.write”There are”&_DateDiff(“d”,fromDate,toDate)&_“days to millenium from8/4/99.”%>结果:There are150days to millenium from8/4/99.8.函数day()功能:返回一个整数值,对应于某月的某日格式:day(date)参数:date是一个有效的日期表达式;例子<%=date(#8/4/99#)%>结果:49.函数formatcurrency()功能:转换成货币格式格式:formatcurrency(expression[,digit[,leadingdigit[,paren[,groupdigit]]]])参数:expression是有效的数字表达式;digit表示小数点后的位数;leadingdigit,paren,groupdigit 是任意选项.例子<%=FormatCurrency(34.3456)%>结果34.3510.函数Formatdatetime()功能:格式化日期表达式/变量格式:formatdatetime(date[,nameformat])参数:date为有效的日期表达式/变量;nameformat是指定的日期格式常量名称.例子<%=formatdatetime(“08/04/99”,vblongdate)%>结果:Wednesday,August04,1999说明:--------------------------------------------------------------------------------描述返回表达式,此表达式已被格式化为日期或时间。

WinCC flexible如何使用VBScript方法

WinCC flexible如何使用VBScript方法

如何使用VBScript WinCC Flexible提纲如何创建报警系统如何使用VBScript如何配方概述组态脚本调试如何配方如何创建报警系统如何使用VBScriptWinCC Flexible如何使用VBScript概述系统函数及其使用脚本及其使用运行脚本的基本信息使用函数列表如何配方如何创建报警系统如何使用VBScriptWinCC Flexible——运行脚本的基本信息WinCC flexible 提供了预定义的系统函数提供了预定义的系统函数,,以用于常规的组态任务任务。

可以用它们在运行系统中完成许多任务可以用它们在运行系统中完成许多任务,,而无需编程技巧。

当然也可以用运行脚本来解决更复杂的问题当然也可以用运行脚本来解决更复杂的问题。

运行脚本具有编程接口编程接口,,可以在运行时访问部分项目数据可以在运行时访问部分项目数据。

运行脚本的使用是针对具有Visual Basic (VB)和Visual Basic Script (VBS)知识的项目设计者的项目设计者的。

概述系统函数的使用如何使用VBScript如何配方如何创建报警系统如何使用VBScriptWinCC Flexible——运行脚本的基本信息概述运行脚本的使用可以从OP 270/TP 270获得运行脚本获得运行脚本,,因此也可从WinCC flexible (标准版)获得获得。

它支持VBScript 编程语言编程语言。

使用运行脚本允许灵活地实现组态允许灵活地实现组态。

在运行时需要额外功能时可以创建运行脚本,例如例如::数值转换可以在不同度量单位之间使用脚本来转换数值可以在不同度量单位之间使用脚本来转换数值,,例如温度例如温度。

生产过程的自动化脚本可以通过将生产数据传送至PLC 控制生产过程控制生产过程。

如果需要,可以使用返回值检查状态和启动相应的措施可以使用返回值检查状态和启动相应的措施。

可以在脚本中保存自己的VB 脚本代码脚本代码。

vbscript Split函数用法详解(字符串转数组函数)

vbscript Split函数用法详解(字符串转数组函数)
vbscript Split函数用法
用法:传回数组= Split(原始字串,要找的字串,拆成几个数组)
描述
返回一个下标从零开始的一维数组,它包含指定数目的子字符串。
语法
Split(expression[, delimiter[, count[, compare]]])
例如用逗号(,)分割字符串为数组
End Sub
输出结果:"12345"、"12345"、"12345"
代码如下:
'这个VB程序是让求10个学生的考试成绩的平均分..
'比如95 85 70 75 80 90 60 65 95 100
'这10个人的分数的平均分...
Private Sub Form_Load()
Dim A$(), i As Long, intB As String, s As Integer
参数的设置
设置值
compare参数的设置值:
常数值描述
vbUseCompareOption -1用Option Compare语句中的设置值执行比较。
vbBinaryCompare 0执行二进制比较。
vbTextCompare 1执行文字比较。
vbDatabaseCompare 2仅用于Microsoft Access。基于您的数据库的信息执行比较。
End Sub 
split命令用途
将文件分割成几段。
语法
要将一个文件分割成包含指定行数的多个文件
split [ -l LineCount ] [ -a SuffixLength ] [ File [ Prefix ] ]

Wincc的VBS脚本使用

Wincc的VBS脚本使用

变量读写:Write战Read要领的语法:之阳早格格创做读:1 Dim objTag Set objTag=HMIRunTime.Tags("变量名")2 HMIRunTime.Tags("变量名").Read写:1 Dim objTag Set objTag=HMIRunTime.Tags("变量名")objTag.Write 1 '背变量写进数值12 HMIRunTime.Tags("变量名").Write 1中间变量的值写进:Dim objTag,valSet objTag=HMIRunTime.Tags("变量名")objTag.Readval=objTag.Value '中间变量val存搁了变量的值VBS谈话使用要领概括:VBScript的齐称是:Microsoft Visual Basic Script Editon.(微硬公司可视化BASIC足原版).正如其字里所透露的疑息, VBS(VBScript的进一步简写)是鉴于Visual Basic的足原谈话.尔进一步阐明一下, Microsoft Visual Basic是微硬公司出品的一套可视化编程工具, 语鉴于Basic. 足原谈话, 便是不编译成二进造文献, 曲交由宿主(host)阐明源代码并真止, 简朴面道便是您写的步调不需要编译成.exe, 而是曲交给用户收收.vbs的源步调, 用户便能真止了.一、初教: 1) 注释(以REM或者'启头)止正在步调中不起效率, 但是能让他人更简单读懂您的步调. 2) 变量佳像一个盒子, 或者一个代号, 不妨代表您念代表的物品. 变量赋值使用"="3)以""包裹起去的字符称之为"字符串"4)函数像一个"乌箱", 有参数战返回值, 用"="左边的变量不妨交住返回值5) Inputbox函数弹出一个输进对于话框,Msgbox则用于输出例:REM 输进并回隐您的名字'使用InputBox战Msgbox函数Dim name,msgmsg="请输进您的名字:"name=Inputbox(msg,"称呼")Msgbox(name)上例中,Dim用去声明一个变量, 正在VBS中, 变量典型本去不是那么要害, 便是道VBS中您不必思量name储藏的是一个整数仍旧一个小数(教名喊"浮面数"), 也不必思量是不是字符串(一串字符, 比圆:"Hello World"), VBS会自动助您搞定. 所以第三止语句不妨简略, 效验不会变.常量:要领是:const 常量名=常量值.比圆: const PI=3.1415926 const NAME="影象碎片"二、进阶数据典型变换:1)Dim a,b,ca=inputbox("a是:","输进半径")b=Inputbox("b是:","输进半径")c=a*2+b*2Msgbox(c)那个输进1、2时是62)Dim a,b,ca=inputbox("a是:","输进半径")b=Inputbox("b是:","输进半径")c=(a+b)*2Msgbox(c)那个输进1、2时是24为什么会纷歧样呢? 正在数教上c=(a+b)*2 战c=a*2+b*2是等价的, 正在VBS中也是如许. 问题出正在"+"上, 正在VBS 中, +不但是仅是加号的意义还表示把二个字符勾通交起去, 比圆"Hello"+"World"="HelloWorld" have you understood? 您还记得InoutBox函数的返回值吗? 是字符串! 那便瞅出问题了吧, 正在编程中"1"不等于(<>)1, "1"是一个字符, 而1是一个数, 所以a,b皆是字符串变量, "1"+"2"="12", 那便佳像咱们小时跟伙陪启玩笑问他们1+1=?一般, 咱们经常笑着道"错啦,该当是11".但是为什么, a不妨*2却不爆收过失呢? 那时VBS比较智能的一个表示, 如果那个字符串的真质是一个数且对于他举止数教运算, 则把字符串强造变换成数介进运算如果字符串代表一个数, 但是不介进数教运算, 而是介进字符串运算(合并)则当做字符串处理, 所以您瞅到a+b=12, 那时间a+b的截止是一个字符串, 当它要乘以2的时间便被强造变换成了数字12, 那样尔便得到了截止24怎么建改那个步调呢? 咱们需要用到另一个内建的函数:int, int函数的功能是将输进值转成整数值, 咱们那样建改: c=(int(a)+int(b))*2四、循环结构for....nextdim i,jfor i=1 to 9for i=1 to 9str=str & i * j & " " '&是战并字符串的标记next '每个next对于应一个for1)do..loop战exit do的用法2) while当表白式true的时间真止循环体,until反之3) for...next是计数循环, 屡屡真止计数器递加4) 嵌套循环的效率战写法 4.5) &用于连交字符串5) vbCrLf相称于键盘上的回车键五、数组定义:dim 数组名(元素数量), 那里大家要注意一面, 那里定义的元素数量经常比您要的要少一个, 果为一个数组的起面是0号数据而不是1, 所以大家一定要留神: 您需要10个数据, 便定义"9".六、函数结构:funciton 函数名(参数1, 参数2...参数n) '列表不妨是空的, 但是括号不克不迭简略, 参数之间用","分隔...exit funciton '中断函数, 不是必须的end function偶尔间咱们本去不需要返回什么值, 那个时间咱们不妨使用一种称之为"子步调"的结构. 子步调或者称之为历程取函数的不共便正在于:1) 不返回值, 2) 使用sub闭键字定义, 3) 通过Call 调用.具个例子:dim ynamename=inputbox("请输进您的名字:")call who(yname)subwho(cname)msgbox("您佳" & cname)msgbox("感动您阅读尔的课程")msgbox("那是前提部分的末尾一课")end sub按钮翻转步调Sub OnClick(Byval Item)Dim tag1Set tag1=HMIRuntime.Tags("Q02") tag1.readIf tag1.Value=1Then tag1.write 0Elsetag1.Write 1按按钮删数步调:Dim tag1Set tag1=HMIRuntime.Tags("转动1") tag1.Value=tag1.Value + 1tag1.WriteEnd IfEnd Sub按下按钮一个脉冲触收:Dim mytime,bsSet bs=HMIRuntime.Tags("b")bs.Write(1)mytime = Timer+2Do Until Timer=mytimeLoopbs.Write(0)循环步调While t = 1Dim mytime,bsSet bs=HMIRuntime.Tags("b转动") bs.Write(1)mytimE = Timer +2DO until TimEr=mytimeloopbs.Write(0)Wend。

wincc中使用vbs的常用函数

wincc中使用vbs的常用函数
参数: expression 是有效的数字表达式;digit表示小数点后的位数;leadingdigit,paren,groupdigit是任意选项.
例子<%=FormatCurrency(34.3456)%>
结果34.35
10.函数Formatdatetime()
功能:格式化日期表达式/变量
其中
“m” = ”month”;
“d” = ”day”;
如果是currentDate 格式,则,
“h” = ”hour”;
“s” = ”second”;
7.函数Datediff()
功能:计算某量个指定的时间差
格式: datediff(timeinterval,date1,date2[,firstdayofweek[,firstdayofyear]])
格式: isobject(expression)
参数: expression 是任意的变量.
例子:
<%
set con =server.creatobject(“adodb.connection”)
response.write isobject(con)
%>
结果: true
格式:month(time)
参数:time是日期变量
例子<% =month(#08/09/99) %>
结果:9
[color=#1E90FF]21.函数monthname()[/color]
功能:返回月份的字符串(名称).
格式:Monthname(date [,abb])
格式: dateadd(timeinterval,number,date)

WinCC-VBscript常用函数

WinCC-VBscript常用函数

WinCC VBscript常用函数1.数值型函数:abs(num): 返回绝对值sgn(num): num>0 1; num=0 0; num<0 -1;判断数值正负hex(num): 返回十六进制值直接表示:&Hxx 最大8位oct(num): 返回八进制值直接表示:&Oxx 最大8位sqr(num): 返回平方根 num>0int(num): 取整 int(99.8)=99; int(-99.2)=100fix(num): 取整 fix(99.8)=99; fix(-99.2)=99round(num,n): 四舍五入取小数位 round(3.14159,3)=3.142 中点数值四舍五入为近偶取整 round(3.25,1)=3.2log(num): 取以e为底的对数 num>0exp(n): 取e的n次幂通常用 num^nsin(num): 三角函数,以弧度为值计算 (角度*Pai)/180=弧度 con(num);tan(num); atn(num)2.字符串函数:len(str):计算字符串长度中文字符长度也计为一!mid(str,起始字符,[读取长度]):截取字符串中间子字符串left(str,nlen):从左边起截取nlen长度子字符串right(str,nlen):从右边起截取nlen长度子字符串Lcase(str):字符串转成小写Ucase(str):字符串转成大写trim(str):去除字符串两端空格Ltrim(str):去除字符串左侧空格Rtrim(str):去除字符串右侧空格replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串注:默认值:起始字符 1;替代次数不限;比较方法区分大小写(0)InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串可选参数需同时选返回起始位置InStrRev(str,查找字符串[,起始字符][,比较方法]):反向检测是否包含子字符串返回起始位置space(n):构造n个空格的字符串string(n,str):构造由n个str第一个字符组成的字符串StrReverse(str):反转字符串split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组可选参数需同时选3.数据类型转换函数:Cint(str):转换正数 True -1;False 0;日期距离1899/12/31天数;时间上午段 0;下午段 1;Cstr(str):日期输出格式 yyyy/mm/dd;时间输出格式 Am/Pm hh:mm:ss Clng(str):与Cin()类似Cbool(num):num不为零 True;反之 FalseCdate(str):转换日期格式 0:#Am 12:00:00#;正数距离1899/12/31天数的日期;浮点数日期+小数时间Cbyte(num):num<255 转换为字节Csng(str):转换为单精度数值Cdbl(str):转换为双精度数值Ccur(str):转换为现金格式4.时间函数:date:取系统当前日期time:取系统当前时间now:取系统当前时间及日期值 Datetime类型timer:取当前时间距离零点秒值,计时器,可计算时间差DateAdd(间隔单位,间隔值,日期):推算相邻日期DateDiff(间隔单位,日期一,日期二):计算时间差日期二-日期一Datepart(间隔单位,日期):计算日期的间隔单位值Dateserial(date):输出日期值(按序列计算)Timeserial(time):输出时间值(按序列计算)DateValue(datetime):取出字符串中日期值Timevalue(datetime):取出字符串中时间值weekday(date):计算星期几MonthName(date):输出月分名year(datetime):截取年份month(datetime):截取月份day(datetime):截取日hour(datetime):截取小时minute(datetime):截取分钟second(datetime):截取秒5.其它函数:Array(unit,..):动态生成数组Asc(str):输出字符串第一个字符的ASCII码Chr(asc):转换ASCII为字符 Enter:Chr(13)&Chr(10)Filter(数组名称,关键字符串,[,包含][,比较方法]):将字符串数组中含有关键字符串的元素存成新的数组(默认) [包含]为false 则取不包含的元素Join(ArrayName):将数组中元素连成字符串Ubound(ArrayName[,维数]):取得数组相应维数的上界Lbound(ArrayName[,维数]):取得数组相应维数的下界一般为0Randmize n:启动随机数种子Rnd(n):取得随机数,n>0或为空,取序列下一随机值,n<0,随机值相同,n=0,生产与上一随机值相同的数取介于A和B之间的随机正数C,公式:C=Int((B-A+1)*Rnd+A) 条件(B>A)子程序和自定义函数Sub StrSubName Function StrFunName(arg[1],..)子程序体函数体Exit Sub 中途跳出 Exit Function 中途跳出End Sub StrFunName=Value 返回值End Function[call] StrSubName 引用子程序 Var=StrFunName(arg[1],..) 引用函数子程序和自定义函数可以递归调用;ASP六大对象常用语句示范:Response:Response.write StrVar/"String":向网页写出参数值或字符串等同于在Html标记中嵌入<%=StrVar/"String"%>Response.End:停止页面编译,并将已经编译内容输出到浏览器Response.Buffer=True|False:页面编译时是否使用缓存的设置,一般在页面头部设置Response.Flush:强制输出页面已编译部分内容Response.Clear:将缓冲区内的数据清除Response.Redirect URL:停止页面编译或输出,转载指定所需页面Response.IsClientConnected:返回True|False,检测用户是否还处于连接状态Response.Charset(CharsetName):设置页面编码类型,即<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> Response.ContentType [= ContentType ]:设置页面文件类型,同上Response.Expires [= number]:设置页面失效时间,单位分钟Response.ExpiresAbsolute [= [date] [time]]:设置页面失效的绝对时间Response.Status = StatusDescription:设置页面状态描述Request:Request("PassStrName"):读取网页传递值,包括表单及以?PassStrName=value&PassStrName_n=value_n形式Request[.collection|property|method](variable)Request.querystring("PassStrName"):读取Get方法传递的表单值和?PassStrName=valueRequest.QueryString(Varible)[(Index).Count]Request.form("PassStrName"):读取Post方法传递的纯表单域的值Request.Form(Parameter)[(Index).Count]Request.ServerVaribles(Server Environment Variable):读取客户端系统环境变量,详见参考Request.BinaryRead(Count):读取指定字节数的传送值Request.TotalBytes:查询体的长度,以字节为单位,只读注:同名表单如:CheckBox如有多项值,传递形式如右,StrName=value1,value2,...需要用Split函数分割各项值Multiple的Select表单与CheckBox类似,TextArea的值可包含换行字符,用Replace转为<br>,以满足格式需要Session:(用户全局变量)Session("SesName")=value:存储Session变量值,也可读取该值Session("SesName")=Empty:判断Session值是否存在的两种方法IsEmpty(Session("SesName"))=True|False:判断Session值是否存在的两种方法Session.TimeOut=num:设置Session变量的存在时效,单位分钟Session.Abandon:清除所有Session变量值Session.SessionID:Session变量的ID序列号,只读Application:(应用程序全局变量)Application("AppName")=value:存储Application变量值,也可读取该值Application("AppName")=Empty:判断Application值是否存在的两种方法IsEmpty(Application("AppName"))=True|False:判断Application值是否存在的两种方法Application.Lock:Application变量值锁定,防止同时更改变量值Application.UnLock:Application变量值解锁,允许更改变量值注:Session与Application变量都可以用来存储数组和系统对象,引用方法是变量名相当于数组名而已,但不能直接改变其值,需要借助临时数组修改值后,再赋给Session与Application变量Global.asa文件的结构:<% @language="VBscript"%><% Sub Application_OnStart ...End SubSub Application_OnEnd ... End SubSub Session_OnStart ...End SubSub Session_OnEnd ... End Sub%>Server:Server.MapPath(""):映射文件名的服务器站点绝对地址,Path=Server.MapPath(./)可以得到虚拟目录根路径Server.HtmlEncode("string"):转换为可以直接显示带Html格式的字符串,如:<,>等Server.URLEncode( "string"):转换为浏览器地址编码set Var=Server.CreatObject("ObjName"):创建对象变量Server.ScriptTimeout = NumSeconds:ASP程序页面执行时限,以秒为单位Cookies: 存储在用户本机的临时变量,每个Cookie的最大字节4KB,最多可以有300个Cookie 1.2MBResponse.cookies("StrCookieName")=value:存储Cookie变量值,也可读取该值Response.cookies("StrCookieName")="":判断是否为空Response.cookies("StrCookieName").Expires=Date:变量有效期,以天为单位,小于当前时间立即失效Response.Cookies(Cookie[(key).Attribute]):标准语法ObjectContext 控制ASP的事务处理ObjectContext.OnTransactionAbort:由放弃的事务处理事件激发,在脚本完成处理后发生ObjectContext.OnTransactionCommit:由成功的事务处理事件激发,在脚本完成处理后发生ObjectContext.SetAbort:显式的放弃一次事务处理ObjectContext.SetComplete:覆盖前面任何调用ObjectContext.SetAbort方法的调用Msgbox "string"/StrName:VBscript提示框表单的Onsubmit事件:在同一页面写入 Function FormName_onsubmit()..FormName_onsubmit=True/False..end Function,页面会在提交前先执行语句,并根据返回值判断是否完成提交任务。

VBS基础篇-vbscript常用函数及功能

VBS基础篇-vbscript常用函数及功能

VBS基础篇-vbscript常⽤函数及功能vbs常⽤函数函数名语法功能Abs Abs(number)返回⼀个数的绝对值Sqr Sqr(number)返回⼀个数的平⽅根Sin Sin(number)返回⾓度的正⽞值Cos Cos(number)返回⾓度的余⽞值Tan Tan(number)返回⾓度的正切值Atn Atn(number)返回⾓度的反正切值Log Log(number)返回⼀个数的⾃然对数Int Int(number)取整函数,返回⼀个⼩于number的第⼀整数FormatNumber FormatNumber(number, numdigitsafterdecimal)转化为指定⼩数位数(numdigitsafterdecimal)的数字Rnd Rnd()返回⼀个从0到1的随机数Ubound Ubound(数组名,维数)返回该数组的最⼤下标Lbound Lbound(数组名,维数)返回最⼩下标数注释:Rnd 函数语法:Rnd[(number)]返回⼀随机数。

参数 number 可以是任何的数值表达式。

注解:Rnd 函数返回的随机数介于 0 和 1 之间,可等于 0,但不等于 1。

number 的值会影响 Rnd 返回的随机数:Number的取值返回值⼩于0每次都是使⽤numbe当做随机结果。

⼤于0随机序列中的下⼀个随机数。

等于0最近⼀次产⽣过的随机数。

省略随机序列中的下⼀个随机数。

各种转换函数及功能函数功能CStr(variant)将变量variant转化为字符串类型CDate(variant)将变量variant转化为⽇期类型CInt(variant)将变量variant转化为整数类型CLng(variant)将变量variant转化为长整数类型CSng(variant)将变量variant转化为single类型CDbl(variant)将变量variant转化为double类型CBool(variant)将变量variant转化为布尔类型注释:1整型2、长整型Long(长整型) ,其范围从 -2,147,483,648 到 2,147,483,647。

Wincc V7.3 通过VBS 记录连接PLC的时刻以及断开PLC的时刻的方法

Wincc V7.3 通过VBS 记录连接PLC的时刻以及断开PLC的时刻的方法

Wincc V7.3 通过VBS 记录连接PLC的时刻以及断开PLC的时刻的方法今天看QQ群里面有网友问怎么记下WINCC和PLC连接上和断开的时刻,这个问题有点意思,以前没有留意过,这两个事件也的确重要,于是尝试着做了一下试验成功了。

1. PLC一侧的编程新建两个BOOL变量,比如说是M14.0和M14.1,梯形图如下:这样一来,M14.1应该一直为1.2. WINCC一侧的编程在wincc一侧,新建四个变量:status 外部变量,二进制类型地址M14.1 替换值0 断开连接时替换。

注意这个变量不能从AS-OS传输过来,那种传输过来的不能设置替换功能,设置替换值是为了让PLC与上位机断开连接能够改变WINCC变量值。

ConnStatus:内部变量,二进制类型,初始值为0ConnTime:内部变量日期时间类型,记录连接上的时刻DisConnTime:内部变量日期时间类型,记录断开的时刻新建一个VBS全局脚本,触发器设置为周期性1s,这个周期也可以长一点,减少系统负荷。

Option ExplicitFunction actionDim ConnStatus,Status,ConnTime,DisconnTimeSet ConnStatus=HMIRuntime.Tags("ConnStatus") '内部变量Set Status=HMIRuntime.Tags("Status")Set ConnTime=HMIRuntime.Tags("ConnTime")Set DisConnTime=HMIRuntime.Tags("DisConnTime")If ConnStatus.Read =0 And Status.read=1 Then '连接上了ConnTime.Write NowConnStatus.Write 1End IfIfConnStatus.Read =1 And Status.read=0 Then '连接断开了DisConnTime.Write NowConnStatus.Write 0End IfEnd FunctionWincc画面上添加两个输入输出框,连接ConnTime和DisConnTime变量,输入输出框显示类型为日期时间类型。

Wincc的VBS脚本使用

Wincc的VBS脚本使用

变量读写:Write和Read方法的语法:读:1 Dim objTag Set objTag=HMIRunTime.Tags("变量名")objTag.Read2 HMIRunTime.Tags("变量名").Read写:1 Dim objTag Set objTag=HMIRunTime.Tags("变量名")objTag.Write 1 '向变量写入数值12 HMIRunTime.Tags("变量名").Write 1中间变量的值写入:Dim objTag,valSet objTag=HMIRunTime.Tags("变量名")objTag.Readval=objTag.Value '中间变量val存放了变量的值VBS语言使用方法概述:VBScript的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版).正如其字面所透露的信息, VBS(VBScript的进一步简写)是基于Visual Basic的脚本语言.我进一步解释一下, Microsoft Visual Basic是微软公司出品的一套可视化编程工具, 语基于Basic. 脚本语言, 就是不编译成二进制文件, 直接由宿主(host)解释源代码并执行, 简单点说就是你写的程序不需要编译成.exe, 而是直接给用户发送.vbs的源程序, 用户就能执行了. 一、入门: 1) 注释(以REM或'开头)行在程序中不起作用, 但能让别人更容易读懂你的程序. 2) 变量好像一个盒子, 或一个代号, 可以代表你想代表的东西. 变量赋值使用"="3)以""包裹起来的字符称之为"字符串"4)函数像一个"黑箱", 有参数和返回值, 用"="左边的变量可以接住返回值5)Inputbox函数弹出一个输入对话框,Msgbox则用于输出例:REM 输入并回显你的名字'使用InputBox和Msgbox函数Dim name,msgmsg="请输入你的名字:"name=Inputbox(msg,"名称")Msgbox(name)上例中,Dim用来声明一个变量, 在VBS中, 变量类型并不是那么重要, 就是说VBS中你不用考虑name储存的是一个整数还是一个小数(学名叫"浮点数"), 也不用考虑是不是字符串(一串字符, 比如:"Hello World"), VBS会自动帮你搞定. 所以第三行语句可以删除, 效果不会变.常量:格式是:const 常量名=常量值.例如: const PI=3.1415926 const NAME="记忆碎片"二、进阶数据类型转换:1)Dim a,b,ca=inputbox("a是:","输入半径")b=Inputbox("b是:","输入半径")c=a*2+b*2Msgbox(c)这个输入1、2时是62)Dim a,b,ca=inputbox("a是:","输入半径")b=Inputbox("b是:","输入半径")c=(a+b)*2Msgbox(c)这个输入1、2时是24为什么会不一样呢? 在数学上c=(a+b)*2 和c=a*2+b*2是等价的, 在VBS中也是如此. 问题出在"+"上, 在VBS中, +不仅仅是加号的意思还表示把两个字符串连接起来, 例如"Hello"+"World"="HelloWorld" have you understood? 你还记得InoutBox函数的返回值吗? 是字符串! 这就看出问题了吧, 在编程中"1"不等于(<>)1, "1"是一个字符, 而1是一个数, 所以a,b都是字符串变量, "1"+"2"="12", 这就好像我们小时跟伙伴开玩笑问他们1+1=?一样, 我们总是笑着说"错啦,应该是11".但为什么, a可以*2却不发生错误呢? 这时VBS比较智能的一个表现, 如果这个字符串的内容是一个数且对他进行数学运算, 则把字符串强制转换成数参与运算如果字符串代表一个数, 但不参加数学运算, 而是参加字符串运算(合并)则当作字符串处理, 所以你看到a+b=12, 这时候a+b的结果是一个字符串, 当它要乘以2的时候就被强制转换成了数字12, 这样我就得到了结果24怎么修改这个程序呢? 我们需要用到另一个内建的函数:int, int函数的功能是将输入值转成整数值, 我们这样修改: c=(int(a)+int(b))*2四、循环结构for....nextdim i,jfor i=1 to 9for i=1 to 9str=str & i * j & " " '&是和并字符串的符号next '每个next对应一个fornext1)do..loop和exit do的用法2) while当表达式true的时候执行循环体,until反之3) for...next是计数循环, 每次执行计数器递加4) 嵌套循环的作用和写法4.5) &用于连接字符串5) vbCrLf相当于键盘上的回车键五、数组定义:dim 数组名(元素数量), 这里大家要注意一点, 这里定义的元素数量总是比你要的要少一个, 因为一个数组的起点是0号数据而不是1, 所以大家一定要小心: 你需要10个数据, 就定义"9"。

vbs字符串函数

vbs字符串函数

VBScript字符串函数介绍1. Split(expression, delimiter, count, compare)返回基于 0 的一维数组,其中包含指定数目的子字符串。

expression:必选。

字符串表达式,包含子字符串和分隔符。

如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组。

delimiter:可选。

用于标识子字符串界限的字符。

如果省略,使用空格 (" ") 作为分隔符。

如果 delimiter 为零长度字符串,则返回包含整个 expression 字符串的单元素数组。

count:可选。

被返回的子字符串数目,-1 指示返回所有子字符串。

compare:可选。

compare 参数可以有以下值:0 执行二进制比较;1 执行文本比较;2 执行基于数据库(在此数据库中执行比较)中包含的信息的比较。

2. Replace(expression, find, replacewith, compare, count, start)返回字符串,其中指定数目的某子字符串被替换为另一个子字符串。

expression:必选。

字符串表达式,包含要替换的子字符串。

find:必选。

被搜索的子字符串。

replacewith:必选。

用于替换的子字符串。

start:可选。

expression 中开始搜索子字符串的位置。

如果省略,默认值为 1。

count:可选。

执行子字符串替换的数目。

如果省略,默认值为 -1,表示进行所有可能的替换。

compare:可选。

参数值同上。

3. Mid(string, start, length)从字符串中返回指定数目的字符。

string:字符串表达式,从中返回字符。

如果 string 包含 Null,则返回 Null。

start:string 中被提取的字符部分的开始位置。

如果 start 超过了 string 中字符的数目,Mid 将返回零长度字符串 ("")。

wincc中使用vbs的常用函数

wincc中使用vbs的常用函数

wincc中使用vbs的常用函数1.函数array()功能:创建一个数组变量格式:array(list)参数:list为数组变量中的每个数值列,中间用逗号间隔例子:<%i=array(“1”,”2”,”3”)%>结果:i被剥夺为数组2.函数cint()功能:将一表达式/其它类型的变量转换成整数类型(int)格式:cint(expression)参数:expression就是任何有效率的表达式/其它类型的变量例子:<%f=”234”response.writecint(f)+2%>结果:236函数cint()将字符”234”转换成整数234.如果表达式为空,3.函数:creatobject()功能:建立及回到一个activex对象.格式:creatobject(obname)参数bname就是对象的名称例子:<%setcon=server.createobject(“adodb.connection”)%>结果:4.函数cstr()功能:将一表达式/其它类型的变量转换成字符类型(string)格式:cstr(expression)参数:expression是任何有效的表达式/其它类型的变量例子:<%s=3+2response.write”theresultis:”&cstr(s)%>结果:函数cstr()将整数5转换成字符”5”.5.函数date()功能:返回当前系统(server端)的日期或者违宪时,返回值为0;格式:date()参数:并无例子<%date()%>结果:05/10/006.函数dateadd()功能:排序某个选定的时间和格式:dateadd(timeinterval,number,date)参数:timeinterval就是时间单位(月,日..);number就是时间间隔值,date就是时间始点.例子:<%currentdate=#8/4/99#newdate=dateadd(“m”,3,currentdate)response.writenewdate%><%currentdate=#12:34:45pm#newdate=datead d(“h”,3,currentdate)response.writenewdate%>结果:11/4/993:34:45pm其中“m”=”month”;“d”=”day”;如果是currentdate格式,则,“h”=”hour”;“s”=”second”;7.函数datediff()功能:排序某量个选定的时间差格式:datediff(timeinterval,date1,date2[,firstdayofweek[,firstdayofyear]])参数:例子:<%fromdate=#8/4/99#todate=#1/1/2000#response.write”thereare”&_datediff(“d”,fromdate,todate)&_“daystomillenium from8/4/99.”%>结果:thereare150daystomilleniumfrom8/4/99.8.函数day()功能:返回一个整数值,对应于某月的某日格式:day(date)timeinterval是时间单位;date1,date2是有效的日期表达式,firstdayofweek,firstdayofyear就是任一选项.参数:date是一个有效的日期表达式;例子<%=date(#8/4/99#)%>结果:49.函数formatcurrency()功能:转换成货币格式格式:formatcurrency(expression[,digit[,leadingdigit[,paren[,groupdigit]]]])参数:expression就是有效率的数字表达式;digit则表示小数点后的位数;leadingdigit,paren,groupdigit就是任一选项.例子<%=formatcurrency(34.3456)%>结果34.3510.函数formatdatetime()功能:格式化日期表达式/变量格式:formatdatetime(date[,nameformat])参数:date为有效率的日期表达式/变量;nameformat就是选定的日期格式常量名称.例子<%=formatdatetime(“08/04/99”,vblongdate)%>结果:wednesday,august04,1999表明:--------------------------------------------------------------------------------描述回到表达式,此表达式已被格式化为日期或时间。

Wincc的VBS脚本使用

Wincc的VBS脚本使用

1 Dim objTag Set objTag=("变量名")2 ("变量名").Read写:1 Dim objTag Set objTag=("变量名")1 '向变量写入数值12 ("变量名").Write 1中间变量的值写入:Dim objTag,valSet objTag=("变量名")val= '中间变量val存放了变量的值VBS语言使用方法概述:VBScript的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版).正如其字面所透露的信息, VBS(VBScript的进一步简写)是基于Visual Basic的脚本语言.我进一步解释一下, Microsoft Visual Basic是微软公司出品的一套可视化编程工具, 语基于Basic. 脚本语言, 就是不编译成二进制文件, 直接由宿主(host)解释源代码并执行, 简单点说就是你写的程序不需要编译成.exe, 而是直接给用户发送.vbs的源程序, 用户就能执行了.一、入门: 1) 注释(以REM或'开头)行在程序中不起作用, 但能让别人更容易读懂你的程序. 2) 变量好像一个盒子, 或一个代号, 可以代表你想代表的东西. 变量赋值使用3)以""包裹起来的字符称之为"字符串"4)函数像一个"黑箱", 有参数和返回值, 用"="左边的变量可以接住返回值5) Inputbox函数弹出一个输入对话框,Msgbox则用于输出例:REM 输入并回显你的名字'使用InputBox和Msgbox函数Dim name,msgmsg="请输入你的名字:"name=Inputbox(msg,"名称")Msgbox(name)上例中,Dim用来声明一个变量, 在VBS中, 变量类型并不是那么重要, 就是说VBS中你不用考虑name储存的是一个整数还是一个小数(学名叫"浮点数"), 也不用考虑是不是字符串(一串字符, 比如:"Hello World"), VBS会自动帮你搞定. 所以第三行语句可以删除, 效果不会变.常量:格式是:const 常量名=常量值.例如: const PI= const NAME="记忆碎片"二、进阶数据类型转换:1)Dim a,b,ca=inputbox("a是:","输入半径")b=Inputbox("b是:","输入半径")c=a*2+b*2Msgbox(c)这个输入1、2时是62)Dim a,b,ca=inputbox("a是:","输入半径")b=Inputbox("b是:","输入半径")c=(a+b)*2Msgbox(c)这个输入1、2时是24为什么会不一样呢? 在数学上c=(a+b)*2 和 c=a*2+b*2是等价的, 在VBS中也是如此. 问题出在"+"上, 在VBS中, +不仅仅是加号的意思还表示把两个字符串连接起来, 例如"Hello"+"World"="HelloWorld" have you understood? 你还记得InoutBox函数的返回值吗? 是字符串! 这就看出问题了吧, 在编程中"1"不等于(<>)1, "1"是一个字符, 而1是一个数, 所以a,b都是字符串变量, "1"+"2"="12", 这就好像我们小时跟伙伴开玩笑问他们1+1=?一样, 我们总是笑着说"错啦,应该是11".但为什么, a可以*2却不发生错误呢? 这时VBS比较智能的一个表现, 如果这个字符串的内容是一个数且对他进行数学运算, 则把字符串强制转换成数参与运算如果字符串代表一个数, 但不参加数学运算, 而是参加字符串运算(合并)则当作字符串处理, 所以你看到a+b=12, 这时候a+b的结果是一个字符串, 当它要乘以2的时候就被强制转换成了数字12, 这样我就得到了结果24怎么修改这个程序呢? 我们需要用到另一个内建的函数:int, int函数的功能是将输入值转成整数值, 我们这样修改: c=(int(a)+int(b))*2四、循环结构for....nextdim i,jfor i=1 to 9for i=1 to 9str=str & i * j & " " '&是和并字符串的符号next '每个next对应一个fornext1)do..loop和exit do的用法2) while当表达式true的时候执行循环体,until反之3) for...next是计数循环, 每次执行计数器递加4) 嵌套循环的作用和写法 &用于连接字符串5) vbCrLf相当于键盘上的回车键五、数组定义:dim 数组名(元素数量), 这里大家要注意一点, 这里定义的元素数量总是比你要的要少一个, 因为一个数组的起点是0号数据而不是1, 所以大家一定要小心: 你需要10个数据, 就定义"9"。

Wincc的VBS脚本使用演示教学

Wincc的VBS脚本使用演示教学
2)Dim a,b,c
a=inputbox("a是:","输入半径")
b=Inputbox("b是:","输入半径")
c=(a+b)*2
Msgbox(c)
这个输入1、2时是24
为什么会不一样呢?在数学上c=(a+b)*2和c=a*2+b*2是等价的,在VBS中也是如此.问题出在"+"上,在VBS中, +不仅仅是加号的意思还表示把两个字符串连接起来,例如"Hello"+"World"="HelloWorld" have you understood?你还记得InoutBox函数的返回值吗?是字符串!这就看出问题了吧,在编程中"1"不等于(<>)1, "1"是一个字符,而1是一个数,所以a,b都是字符串变量, "1"+"2"="12",这就好像我们小时跟伙伴开玩笑问他们1+1=?一样,我们总是笑着说"错啦,应该是11".但为什么, a可以*2却不发生错误呢?这时
call who(yname)
sub
who(cname)
msgbox("你好" & cname)
msgbox("感谢你阅读我的课程")
msgbox("这是基础部分的最后一课")
end sub
按钮翻转程序
Sub OnClick(Byval Item)
Dim tag1
Set tag1=HMIRuntime.Tags("Q02")

wincc c语言 分割字符串函数

wincc c语言 分割字符串函数

wincc c语言分割字符串函数在WinCC C 语言中,可以使用 C 语言标准库中的字符串处理函数来分割字符串。

下面是一些常用的字符串分割函数:1.strtok:该函数用于将字符串按照指定的分隔符进行分割,并返回指向第一个分割后的子字符串的指针。

c复制代码char *strtok(char *str, const char *delim);其中,str是要分割的字符串,delim是分隔符的字符串。

strtok函数会修改str指针,使其指向下一个分隔符的位置,并返回指向第一个分割后的子字符串的指针。

如果没有更多的子字符串,则返回NULL。

2. strtok_r:该函数与strtok函数类似,但是它是线程安全的,可以在多线程环境中使用。

c复制代码char *strtok_r(char *str, const char *delim, char**saveptr);其中,saveptr是一个指向字符指针的指针,用于保存strtok函数的当前状态,以便在多线程环境中使用。

3. strchr:该函数用于查找字符串中指定字符的位置。

c复制代码char *strchr(const char *str, int c);其中,str是要查找的字符串,c是要查找的字符。

如果找到了该字符,则返回指向该字符的指针;否则返回NULL。

4. strcspn:该函数用于查找第一个不匹配指定字符集的字符的位置。

c复制代码size_t strcspn(const char *str, const char *charset);其中,str是要查找的字符串,charset是要匹配的字符集。

如果找到了第一个不匹配的字符,则返回该字符的位置;否则返回字符串的长度。

这些函数可以帮助你在WinCC C 语言中分割字符串。

你可以根据具体的需求选择适合的函数来处理字符串。

WinCC VBScript教程

WinCC VBScript教程

WinCC VBScript教程一(2010-05-01 08:01:04)转载标签:winccvbscritp教程it本文内容是基于WinCC V6.2中文版的,文中脚本程序均在WinCC V6.2中文版测试通过。

WinCC作为西门子公司的监控组态软件具有非常强的的功能,和很好的系统稳定性。

本系列教程主要讨论WinCC中的VBScript脚本系统在实际开发中的应用。

WinCC提供了丰富完整、功能强大的脚本编程。

主要分为C脚本、VBS脚本和VBA三种具有不同功能、及应用环境的脚本语言。

C脚本提供了访问各种Win32 API的功能,通过对不同的Win32 API的访问可以使用Windows平台及该平台上各种应用的功能。

VBS脚本者为开发者提供了一种易用和快速开发的脚本语言。

VBA提供了对WinCC软件功能扩展的能力。

Visual Basic Scripting Edition 是程序开发语言Visual Basic 家族的最新成员。

VB Script是非常易学的。

如果您已了解Visual Basic 或Visual Basic for Applications,就会很快熟悉VBScript。

如果您没有学过Visual Basic,只要学会VBScript,就能够使用所有的Visual Basic 语言进行程序设计。

本节主要对WinCC脚本、及VB Script进行简单介绍。

下节将介绍VB Script的基本语法。

本文转载自:中华工控168网WinCC VBScript教程二语法(2010-05-02 23:11:25)转载标签:it本节主要介绍VBScript语法,包括数据类型、变量、常数、过程、编码规则。

VBScript 数据类型VBScript 只有一种数据类型,称为 Variant。

Variant 是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息。

因为 Variant 是VBScript 中唯一的数据类型,所以它也是VBScript 中所有函数的返回值的数据类型。

博途中WinCCVBS脚本的基础用法

博途中WinCCVBS脚本的基础用法

博途中WinCCVBS脚本的基础用法“PLC技术圈”VBS 脚本可以用在 WinCC Comfort/Advanced Runtime。

下面就是一些很实用技巧,希望对大家有所帮助!1、为什么一个由内部变量的“数值改变” 事件触发的脚本不被执行?如果使用一个内部变量调用另外一个内部变量,以此,例如被调用的变量又去执行一个脚本(比如,根据变量变化),此时一个安全机制会阻止这个功能被执行。

此安全功能是为了阻止连续的执行。

例如在内部变量“HMI_Tag_01” 属性下,“更改数值”事件去置位内部变量“HMI_Tag_02” 中的某一位。

同时内部变量“HMI_Tag_02” 的“更改数值”事件下又调用一个脚本。

结果:这个脚本不会被执行。

解决办法使用和控制器通讯的外部变量。

请注意,通过使用外部变量可以规避上述安全机制。

在项目运行时可能会产生问题。

2、如何在一个脚本中访问数组中的元素?对数组元素的访问是通过数组的名称和数组中由括号分隔的数组索引来实现的:“SmartTags('Array Name')(array index)”例如访问数组 'DB10_HMI_Data' 的第二个元素:Dim Tag_01 'Internal script tagTag_01 =SmartTags('DB10_HMI_Data')(2)注意使用下面语法访问字符串类型数组中的元素:Dim Tag_01 'Internal script tagTag_01 =SmartTags('DB10_HMI_Data[2]')例如通过一个循环描述数组'DM10_HMI_Data' 的第一个元素至第十一个元素Dim Tag_01For Tag_01=0 to 10SmartTags('DB10_HMI_Data')(Tag_01)= 5Next局部脚本的数组(该数组仅在此脚本中可用)可以使用同样的方式查询,对于多维数组,各个维度通过一个逗号分隔开。

winccvbscriptSplit函数用法

winccvbscriptSplit函数用法

winccvbscriptSplit函数用法用法:传回数组=Split(原始字串,要找的字串,拆成几个数组)描述返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

语法例如用逗号(,)分割字符串为数组复制代码代码如下:tr=\trarr=plit(tr,\fori=0toubound(trarr)mgbo某trarr(i)ne某tSplit函数语法有如下几部分:部分描述e某preion必需的。

包含子字符串和分隔符的字符串表达式如果e某preion是一个长度为零的字符串(\,Split则返回一个空数组,即没有元素和数据的数组。

delimiter可选的。

用于标识子字符串边界的字符串字符。

如果忽略,则使用空格字符(\\作为分隔符。

如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的e某preion字符串。

count可选的。

要返回的子字符串数,-1表示返回所有的子字符串。

参数的设置设置值常数值描述复制代码代码如下:MyStr=\MyStr=Split(MyStr,\ForEachStrInMyStrPrintStrNe某tEndSub输出结果:\、\、\复制代码代码如下:'这个VB程序是让求10个学生的考试成绩的平均分..'比如958570758090606595100'这10个人的分数的平均分...PrivateSubForm_Load()DimA$(),iALong,intBAString,AIntegerIfDir(\平均分.dat\Open\平均分.dat\Print#1,\Cloe#1EndIfOpen\平均分.dat\Input#1,intBCloe#1A=Split(intB,Space(1),-1,1)Fori=0ToUBound(A,1)Debug.PrintA(i);\=+A(i)Ne某ti Debug.Print\,10个学生的平均成绩是:\EndSubDimr()AString'把变量按照“,”分割出来的数组DimrtAString'最终的结果,用换行符代替“,”DimCAInteger'这个是循环用的AString=\高级,中级,低级,先进\r=Split(AString,\,\把每个目录都分解出来ForC=0ToUBound(r)'C由0开始循环到r数组的最大下标rt=rt&vbCrLf&vbCrLf&r(C)'把数组的每一个元素都添加到rt,用回车分割Ne某tC'循环MgBo某rt'输出EndSubPrivateSubForm_Load()DimtrTe某tDateAStringtrTe某tDate=\星期一\MgBo某Format(Split(trTe某tDate)(0),\EndSub当小括号中写0时,返回数组中第一个元素,小括号中写1时返回数组中第二个元素。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

vbscript Split 函数用法用法:传回数组 = Split(原始字串, 要找的字串, 拆成几个数组)描述返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

语法Split(expression[, delimiter[, count[, compare]]])例如用逗号(,)分割字符串为数组复制代码代码如下:str="1,2,3,4"strarr=split(str,",")for i=0 to ubound(strarr)msgbox strarr(i)nextSplit函数语法有如下几部分:部分描述expression 必需的。

包含子字符串和分隔符的字符串表达式。

如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。

delimiter 可选的。

用于标识子字符串边界的字符串字符。

如果忽略,则使用空格字符(" ")作为分隔符。

如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。

count 可选的。

要返回的子字符串数,-1表示返回所有的子字符串。

compare 可选的。

数字值,表示判别子字符串时使用的比较方式。

关于其值,请参阅“设置值”部分。

参数的设置设置值compare参数的设置值:常数值描述vbUseCompareOption -1 用Option Compare语句中的设置值执行比较。

vbBinaryCompare 0 执行二进制比较。

vbTextCompare 1 执行文字比较。

vbDatabaseCompare 2 仅用于Microsoft Access。

基于您的数据库的信息执行比较。

复制代码代码如下:Private Sub Command1_Click()Dim MyStr As StringMyStr = "1234567123456712345"MyStrs = Split(MyStr, "67")For Each Strs In MyStrsPrint StrsNextEnd Sub输出结果:"12345"、"12345"、"12345"复制代码代码如下:'这个VB程序是让求10个学生的考试成绩的平均分.. '比如95 85 70 75 80 90 60 65 95 100'这10个人的分数的平均分...Private Sub Form_Load()Dim A$(), i As Long, intB As String, s As Integer If Dir("d:\平均分.dat") = vbNullString ThenOpen "d:\平均分.dat" For Output As #1Print #1, "95 85 70 75 80 90 60 65 95 100"Close #1End IfOpen "d:\平均分.dat" For Input As #1Input #1, intBClose #1A = Split(intB, Space(1), -1, 1)For i = 0 To UBound(A, 1)Debug.Print A(i); " ";s = s + A(i)Next iDebug.Print ",10个学生的平均成绩是 :" & s / 10 End SubPrivate Sub command1_Click()Dim AString As StringDim r() As String '把变量按照“,”分割出来的数组Dim rt As String '最终的结果,用换行符代替“,”Dim C As Integer '这个是循环用的AString = "高级,中级,低级,先进"r = Split(AString, ",") '把每个目录都分解出来For C = 0 To UBound(r) 'C由0开始循环到r数组的最大下标rt = rt & vbCrLf & vbCrLf & r(C) '把数组的每一个元素都添加到rt,用回车分割Next C '循环MsgBox rt '输出End SubPrivate Sub Form_Load()Dim strTextDate As StringstrTextDate = "2008-12-1 星期一"MsgBox Format(Split(strTextDate)(0), "yyyy-mm-dd")End Sub当小括号中写0时,返回数组中第一个元素,小括号中写1时返回数组中第二个元素。

依此类推,用这种写法返回数据时,必须用一个空格把字符串分开,其它字符仅当做一个数据。

例:Private Sub Form_Load()Dim AString As StringAString = "高级中级低级先进"MsgBox Split(AString)(0)MsgBox Split(AString)(1)MsgBox Split(AString)(2)MsgBox Split(AString)(3)End Sub以下只返回高级,中级,低级,先进仅当作一个串,即只能返回Split(AString)(0)的值,其它值都产生下标越界错误。

所以用以下方法分解时,只能用一个空格分割,而不能用其它字符分割.复制代码代码如下:Private Sub Form_Load()Dim AString As StringAString = "高级,中级,低级,先进"MsgBox Split(AString)(0)MsgBox Split(AString)(1)MsgBox Split(AString)(2)MsgBox Split(AString)(3)End Subsplit 命令用途将文件分割成几段。

语法要将一个文件分割成包含指定行数的多个文件split [ -l LineCount ] [ -a SuffixLength ] [ File [ Prefix ] ]要将一个文件分割成包含指定字节数的多个文件split -b Number [ k | m ] [ -a SuffixLength ] [ File [ Prefix ] ]描述split 命令读取指定文件,以 1000 行大小写在一组输出文件上。

第一个输出文件名由指定前缀(缺省值 x)和 aa 后缀组合构成,第二个文件名由前缀和 ab 后缀组合构成,如此按字典顺<img class="img InsertH2" alt="段落标题" src="../../System/_resource/blank.gif">序一直到 zz(最多 676 个文件)。

后缀的字母数及因此的输出名称文件数可用 -a 标志增加。

您指定的 Prefix 不能长于 PATH_MAX - 2 个字节(如果指定了 -a 标志,则不能长于 PA TH_MAX - SuffixLength 个字节)。

PATH_MAX 变量指定系统的最大路径名的长度(在 /u sr/include/sys/limits.h 文件中定义)。

如果您不指定输入文件或如果您指定 -(减号)文件名,那么 split 命令从标准输入读取文件。

标志注:-b 和 -l 标志是互斥的。

-a SuffixLength 指定用于形成输出名称文件后缀部分的字母数。

字母数确定可能的输出文件名组合数。

缺省是两个字母。

-b Number 将文件分割成 Number 变量指定的字节数。

将 k(千字节)或 m(兆字节)乘数加到 Number 值的末尾使文件分别分割成 Number*1024 字节或 Number*1,048,576 字节的几个段。

-l LineCount 指定每个输出文件的行数。

缺省值是 1000 行。

退出状态该命令返回以下退出值:0 命令成功运行。

>0 发生错误。

示例复制代码代码如下:1. 要将文件分割成 1000 行的段,请输入:split book此示例将 book 分割成 1000 行的段,命名为 xaa、 xab、 xac 等等。

2. 要将文件分割成 50 行的段并指定文件名前缀,请输入:split -l 50 book sect此示例将 book 分割成 50 行的段,命名为 sectaa、sectab、sectac 等等。

3. 要将文件分割成 2KB 的段,请输入:split -b 2k book此示例将 book 分割成 2*1024 字节的段,命名为 xaa、xab、xac 等等。

4. 要将文件分割成 676 个以上的段,请输入:split -l 5 -a 3 book sect此例将 book 分割成 5 行的段,命名为 sectaaa、sectaab、 sectaac 等等,直到 sectz zz(最多 17,576 个文件)。

相关文档
最新文档