首页 > 解决方案 > ADODB Stream 将二进制转换为字符串

问题描述

尝试使用 ADODB 从 URL 打开文件,然后将其用作字符串流时,我遇到了问题。基本上,我面临的问题几乎是这个问题的重复:

将 ADODB 二进制流转换为字符串 vba

除了我以后必须使用 ADODB 流来处理内容。因此,完全跳过 ADODB 不是一种选择,就像在另一个主题的答案中一样。现在,我正在做的是发出 HTTP GET 请求,使用二进制流将其保存为文件,然后使用文本流加载相同的文件。这工作得很好,但必须有一种方法可以跳过保存加载部分并使其直接工作。

这是我到目前为止的代码:

Dim myURL As String
myURL = "https://xyz.xyz/xyz.csv"
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
WinHttpReq.Open "GET", myURL, False
WinHttpReq.Send

Dim objStream, strData
Dim leftcellstarttemp As Variant, rightcellstarttemp As Variant, leftcellendtemp As Variant, rightcellendtemp As Variant, r As Long, line As String, dtStr As String, mlValue As String, dtArr() As String

myURL = WinHttpReq.ResponseBody
If WinHttpReq.Status = 200 Then
    Set oStream = CreateObject("ADODB.Stream")
    oStream.Open
    oStream.Type = 1
    oStream.Write WinHttpReq.ResponseBody
    oStream.SaveToFile "C:\Temp\file1.csv", 2
    oStream.Close

    Set objStream = CreateObject("ADODB.Stream")
    objStream.Charset = "utf-8"
    objStream.Type = 2
    objStream.Open
    objStream.LoadFromFile "C:\Temp\file1.csv"
    line = objStream.ReadText(-2)
End If

Do Until objStream.EOS
(and so on, and so forth...)

你能帮我解决这个不必要的文件保存加载过程吗?

谢谢!

标签: excelvbaadodb

解决方案


推荐阅读