ОБСУЖДЕНИЕ

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

4 ответов 4,4 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Мужики, помогите...
Функция из 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()

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

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

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

Статистика тем

Создано
D!m@n,
Последний ответ от
D!m@n,
Ответы
4
Просмотры
4 358