Гость
Форумы / C++ [игнор отключен] [закрыт для гостей] / загрузить файл в VARIANT / 25 сообщений из 33, страница 1 из 2
09.11.2020, 23:29
    #40016677
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
как загрузить файл в переменную типа VARIANT ?
и как VARIANT скинуть в TMemoryStream&?
...
Рейтинг: 0 / 0
09.11.2020, 23:45
    #40016686
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
Mizer73,
А смысл?
Почему не auto?
...
Рейтинг: 0 / 0
10.11.2020, 01:19
    #40016701
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
Mizer73как загрузить файл в переменную типа VARIANT ?

Никак, обломись.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10.11.2020, 05:41
    #40016720
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
Dimitry Sibiryakov
Никак, обломись.
Не, как-то можно. Variant может быть типа 0x2011 - байтовый массив. Осталось только разобраться, как его проинициализировать :)
...
Рейтинг: 0 / 0
10.11.2020, 05:43
    #40016721
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
Mizer73
и как VARIANT скинуть в TMemoryStream&?
А нельзя сразу файл в TMemoryStream? Судя по названию, оно должно подходить для таких операций
...
Рейтинг: 0 / 0
10.11.2020, 08:44
    #40016733
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
Mizer73
как загрузить файл в переменную типа VARIANT ?

InitVariantFromBuffer
...
Рейтинг: 0 / 0
10.11.2020, 09:34
    #40016737
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
CEMb
Dimitry Sibiryakov
Никак, обломись.
Не, как-то можно. Variant может быть типа 0x2011 - байтовый массив. Осталось только разобраться, как его проинициализировать :)
ну есть извращения.
Есть OleVariant сразу с маршаллингом)))
...
Рейтинг: 0 / 0
10.11.2020, 23:26
    #40016984
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
CEMb
Mizer73
и как VARIANT скинуть в TMemoryStream&?
А нельзя сразу файл в TMemoryStream? Судя по названию, оно должно подходить для таких операций

сразу можно, но мне нужно пользоваться данными типа VARIANT. Разбираюсь со штукой, CADActivex, она всасывает файл DWG, или другие, типа VARIANT. Файл можно сразу в stream, но вопрос, как этот файл потом из стрима в CADActiveX всосать. этот Activex ещё общается через IStream. Мне подойдёт любой вариант, лучший, чем временно сохранять файл на диск и оттуда читать в компонент.
...
Рейтинг: 0 / 0
10.11.2020, 23:27
    #40016986
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
Dimitry Sibiryakov

Mizer73как загрузить файл в переменную типа VARIANT ?

Никак, обломись.

что, опять дохлый номер? уж, пора пользу приносить. Подключайся....
...
Рейтинг: 0 / 0
10.11.2020, 23:37
    #40016988
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
Cerebrum
Mizer73
как загрузить файл в переменную типа VARIANT ?

InitVariantFromBuffer

читаем файл в буфер, потом буфер в variant?
...
Рейтинг: 0 / 0
11.11.2020, 00:05
    #40016992
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
Mizer73
читаем файл в буфер, потом буфер в variant?

можешь сказать программно , что файл - это буфер, а потом всосать его в VARIANT
...
Рейтинг: 0 / 0
11.11.2020, 06:10
    #40017012
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
Mizer73
Разбираюсь со штукой, CADActivex, она всасывает файл DWG, или другие, типа VARIANT.
Разберись с VARIANT, как проинициализировать массив типа 0x2011 и всё. Зачем тащить какой-то экскаватор (CADActivex) в проект, если можно обойтись тяпкой?
...
Рейтинг: 0 / 0
11.11.2020, 10:18
    #40017043
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
CEMb
Mizer73
Разбираюсь со штукой, CADActivex, она всасывает файл DWG, или другие, типа VARIANT.
Разберись с VARIANT, как проинициализировать массив типа 0x2011 и всё. Зачем тащить какой-то экскаватор (CADActivex) в проект, если можно обойтись тяпкой?

CADActivex - это потребитель всех стараний, компонент, который выводит чертёж автокада. и он не способен читать файл из мемористрима. для него и все пляски с бубнами.
...
Рейтинг: 0 / 0
11.11.2020, 10:24
    #40017046
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
Mizer73
и он не способен читать файл из мемористрима
т.е. он с потоками не работает? Может тогда попробовать написать письмо разработчикам? Потому что правильные ковбои всегда делают как минимум одну сериализацию через поток, ибо это универсальный источник-приёмник данных.
...
Рейтинг: 0 / 0
11.11.2020, 13:50
    #40017144
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
CEMbт.е. он с потоками не работает?

Выше аффтар сказал, что работает, но ему не удалось осилить документацию и примеры.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.11.2020, 15:18
    #40017191
ResourceSpace
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
Mizer73
... этот Activex ещё общается через IStream. Мне подойдёт любой вариант ...

Не очень понял что где имеется сейчас и что куда надо в итоге всунуть. Где у вас эти исходные данные-то? На диске или в памяти?
Если на диске - есть такая штука как SHCreateStreamOnFile*().
TMemoryStream что за тип, у вас Билдер чтоле? Тогда имейте ввиду ещё тип TStreamAdapter.
...
Рейтинг: 0 / 0
11.11.2020, 16:39
    #40017248
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
CEMb
Mizer73
и он не способен читать файл из мемористрима
т.е. он с потоками не работает? Может тогда попробовать написать письмо разработчикам? Потому что правильные ковбои всегда делают как минимум одну сериализацию через поток, ибо это универсальный источник-приёмник данных.


разработчик ответил следующее:
Метод LoadFromStream может использовать один из следующих форматов:
1. нативный объект .NET Stream
2. вариант массив байт
3. IStream
4. строка - имя файла

сам LoadFromStream в потреблении имеет tagVariant.
...
Рейтинг: 0 / 0
11.11.2020, 16:42
    #40017251
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
ResourceSpace
Mizer73
... этот Activex ещё общается через IStream. Мне подойдёт любой вариант ...

Не очень понял что где имеется сейчас и что куда надо в итоге всунуть. Где у вас эти исходные данные-то? На диске или в памяти?
Если на диске - есть такая штука как SHCreateStreamOnFile*().
TMemoryStream что за тип, у вас Билдер чтоле? Тогда имейте ввиду ещё тип TStreamAdapter.


есть файл на диске формата DWG. есть компонент CADActiveX, который читает с диска файл и визуализирует.
мне нужно этот прочитанный 1 раз файл хранить в базе данных и визуализировать через этот компонент , не обращаясь более к файлу на диске.

Билдер.
...
Рейтинг: 0 / 0
11.11.2020, 16:47
    #40017258
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
Mizer73разработчик ответил следующее:
Метод LoadFromStream может использовать один из следующих форматов:
1. нативный объект .NET Stream
2. вариант массив байт
3. IStream
4. строка - имя файла

Ты не пишешь на .NET и тебе надо грузить данные не из файла, так что на выбор остаются
варианты 2 и 3. Второй уже предлагали выше. Для третьего таки надо уточнить какой именно
из IStream имеется ввиду, а потом реализовать его.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.11.2020, 17:51
    #40017294
ResourceSpace
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
Эх, оказалось у меня полностью слетел Билдер... Я им почти не пользовался, можно сказать второй раз пригодился бы, а облом...
Что получится если примерно так?:
Код: plaintext
1.
2.
3.
4.
5.
TMemoryStream * memoryStream = new TMemoryStream();
memoryStream.LoadFromFile( ... );
memoryStream->Seek(0, 0);
_di_IStream streamAdapter(*(new TStreamAdapter(memoryStream, soReference))); // или DelphiInterface<IStream> ... // или TComInterface<IStream> ... // или CComPtr<IStream> ...
activeXCAD.LoadFromStream(streamAdapter);
...
Рейтинг: 0 / 0
11.11.2020, 18:00
    #40017299
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
ResourceSpace
Эх, оказалось у меня полностью слетел Билдер... Я им почти не пользовался, можно сказать второй раз пригодился бы, а облом...
Что получится если примерно так?:
Код: plaintext
1.
2.
3.
4.
5.
TMemoryStream * memoryStream = new TMemoryStream();
memoryStream.LoadFromFile( ... );
memoryStream->Seek(0, 0);
_di_IStream streamAdapter(*(new TStreamAdapter(memoryStream, soReference))); // или DelphiInterface<IStream> ... // или TComInterface<IStream> ... // или CComPtr<IStream> ...
activeXCAD.LoadFromStream(streamAdapter);



[bcc32 Error] Extr_Profil.cpp(1114): E2034 Cannot convert '_di_IStream' to 'tagVARIANT'
Full parser context
Extr_Profil.cpp(1106): parsing: void _fastcall TExtr_Profiles::DWG_LoadClick(TObject *)
...
Рейтинг: 0 / 0
11.11.2020, 18:25
    #40017306
ResourceSpace
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
хм...
Код: plaintext
1.
2.
--//--
activeXCAD.LoadFromStream(Variant(streamAdapter));

или
Код: plaintext
1.
2.
3.
--//--
Variant streamAsVariant = Variant(streamAdapter);
activeXCAD.LoadFromStream(streamAsVariant);

?
...
Рейтинг: 0 / 0
11.11.2020, 18:27
    #40017309
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
ResourceSpace
хм...
Код: plaintext
1.
2.
--//--
activeXCAD.LoadFromStream(Variant(streamAdapter));


или
Код: plaintext
1.
2.
3.
--//--
Variant streamAsVariant = Variant(streamAdapter);
activeXCAD.LoadFromStream(streamAsVariant);


?
монопесуально. Если тип совпадает с подсказкой в IDE (нет приведения)
...
Рейтинг: 0 / 0
11.11.2020, 18:46
    #40017320
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
ResourceSpaceЧто получится если примерно так?:

От пихания в программу случайного кода обычно получается случайная хрень.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11.11.2020, 19:03
    #40017327
Mizer73
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загрузить файл в VARIANT
PetroNotC Sharp
ResourceSpace
хм...
Код: plaintext
1.
2.
--//--
activeXCAD.LoadFromStream(Variant(streamAdapter));


или
Код: plaintext
1.
2.
3.
--//--
Variant streamAsVariant = Variant(streamAdapter);
activeXCAD.LoadFromStream(streamAsVariant);


?
монопесуально. Если тип совпадает с подсказкой в IDE (нет приведения)


гениально!!!

то, что надо - оно работает!!!
Код: plaintext
1.
LoadFromStream(Variant(streamAdapter));
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / загрузить файл в VARIANT / 25 сообщений из 33, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]