Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.20;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.016 c
1-65416
Islander
2003-10-07 20:43
2003.10.20
Еще немного про метод free и выход из процедуры


1-65496
Vadim S
2003-10-08 16:07
2003.10.20
Case переменные значения, как условия


4-65662
sucer
2003-08-13 20:55
2003.10.20
Как узнать что программу пытаються запустить повторно?


14-65611
Элина
2003-10-01 10:43
2003.10.20
ИМЯ ПРИНТЕРА


7-65652
Zevsus
2003-08-04 12:55
2003.10.20
system service не даёт нормально перегрузить машину