Вниз
Скачать: CL | DM;

Вопрос по variant   Найти похожие ветки 

← →
l2t_guest   (2003-10-08 17:21) [0]

var row: array of widestring;

for i:=0 to RowSize-1 do begin
row[i]:=Trim(VarToStr(V[Sidx+i]));
end;

вызов этйо конструкции для RowSize=8
в цикле 241 раз выполняеться почти 4 секунды на P4-1800

почему ? еслть лди какие то другие методы быстрого преобразования Variant массива в обычный ?


← →
Skier ©   (2003-10-08 17:24) [1]

VarArrayLock
VarArrayUnlock


← →
l2t_guest   (2003-10-08 17:37) [2]

спасибо, но что делать если контент массива неизвестен?
т е в нем вперемешку идут стринги , числа и т п ?

PS массив - часть структуры которую вернул вызов метода Com объекта


← →
Skier ©   (2003-10-08 17:39) [3]


> но что делать если контент массива неизвестен?

Тогда каюк ! :)
Только VarToStr


← →
l2t_guest   (2003-10-08 19:06) [4]

Везеде есть красивые примеры работы с байт массивами, а не подскажешь как работать с variant массовом - строк ?
т е
var vrecs:variant; s:Array of strings; Datat: Pointer ?

Data:=varArrayLock(vrecs);

как теперь напрямую выцепить строки из Pointera ?
я прредполагал что это массив ссылок на PWideChar да не тут то было
..


← →
l2t_guest   (2003-10-08 20:17) [5]

решил я сию проблему: для тех кому все же интересно :)

for i:=0 to len do
row[i]:=PWideChar(PVarData(@(TByteArray(P^)[(i) shl 4]))^.RawData[2])

это если Data ссылаеться на лоченный массив String variant ов (которые на самом деле OleStr (BSTR)

пришлось чиать исходники RTL



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
4-65682
Aleksandr
2003-08-01 17:11
2003.10.20
Объясните мне работу с TEvent ... и WaitForSingleObject


14-65641
Help
2003-10-02 15:24
2003.10.20
Точка входа в процедуру не найдена


14-65596
blackweber
2003-10-01 12:24
2003.10.20
win 2000 server registry


3-65380
The X
2003-09-27 17:44
2003.10.20
Корректная работа с паролями для Парадокс


3-65381
Sam Stone
2003-09-28 17:36
2003.10.20
Копия записей




   Наверх