Я столкнулся с проблемой при попытке открыть файл с URL-адреса с помощью ADODB, а затем использовать его как строковый поток. По сути, проблема, с которой я столкнулся, - это почти дубликат этого вопроса здесь:
преобразовать двоичный поток ADODB в строку vba
За исключением того, что Я должен использовать поток ADODB для работы с контентом позже. Поэтому полностью пропускать ADODB не вариант, как в ответе в другом топи c. Прямо сейчас я делаю 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...)
Can Вы помогаете мне обойтись без ненужного процесса сохранения и загрузки файлов?
Спасибо!