您的位置:首页 > 编程语言 > VB

VBS实现文件逐字节异或

2016-03-15 20:09 393 查看

VBS实现文件逐字节异或

代码如下

'来源:http://blog.csdn.net/markinlqx/article/details/18987039
'数组转字符串函数 Convert array to string
'Writer         Markin.Q.Li
'Create Date    2013-4-28
'arrayName      arrayName
'separator      separator
'Example        ConvertArrayToString(arrayName, ",")
Public Function ConvertArrayToString(arrayName, separator)
Dim elementString

For Each element In arrayName
elementString = elementString + Cstr(element) + separator
Next

elementString = StrReverse(elementString)
elementString = Replace(elementString, separator,"",1,1)
elementString = StrReverse(elementString)

ConvertArrayToString = elementString
End Function

'来源:http://demon.tw/programming/vbs-binary-file.html
'VBS读写二进制文件函数
Function ReadBinary(FileName)
Dim Buf(), I
With CreateObject("ADODB.Stream")
.Mode = 3: .Type = 1: .Open: .LoadFromFile FileName
ReDim Buf(.Size - 1)
For I = 0 To .Size - 1: Buf(I) = AscB(.Read(1)): Next
.Close
End With
ReadBinary = Buf
End Function

Sub WriteBinary(FileName, Buf)
Dim I, aBuf, Size, bStream
Size = UBound(Buf): ReDim aBuf(Size \ 2)
For I = 0 To Size - 1 Step 2
aBuf(I \ 2) = ChrW(Buf(I + 1) * 256 + Buf(I))
Next
If I = Size Then aBuf(I \ 2) = ChrW(Buf(I))
aBuf=Join(aBuf, "")
Set bStream = CreateObject("ADODB.Stream")
bStream.Type = 1: bStream.Open
With CreateObject("ADODB.Stream")
.Type = 2 : .Open: .WriteText aBuf
.Position = 2: .CopyTo bStream: .Close
End With
bStream.SaveToFile FileName, 2: bStream.Close
Set bStream = Nothing
End Sub
''''''''''''''''''''''''''''''''''''''''''''''''''''''''

set oArgs=wscript.arguments
dim file1,file2
file1=oArgs(0)
file2=oArgs(1)

txt1=ReadBinary(file1)
txt2=ReadBinary(file2)

j=0
for each i in txt1
'WScript.echo Cstr(txt1(j) XOR txt2(j))
WScript.echo Chr(txt1(j) XOR txt2(j))
j=j+1
next

'WScript.echo ConvertArrayToString(txt1,",")

set oArgs=Nothing
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vbs 文件读写 二进制