Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.27;
Скачать: CL | DM;

Вниз

стандартный способ получить OleVariant в виде бинарных данных   Найти похожие ветки 

 
yaJohn ©   (2003-02-15 15:26) [0]

Существует ли стандартный способ получить OleVariant в виде бинарных данных, или, например, сохранить в потоке. И само собой потом прочитать обратно.
OleVariant может быть любым, массив втч. Случай интерфейса в варианте не рассматривается. Наиболее интересно - массив массивов.


 
asmith   (2003-02-15 15:30) [1]

function VarToDataPacket(const V: OleVariant): PSafeArray;
var
Size : integer;
begin
if VarIsNull(V) then
Result := nil
else
begin
Size := VarArrayHighBound(V, 1);
if not (VarIsArray(V) and (Size > 0)) then
raise EFOpenError.Create("SafeArray convert error");
Result := tagVARIANT(V).PArray;
end;
end;

procedure DataPacketToStream(const DataPacket : PSafeArray; Stream : TStream);
var
Size : Integer;
DataPtr : Pointer;
begin
if Assigned(DataPacket) then
begin
OleCheck(SafeArrayGetUBound(DataPacket, 1, Size));
Inc(Size);
Stream.Position := 0;
SafeArrayAccessData(DataPacket, DataPtr);
try
Stream.Write(DataPtr^, Size);
finally
SafeArrayUnAccessData(DataPacket);
end;
end;
end;



Страницы: 1 вся ветка

Текущий архив: 2003.02.27;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.018 c
1-87373
radion
2003-02-14 14:26
2003.02.27
Как написать чтоб Делпхи считал гласные и согласные буквы?


3-87345
Calm
2003-02-11 10:38
2003.02.27
Можно ли возвращать из ХП строку, содержащую символ #13?


7-87716
Skeld
2002-12-27 12:43
2003.02.27
Шрифт матричного принтера под DOS ....


14-87678
Zhenka
2003-02-10 19:39
2003.02.27
Что значит эта надпИсь


6-87602
Григорий Армутхаров
2003-01-11 02:50
2003.02.27
Проблема с отправкой E-Mail