Главная страница
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.02 c
14-65579
Anatoly Podgoretsky
2003-10-02 13:17
2003.10.20
Подробности по мылу


1-65461
Oleg__
2003-10-09 09:55
2003.10.20
Странная ошибка


14-65616
iNew
2003-09-30 16:57
2003.10.20
Про таблицу размещения файлов.


3-65374
Митяй
2003-09-28 17:24
2003.10.20
Строка в SQL


1-65472
webpauk
2003-10-08 17:10
2003.10.20
PopupMenu Height