2016-12-15 5 views
-3

私のローカルマシンからzipファイルをbase64に変換する必要があります。UFTでvbsを使用してzipファイルをbase64に変換する

  1. /プレゼント64列

  2. コピー次の列にベース64値を基にExcelシートの行

  3. からパス名を読むパス(zipファイル)にファイルを変換しますExcelシートで。

試してみましたが、うまくいきませんでした。

現在のコード:行inStream.type = TypeBinary

Dim inByteArray, base64Encoded 

inByteArray = readBytes("F:path/file.zip") 
base64Encoded = encodeBase64(inByteArray) 

Private Function readBytes(file) 
    Dim inStream 
    ' ADODB stream object used 
    Set inStream = CreateObject("ADODB.Stream") 
    ' open with no arguments makes the stream an empty container 
    inStream.Open 
    inStream.Type = TypeBinary 
    inStream.LoadFromFile(file) 
    readBytes = inStream.Read() 
End Function 

Private Function encodeBase64(bytes) 
    Dim DM, EL 
    Set DM = CreateObject("Microsoft.XMLDOM") 
    ' Create temporary node with Base64 data type 
    Set EL = DM.CreateElement("tmp") 
    EL.DataType = "bin.base64" 
    ' Set bytes, get encoded String 
    EL.NodeTypedValue = bytes 
    encodeBase64 = EL.Text 
End Function 

エラー1:

引数が間違った型であるが、許容範囲外である、または競合しています。ラインreadBytes = inStream.Read()

エラー2:

操作は、このコンテキストで許可されていません。

エラー3行EL.NodeTypedValue = bytesに:

型の不一致

答えて

2

あなたはhereからコードを得たように見えますが、これを追加する

Const TypeBinary = 1 

が含まれていませんでした"引数が間違った型の..."エラーを回避します。

おそらくコピーはあなたの他の問題も解決します。そのため

0

感謝:)さらに

Excelシートについては、読んで、私は自分の目標を達成する上で助けた以下のコードを使用書きます。ありがとうございます

Set objExcel = CreateObject("Excel.Application") 
Set objWorkbook = objExcel.Workbooks.Open("F:\path") 

Set ws = objWorkbook.Sheets("Sheet1") 
Set ws2 = objWorkbook.Sheets("Sheet2") 
rowcount = ws.usedrange.rows.count 

for j = 1 to rowcount 

       fieldvalue = ws.cells(j,1) 


       inByteArray = readBytes(fieldvalue) 
       base64Encoded = encodeBase64(inByteArray) 
       ws2.cells(j,1) = base64Encoded 
next