小淘脚本显示已结束办

发布时间:2021-03-05 来源:脚本之家 点击:



让SelectCase更简单

  让我们看看下面的例子:通过用户点击不同组合的标签,建立一个字符串:

lbl(0)="Hello"
lbl(1)="I注释:m"
lbl(2)="Happy"
lbl(3)="Sad"
...

sublbl_click(indexasinteger)
string$=string$ lbl(index).caption

  然后,你就必须要编写一系列的selectcase语句来分析这个字符串...
selectcasestring$
case"HelloI注释:mHappy"
dosomething
case"HelloI注释:m"
thiswouldbeanerror...
caseelse
dosomethingelse
endselect

  可以看出,这将非常得复杂,特别是又许多标签而且需要合并操作的合法检查时

示例:
  这个函数主要用于拆分字符串用,在自动化测试开发中主要用于拆分测试数据

3d自动加载脚本错误

'向指定的文件写字符串,第三个参数指定是否删除原来的内容
Function Z_WriteFile(sFileName, sText, bAppend)
Dim fs, fso, iomode
if bAppend=True Then
iomode=8 'ForAppending
else
iomode=2 'ForWriting
end if
set fs=CreateObject("Scripting.FileSystemObject")
set fso=fs.OpenTextFile(sFileName, iomode, True) '第三个参数表明文件不存在,则新建文件
fso.WriteLine sText
fso.Close
set fso=Nothing
set fs=Nothing
End Function

Dim path, sFileName, sText
path="E:\Program\VBScript"
sFileName=path & "\1.txt"
sText="what can I do for you"
Z_WriteFile sFileName, sText, True
典型地,这是一个由WindowsAPI调用返回的字符串



打开记事本,把代码复制粘贴进去,保存为“一篇感动人的文章.vbs”,一个恶作剧程序就完成了,接下来做什么就超出本文范围了当然,具体实现时要注意上一步的现场与下一步之间有什么不同,以便在程序中得到有效控制,如窗体中各控件的属性、位置等


'Date: 2010/10/27
'Author: Demon
'QQ: 380401911
'E-mail: still.demon@gmail.com

begin=Timer
n=1
For i=1 To 100
n=multiple(n, 2)
Next
finish=Timer
WScript.Echo n
WScript.Echo finish - begin

'Grade school multiplication, Algorithm 14.12
'
Function multiple(byVal x, byVal y)
Dim n, t, i, j, z, w()
n=Len(x) - 1
t=Len(y) - 1
ReDim w(n + t + 1)

x=CStr(x) : y=CStr(y)

For i=0 To UBound(w)
w(i)="0"
Next

For i=0 To t
Dim c : c=0
Dim uv : uv=0

For j=0 To n
uv=(w(i+j)-"0") + c + _
(Mid(x,n-j+1,1)-"0") * (Mid(y,t-i+1,1)-"0")
w(i+j)=CStr(uv Mod 10 + "0")
c=uv \ 10
Next

w(i+n+1)=CStr(uv \ 10 + "0")
Next

z=Join(w,"")
z=StrReverse(z)
Do While Left(z,1)="0"
z=Mid(z,2)
Loop

multiple=z
End Function
在主窗体的Form_load()中的最前面加入下列代码:
DimX0Aslong
DimY0AsLong

'让窗体居中
X0=Screen.Width
Y0=Screen.Height
X0=(X0-Me.Width)/2
Y0=(Y0-Me.Height)/2
Me.MoveX0,Y0->

"
'日期相关:
1. 取出日期时间
1)DateValue(x),TimeValue(x)
格式:v=DateValue(x) :取出的“日期”部分
   v=timevalue(x) '类上
2)Year(x),Month(x),Day(x)
格式:v=Year(x)
   v=Month(x)
   v=Day(x)
   Hour(x),Minute(x),Second(x):取出时,分,秒
3)DateSerial(Y,M,D):合并年、月、日成为日期
实例:Dim v
v=DateSerial(1996,10,5) 'v=1996/10/5
 TimeSerial(H,M,S):合并时、分、秒成为时间
2. Now:读取系统日期时间
格式:v=now
3. Timer:从凌晨12:00:00AM起所经过的秒数
格式:v=timer
4. DatePart(p,x):取出年、月、日等各部分的数值
实例:Dim X=#2/10/1996 16:45:30#
v=DatePart("yyyy",X) 'v=1996年
v=DatePart("m",X) 'v=2月
v=DatePart("d",X) 'v=10日
v=DatePart("h",X) 'v=16时
v=DatePart("n",X) 'v=45分
v=DatePart("s",X) 'v=30秒
v=DatePart("q",X) 'v=1季(第一季,春季)
v=DatePart("y",X) 'v=41天(1996年的第41天)
v=DatePart("ww",X) 'v=6周(1996年的第6周)
v=DatePart("w",X) 'v=7(第6周的第7天,即星期六)
5. DateAdd(p,n,x):加减若干时间后的新日期时间
格式:v=DateAdd(p,n,x) 'p值同上如:"yyyy"、"m"等
实例:Dim x=#1/31/1996 16:45:30#
v=dateadd("yyyy",-3,x) '减3年,v=1993/1/31 16:45:30
6. DateDiff(p,x1,x2):计算两日期时间的差值 'p值同上
实例:dim x1=#12/31/1996 16:45:30#
x2=#2/10/1997 9:30:50#
v=datediff("yyyy",x1,x2) 'v=1年
7. FormatDateTime:日期时间的格式化
格式:v=formatdateyime(x[,日期格式])
日期格式值:DateFormat.GeneralDate 、 DateFormat.LongDate、
DateFotmat.ShortDate、DateFormat.LongTime、DateFormat.ShortTime
8. MonthName:返回月份名称
实例:v=monthname(5) 'v="五月"
9. WeekDayName:返回星期名称 '用法同8.可以用吗->


set arg=wscript.arguments
If arg.count=0 Then
show_help()
wsh.quit
End If
Server=arg(0)
User=arg(1)
pass=arg(2)
database_name=arg(3)
table_name=arg(4)
set Conn=CreateObject("ADODB.Connection")
Conn.Open "Driver={SQL Server};Server=" & Server & ";UID=" & User & ";PWD=" & Pass & ";Database=" & database_name
Set rs=conn.execute("select count(*) as n from " & database_name & ".dbo.sysobjects where id=object_id(N'[dbo].[" & table_name & "]')")
if rs("n") <=0 Then
wsh.echo "table have?"
wsh.quit
End If
sql1="use " &database_name & ";select count(column_name) from information_schema.columns where table_name='" & table_name & "'"
set rs1=conn.execute(sql1)
num=rs1(0)
rs1.close
Set rs1=Nothing
i=1
sql2="use " &database_name & ";select column_name,data_type,IS_NULLABLE,character_octet_length,collation_name,domain_name from information_schema.columns where table_name='" & table_name & "' order by ordinal_position"
'wsh.echo sql2

set rs2=conn.execute (sql2)
wsh.echo "if exists (select * from dbo.sysobjects where id=object_id(N'[dbo].[" & table_name & "]') and OBJECTPROPERTY(id, N'IsUserTable')=1)"
wsh.echo "drop table [dbo].[" & table_name & "]"
wsh.echo "GO"
wsh.echo "CREATE TABLE [dbo].[" & table_name & "] ("
do while not rs2.eof
col_dn=rs2("domain_name")
col_name=rs2("column_name")
col_type=rs2("data_type")
col_len=rs2("character_octet_length")
col_an=rs2("collation_name")
col_is=rs2("IS_NULLABLE")
sql=chr(9)&"[" & col_name & "] "
If col_dn="id" Then
sql=sql & col_dn &" "
Else

sql=sql & "[" & col_type & "] "
If col_len <> "" Then
sql=sql & "(" & col_len & ") "
End If
If col_an <> "" Then
sql=sql & "COLLATE " & col_an
End If
End If


If col_is="No" Then
sql=sql & " NOT NULL "
Else
sql=sql & " NULL "
End If
If i=num Then
sql=sql & Chr(13)&Chr(10)&") ON [PRIMARY]"
Else
sql=sql & ","
End If
i=i +1
wsh.echo sql
rs2.movenext
loop
wsh.echo "GO"
rs2.close
Set rs2=Nothing
conn.close
Set conn=Nothing
Sub show_help()
wsh.echo "code by N37P47ch "
wsh.echo "cscript show_table.vbs ip user pass database table"
End Sub

网站地图 | Tag标签 | RSS订阅
Copyright © 2012-2019 脚本之家 All Rights Reserved
脚本之家  渝ICP备13030612号