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

Вниз

Упаковка массива рекордов в олевариант   Найти похожие ветки 

 
harisma ©   (2011-02-28 12:48) [0]

Есть массив рекордов определенной длины. Его надо запаковать в ОлеВариант для дальнейшей передачи в качестве параметра в некий интерфейс, а там его распаковать. Как это сделать?
Спасибо.


 
Сергей М. ©   (2011-02-28 12:59) [1]

рекорды содежат поля с типами данных с управляемым временем жизни ?


 
clickmaker ©   (2011-02-28 13:02) [2]

обычный вариантный массив из вариантов
VarArrayCreate etc


 
harisma ©   (2011-02-28 13:10) [3]

Рекорды содержат три поля. 2 поля  - стринги размером 32 символа (string[32]), третье поле - один из элементов сета.


 
Сергей М. ©   (2011-02-28 16:57) [4]

Тогда можно задать вариантному массиву (см. [2]) нужную размерность, получить прямой доступ к его буферу (VarArrayLock) и разом скопировать в буфер весь массив (CopyMemory)

На принимающей стороне восстановление в том же порядке


 
harisma ©   (2011-02-28 17:39) [5]

Это уже близко к истине ([4]). А пример кода можно?


 
_Юрий   (2011-02-28 21:01) [6]


> А пример кода можно?


function TStreamHelper.GetAsVariant: Variant;
var
 P : Pointer;
begin
 Result:=VarArrayCreate([0, Size - 1], VarByte);
 P:=VarArrayLock(Result);
 try
   Position:=0;
   ReadBuffer(P^, Size);
 finally
   VarArrayUnLock(Result);
 end;
end;


 
Amoeba_   (2011-03-01 00:29) [7]


> 2 поля  - стринги размером 32 символа (string[32]),

Как-то очень плохо сие согласуется с идеологией COM, если
> запаковать в ОлеВариант для дальнейшей передачи в качестве
> параметра в некий интерфейс


 
harisma ©   (2011-03-10 14:13) [8]


> Как-то очень плохо сие согласуется с идеологией COM, если

Чем же оно плохо согласуется? Вроде как раз в таком варианте (строки фиксированной длинны) и должно быть в отличии от динамических строк


 
Amoeba_   (2011-03-10 17:54) [9]


> harisma ©   (10.03.11 14:13) [8]
>
>
> > Как-то очень плохо сие согласуется с идеологией COM, если
>
> Чем же оно плохо согласуется? Вроде как раз в таком варианте
> (строки фиксированной длинны) и должно быть в отличии от
> динамических строк
> <

А тем, что строки фиксированной длинны это чисто борландовская фича.



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

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

Наверх




Память: 0.46 MB
Время: 0.089 c
15-1339074806
Дмитрий С
2012-06-07 17:13
2013.03.22
Задача о деньгах.


2-1329302821
LDV
2012-02-15 14:47
2013.03.22
добавление/удаление в/из TList


15-1336837860
dmk
2012-05-12 19:51
2013.03.22
Отпуск


15-1346509657
Артём
2012-09-01 18:27
2013.03.22
Нужен просто совет!


2-1333011642
Вася
2012-03-29 13:00
2013.03.22
При нажатии правой кнопки мыши на DBgrid не меняется активная стр





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский