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

Тема в разделе "Lotus - Программирование", создана пользователем D!m@n, 22 окт 2008.

  1. D!m@n

    D!m@n Гость

    Мужики, помогите...
    Функция из COM-объекта возвращает массив размером >32K, мне его надо принять, а - никак...
    Ошибка Array size exceeds maximum limit.
    Код (Text):
    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: ) или вообще труба?
    Заранее спасибо!
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    может ... NotesStream class ?
     
  3. D!m@n

    D!m@n Гость

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

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

    rins Гость

    ADODB.Stream не могу пока сказать, а XMLHttpRequest замечательно меняется на Java аналог с соотв. LS2J врапером.
     
  5. D!m@n

    D!m@n Гость

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

Поделиться этой страницей