0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 224

Как вытащить данные из ole объекта?

06.06.2017, 15:53. Показов 4760. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в каждой стоке таблицы зашит объект ole (рисунок формата bmp), как можно можно сохранить этот рисунок на жесткий диск в виде файла формата bmp
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.06.2017, 15:53
Ответы с готовыми решениями:

Как вытащить картинку .jpg, которая хранится в БД Access в формате 'объект OLE' обратно в файл?
Как вытащить картинку .jpg, которая хранится в БД Access в формате 'объект OLE' обратно в файл?

Работа с полями. Как вытащить данные из полей
Был исходный документ ворд состоящий из 1000 изображений. Каждая картинка была подписана с помощью автоматической нумерации. Затем не знаю,...

Нет ответа от OLE объекта
работаю с Word 2010 через GreateObject(Word.Application) на одних ПК работает нормально а на одном макрос зависает(ждет ответа), а...

4
 Аватар для kalbasiatka
416 / 263 / 83
Регистрация: 27.10.2012
Сообщений: 861
06.06.2017, 16:58
Цитата Сообщение от ramzes2012 Посмотреть сообщение
вытащить данные и ole объекта
Если надо какие-то данные из объекта вытащить, то зачем его сохранять?
Цитата Сообщение от ramzes2012 Посмотреть сообщение
как можно можно сохранить
Макросом!
Проходим по всем объектам листа, если то что надо, то сохраняем в папку.
0
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 224
07.06.2017, 08:05  [ТС]
макрос не поможет, данные записаны в ole объекты в акцессе 2007
0
189 / 187 / 31
Регистрация: 11.10.2016
Сообщений: 606
07.06.2017, 10:40
ramzes2012, выложите свою таблицу, можно не полностью. Может быть, получится вам помочь
0
0 / 0 / 0
Регистрация: 22.12.2011
Сообщений: 224
09.06.2017, 08:35  [ТС]
Я разобрался, там оказалось просто, в поле, где находится изображение (ole объект), можно было просто вытягивать данные через свойство поля на форме (в котором отображалась картинка) value примерно это выглядит так
dim a as variant
a=me.форма.pict.value

а потом просто загоняем все это в файл, с расширением bmp. Теперь появилась другая проблема, файл не выдает изображение, почитав чуток про структуру бмп файла, в шестнадцатеричном редакторе надо было просто удалить все те байты, которые идут до 424d (возможно чуток путаю), а потом сохранить файл, и файл открывается нормально, изображение видно, только веса больше, чем в оригинале, может дело в жатии или что то подобное.

теперь надо следующее открыв бинарный файл найти эти 2 байта и от них удалить влево все остальные байты или удалить байты (при условии, что показатель файла находится в начале файла) до нужных 2 байт
вот как можно удалить байты из файла в vba и как можно найти необходимые 2 байта

Добавлено через 18 часов 46 минут
Разобрался, и с этой проблемой, может кому понадобится:
открываем файл через open, закидываем туда содержимое value и закрываем его, потом открываем еще раз этот файл, создаем еще один файл, куда будем заливать основное содержимое. теперь считываем с помощью get первый файл, пока не натыкаемся на значение переменной (переменная должна быть типа byte, в условии пишем, hex(переменная1)=42 и hex(переменная2)=4d и от этой позиции начинаем запись основного файла. позже залью код (просто сейчас на работе)

Добавлено через 22 часа 7 минут
вот код
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
END
Attribute VB_Name = "Form_Таблица1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Compare Database
Option Explicit
 
Private Sub Кнопка4_Click()
Dim контейнер As Variant
Dim kol As Integer
Dim b As Byte
Dim d As Byte
Dim i, j  As Long
Dim MyFile, bmp As Integer
   For kol = 1 To 2
      контейнер = Me.image.Value
      MyFile = FreeFile
      Open ("d:\myb.bmp") For Binary As #MyFile
      Put #MyFile, 1, контейнер
      Close #MyFile
      Open ("d:\myb.bmp") For Binary As #MyFile
      i = 1
    Do Until EOF(MyFile)
          Get #MyFile, i, b
          Get #MyFile, i + 1, d
          If (Hex(b) = "42") And (Hex(d) = "4D") Then
              bmp = FreeFile
              Open ("d:" & kol & ".bmp") For Binary As #bmp
              j = i
              i = 1
              Do Until EOF(MyFile)
                  Get #MyFile, j, b
                  Put #bmp, i, b
                  i = i + 1
                  j = j + 1
              Loop
            Close MyFile
            Close bmp
            Exit Do
          End If
          i = i + 1
      Loop
     DoCmd.GoToRecord acDataForm, "таблица1", acNext
Next
    MsgBox "готово"
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2017, 08:35
Помогаю со студенческими работами здесь

Как вытащить данные о контрагентов Ole C# .net
Как можно вытащить список контрагентов вместе с данными - средствами OLE ? ИНН, ЕИН, Адрес, Серия сертификата, Номер сертификата, Дата...

Как вытащить данные из объекта?
Доброго времени суток! Есть структура граф. Есть два представления Л и М граф. В конструкторе графа создается объект абстрактного класса,...

Вытащить данные из объекта набора данных на макет в СКД
Всем привет! Столкнулся с СКД в первый раз и не совсем разобрался. Суть в следующем: есть внешний отчет, который написан с использованием...

Как вытащить из свойства fields recordset вытащить данные в массив
Как вытащить из свойства fields recordset вытащить данные в массив ассоциативный , подскажите плиз

Почему закрывается окно объекта OLE при открытии другого объекта?
Добрый день! Есть таблица, одно из полей которой - Поле объекта OLE. При двойном нажатии открывается окно приложения (в данном случае...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7 Чтобы решить задачу, использовал интернет: поисковики Google и Yandex, а также подсказки Deep Seek. Как оказалось, чтобы создать. . .
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru