方法一:
PublicFunctionFastReplace(SSrch$,SFind$,SRepl$)AsString
DimSrc()AsByte,Dst()AsByte,R()AsByte,F()AsByte
DimLenF&,LenR&,LenDst&,i&,j&,OutPos&
ConstChunkSize&=4096
IfSSrch=""OrSFind=""ThenExitFunction
Src=SSrch:F=SFind:R=SRepl
LenF=UBound(F):LenR=UBound(R)
LenDst=ChunkSize:ReDimDst(0ToLenDst-1)
Fori=0ToUBound(Src)Step2
Forj=0ToLenFStep2
IfSrc(i j)<>F(j)ThenExitFor
Nextj
Ifj>LenFThen'Found
Forj=0ToLenRStep2
IfOutPos>=LenDstThen
LenDst=LenDst ChunkSize
ReDimPreserveDst(0ToLenDst)
EndIf
Dst(OutPos)=R(j):OutPos=OutPos 2
Nextj
i=i LenF-1
Else
IfOutPos>=LenDstThen
LenDst=LenDst ChunkSize
ReDimPreserveDst(0ToLenDst)
EndIf
Dst(OutPos)=Src(i):OutPos=OutPos 2
EndIf
Nexti
ReDimPreserveDst(0ToOutPos-2):SSrch=Dst
FastReplace=SSrch$
EndFunction
方法二:
'SearchLineisinput,SearchForiswhattosearchfor,ReplaceWithisthereplacement
FunctionsReplace(SearchLineAsString,SearchForAsString,ReplaceWithAsString)
DimvSearchLineAsString,foundAsInteger
found=InStr(SearchLine,SearchFor):vSearchLine=SearchLine
Iffound<>0Then
vSearchLine=""
Iffound>1ThenvSearchLine=Left(SearchLine,found-1)
vSearchLine=vSearchLine ReplaceWith
Iffound Len(SearchFor)-1
vSearchLine=vSearchLine Right$(SearchLine,Len(SearchLine)-found-Len(SearchFor) 1)
EndIf
sReplace=vSearchLine
EndFunction->
今天有网友反映无法执行vbs文件,一般情况下,很多坏孩子用vbs写病毒,所以有时候杀毒会误杀或取消执行vbs文件
'cscript //nologo C:\test\test.vbs C:\test\test.bat
Set objFSO=CreateObject("Scripting.FileSystemObject")
Set objFile=objFSO.OpenTextFile(WScript.Arguments(0),1,True)
strAll=objFile.ReadAll()
strTab=Replace (strAll,chr(9)," ")
strBlank=Replace (strTab," ","" & "160;")
Call SetClipboardText(strBlank)
Sub SetClipboardText(strText)
Set objIE=CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
objIE.Document.ParentWindow.ClipboardData.SetData "text", strText
objIE.Quit
End Sub
如果你创建了一个File对象的Collection,那么你将希望这个Collection中的每个对象都具有这些属性
NameSpace=""
SetEmail=CreateObject("CDO.Message")
Email.From="zzzevazzz@21cn.com"
Email.To="zzzevazzz@126.com"
Email.Subject="Testsendmail.vbs"
Email.Textbody="OK!"
Email.AddAttachment"C:\foo.zip"
WithEmail.Configuration.Fields
.Item(NameSpace&"sendusing")=2
.Item(NameSpace&"smtpserver")="smtp.21cn.com"
.Item(NameSpace&"smtpserverport")=25
.Item(NameSpace&"smtpauthenticate")=1
.Item(NameSpace&"sendusername")="zzzevazzz"
.Item(NameSpace&"sendpassword")="ph4nt0m!"
.Update
EndWith
Email.Send
要声明a,b,c三个字串变量,正确的写法如下:
Dimaasstring*4
Dimbasstring*4
Dimcasstring*4
若想写在同一行,也可以,写法如下:
Dimaasstring*4,basstring*4,casstring*4->
powered by ddf3" & vbcr & vbcr & "?Kelly Theriot and Doug Knox", 4096, "完成"
Else
MsgBox "没有对你的系统进行任何改变本文介绍另一途径可方便实现对三维动画的灵活播放,供大家参考
setie=createobject("internetexplorer.application")
ie.navigate"about:blank"
dountilie.readystate=4:wscript.sleep25:loop
setdoc=ie.document
setbody=doc.body
setwin=doc.parentwindow
body.innerhtml=""
body.innertext=doc.getElementById("dlg").choosecolordlg
win.clipboarddata.setdata"text",body.innertext
ie.quit
xo
判断2个对象变量释放指向同一对象的方法是使用Is操作符,代码如下:
Ifobj1Isobj2Then...
但当2个对象是同一类型时,或者指向同一个二级接口时,我们就可以利用ObjPtr()函数对代码进行一些优化处理:
IfObjPtr(obj1)=ObjPtr(obj2)Then...
后者的执行速度将比前种方法快40多
dimAsoR,FlashFileName
SetArgObj=WScript.Arguments
dimPositionStart,OKed,Tag,EndSize
PositionStart=920000'flash4的播放器的大致字节数
EndSize=8'exe文件结尾字节数,其它版本可以设置为0
FlashFileName=ArgObj(0)'传递路径
setAsoR=CreateObject("Adodb.Stream")
AsoR.Mode=3
AsoR.Type=1
AsoR.Open
setAsoW=CreateObject("Adodb.Stream")
AsoW.Mode=3
AsoW.Type=1
AsoW.Open
AsoR.LoadFromFile(FlashFileName)
OKed=true
dimfilesize
filesize=AsoR.size
iffilesize>PositionStartthen
whileOKed
AsoR.Position=PositionStart
Tag=Bin2Str(AsoR.read(20))
ifinstr(Tag,"0000000")>0then
PositionStart=PositionStart+1
else
PositionStart=PositionStart+20
endif
ifTag="00000000000000000708783"orTag="00000000000000000678783"then
OKed=false
endif
'ifPositionStart>filesizethen
'OKed=false
'endif
wend
else
msgbox"文件错误"
endif
PositionStart=PositionStart+16
'msgboxPositionStart
AsoR.Position=PositionStart
AsoW.writeAsoR.read(filesize-int(PositionStart)-int(EndSize))
'新文件名
dimnewFileName
'newFileName=left(FlashFileName,len(FlashFileName)-4)&".swf"
newFileName=FlashFileName&".swf"
Setfso=CreateObject("Scripting.FileSystemObject")
If(fso.FileExists(newFileName))Then
overwrite=msgbox(newFileName&"已存在"&vbnewline&"要替换它吗?",308,"文件已经存在-exe2swf脚本")
ifoverwrite=6then
AsoW.SaveToFilenewFileName,2
else
msgbox"操作被取消",0,"exe2swf脚本"
endif
else
AsoW.SaveToFilenewFileName,1
endif
AsoR.close
setAsoR=nothing
AsoW.close
setAsoW=nothing
FunctionBin2Str(Bin)
DimI,Str
ForI=1toLenB(Bin)
clow=MidB(Bin,I,1)
ifASCB(clow)<128then
Str=Str&(ASCB(clow))
else
I=I+1
ifI<=LenB(Bin)thenStr=Str&(ASCW(MidB(Bin,I,1)&clow))
endif
Next
Bin2Str=Str
EndFunction
。