Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.17;
Скачать: CL | DM;

Вниз

Про дин масив ( продолжение GIL).   Найти похожие ветки 

 
Демонов Е.В. ©   (2003-03-04 09:03) [0]

А вот что в голову пришло а корректно ли делать так
var a:Array of sometype;

BlockRead(f,a[0],Length(a)*SizeOf(Integer)) - где а дин масив.

т.е всегда ли @a[i]=Ptr(iNTEGER(@a[0])+i*sizeof(sometype)).


 
Демонов Е.В. ©   (2003-03-04 09:38) [1]

>>BlockRead(f,a[0],Length(a)*SizeOf(Integer))
я имел ввиду
BlockRead(f,a[0],Length(a)*SizeOf( sometype))


 
MBo ©   (2003-03-04 10:02) [2]

да, всегда, иначе бы и смысла никакого в этих массивах не было


 
Paxer   (2003-03-04 11:17) [3]

А вот и не всегда...
Я когда-то имел большие проблемы со считыванием с файла и записью в файл из массивов подобного типа (у меня массивы записей). Условие @a[i]=Ptr(iNTEGER(@a[0])+i*sizeof(sometype)) не срабатывало, возможно от того, что я в ходе работы несколько раз менял размеры массива. Может я чего и неправильно делал, но я бы на слово не верил.


 
REA ©   (2003-03-04 12:43) [4]

Когда меняешь размер массива, то указатели на его содержимое (@a[i]) зачастую теряются, поэтому обращаться лучше по индексам или искать указатели после изменения размера. А так вроде должно работать.


 
MBo ©   (2003-03-04 13:29) [5]

>Paxer
У тебя была ошибка в 17 строке


 
theodor_iv   (2003-03-04 17:53) [6]

Действительно, условие должно выполняться всегда (см. Delphi Language Guide / Memory Management / Dynamic array types). А вот такой BlockRead для многих типов не имеет смысла (например, для sometype = long string и т.п.)



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

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

Наверх




Память: 0.47 MB
Время: 0.022 c
6-54139
dimich1978
2003-01-25 15:15
2003.03.17
Передача текста через Tserversocket & TclientSocket ПЛИЗЗ ХЕЛП!!!


3-53938
stoper
2003-02-24 13:17
2003.03.17
QuickRep


9-53827
Asteroid
2002-10-08 00:46
2003.03.17
Потеря поверхности


3-53921
Toshanius
2003-02-26 12:13
2003.03.17
Как в созданной мною ф-ции...


14-54179
Шишкин Илья
2003-03-01 18:58
2003.03.17
Кто-нибудь тут умеет смотреть 3D-картинки?