Форум: "Основная";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
ВнизВопрос по 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c