Главная страница
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.022 c
1-65454
sagchat
2003-10-06 17:41
2003.10.20
Как запретить изменять размер формы?


14-65612
Layner
2003-10-01 08:22
2003.10.20
Затопили потолок, подскажите юр. ответы, на кого подать в суд.


1-65425
oleg_art
2003-10-07 17:53
2003.10.20
Редактор свойств


3-65355
Слэш
2003-09-29 15:31
2003.10.20
Как печатать из FastReport на 2-х стороннем принтере


14-65575
Manfred
2003-10-02 15:42
2003.10.20
Лицензионные копии Delphi: сколько их?