2011-05-17 50 views
4

嗨 我必須串聯3二進制文件分割成一個,但IM得到一個錯誤,當我嘗試這裏是我的代碼如何連接使用ADODB.stream二進制文件在VBScript

' This is a simple example of managing binary files in 
' vbscript using the ADODB object 
dim inStream,outStream 
const adTypeText=2 
const adTypeBinary=1 

' We can create the scream object directly, it does not 
' need to be built from a record set or anything like that 
set inStream=WScript.CreateObject("ADODB.Stream") 

' We call open on the stream with no arguments. This makes 
' the stream become an empty container which can be then 
' used for what operations we want 
inStream.Open 
inStream.type=adTypeBinary 

' Now we load a really BIG file. This should show if the object 
' reads the whole file at once or just attaches to the file on 
' disk 
' You must change this path to something on your computer! 
inStream.LoadFromFile(Zip7sSFX) 
dim buff1 
buff1 = inStream.Read() 
inStream.LoadFromFile(Config) 
dim buff2 
buff2= inStream.Read() 
inStream.LoadFromFile(PackName) 
dim buff3 
buff3= inStream.Read() 
' Copy the dat over to a stream for outputting 
set outStream=WScript.CreateObject("ADODB.Stream") 
outStream.Open 
outStream.type=adTypeBinary 

dim buff 
buff=buff1 & buff2 & buff3 

' Write out to a file 
outStream.Write(buff) 
' You must change this path to something on your computer! 
outStream.SaveToFile(OutputFile) 

outStream.Close() 
inStream.Close() 

End Sub 

什麼即時做錯了它抱怨的buff類型不匹配

謝謝 太平紳士

回答

6

你不能用&串接您buff S作爲他們(byte())Variants,相反,您可以直接附加到輸出流:

const adTypeText=2 
const adTypeBinary=1 

dim inStream, outStream 

set inStream=WScript.CreateObject("ADODB.Stream") 
set outStream=WScript.CreateObject("ADODB.Stream") 

inStream.Open 
inStream.type=adTypeBinary 

outStream.Open 
outStream.type=adTypeBinary 

inStream.LoadFromFile(Zip7sSFX) 
outStream.Write = inStream.Read() 

inStream.LoadFromFile(Config) 
outStream.Write = inStream.Read() 

inStream.LoadFromFile(PackName) 
outStream.Write = inStream.Read() 

outStream.SaveToFile(OutputFile) 

outStream.Close() 
inStream.Close() 
+1

不應該是'outStream.Write inStream.Read'嗎? – Helen 2011-05-18 08:18:13

+0

這樣指定應該可以正常工作 – 2011-05-18 09:32:29

+0

@Helen'Read()'是一個方法調用,我個人會這樣寫整行'調用outStream.Write(inStream.Read())'。 – Lankymart 2016-05-27 09:02:47

相關問題