Мое почтение, джентльмены!
Cериализация и десериализация типа данных , используемый в COM, VB, VBA, C++ и т.д.
Поддерживаются базовые типы и массивы. Объекты не сериализуются.
В некоторой степени - аналог
Использование простое, как обычная функция (предварительно подключив или открыв надстройку по ссылке чуть ниже и COM в автоматическом/ручном режиме):
Особенности:
1. Cериализация в байтовый массив
2. Размер массива не может превышать 2^32 элементов (около 4Гбайт). Это ограничение самого COM - массива. В С++ (в другом контейнере) сохранял файлы боле 4,5 Гб.
3. Реализован похожий механизм (), как и в Excel, для оптимизации размера одинаковых строк.
Надстройка
Cериализация и десериализация типа данных , используемый в COM, VB, VBA, C++ и т.д.
Поддерживаются базовые типы и массивы. Объекты не сериализуются.
В некоторой степени - аналог
Использование простое, как обычная функция (предварительно подключив или открыв надстройку по ссылке чуть ниже и COM в автоматическом/ручном режиме):
| Код |
|---|
Sub TestVariantSerialization()
'Dim bVBA As New BedvitCOM.VBA 'раннее связывание
Dim bVBA As Object: Set bVBA = CreateObject("BedvitCOM.VBA") 'позднее связывание
Dim t, arr, byteArr
Range("A:B").value2 = "Tst Srl ёя"
t = Timer
byteArr = bVBA.VariantSerialization(Range("A:B").value2)
arr = bVBA.VariantDeserialization(byteArr)
Debug.Print "VariantSerialization+VariantDeserialization " & Timer - t & " s."
Range("D:E").value2 = arr
End Sub |
Особенности:
1. Cериализация в байтовый массив
2. Размер массива не может превышать 2^32 элементов (около 4Гбайт). Это ограничение самого COM - массива. В С++ (в другом контейнере) сохранял файлы боле 4,5 Гб.
3. Реализован похожий механизм (), как и в Excel, для оптимизации размера одинаковых строк.
Надстройка
Изменено: - 19.12.2023 13:14:22
«Бритва Оккама» или «Принцип Калашникова»?