Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.074 c
2-1340362171
xss22
2012-06-22 14:49
2013.03.22
при переходе с D7 на XE


15-1334261351
К
2012-04-13 00:09
2013.03.22
Поменять курсор


15-1339946385
Artem
2012-06-17 19:19
2013.03.22
Откуда-то появился Norton Internet Security


15-1328614093
Denissoft
2012-02-07 15:28
2013.03.22
Вопрос Насчет сайта!


15-1341568317
AV
2012-07-06 13:51
2013.03.22
Шкаф-кровать. Идея :)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский