Com-функция возвращает массив >32k

  • Автор темы D!m@n
  • Дата начала
D

D!m@n

#1
Мужики, помогите...
Функция из COM-объекта возвращает массив размером >32K, мне его надо принять, а - никак...
Ошибка Array size exceeds maximum limit.
Код:
Dim objStream As Variant
Dim bBuffer As Variant

Set objStream = CreateObject("ADODB.Stream")

Call objStream.Open()
objStream.Type = 1 ' adTypeBinary
Call objStream.LoadFromFile(sFilename)
bBuffer = objStream.Read(-1) 'adReadAll ' <-- здесь происходит ошибка
Call objStream.Close()
Есть какие-нибудь варианты (пусть даже самые извращенные :eek: ) или вообще труба?
Заранее спасибо!
 
D

D!m@n

#3
Да нет, NotesStream ничем не лучше... Да и дело даже не в ADODB.Stream, просто давно хотелось эту проблемку как-то решить...
XMLHttpRequest, например, тоже массив >32K может вернуть, а чем его заменишь?..
Конечно, можно зачитать файл частями и насовать в List, но, увы, потом эти данные надо отдать как аргумент в другую COM-функцию как целый массив, а List она не примет...

P.S. Спасибо за участие!
 
R

rins

#4
Да нет, NotesStream ничем не лучше... Да и дело даже не в ADODB.Stream, просто давно хотелось эту проблемку как-то решить...
XMLHttpRequest, например, тоже массив >32K может вернуть, а чем его заменишь?..
Конечно, можно зачитать файл частями и насовать в List, но, увы, потом эти данные надо отдать как аргумент в другую COM-функцию как целый массив, а List она не примет...
P.S. Спасибо за участие!
ADODB.Stream не могу пока сказать, а XMLHttpRequest замечательно меняется на Java аналог с соотв. LS2J врапером.
 
D

D!m@n

#5
Да можно и без враппера на Java агентик сварганить... Но речь-то про LS.
Представьте, что вместо XMLHttpRequest - самописный и незаменимый COM-класс...