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

Вниз

TFileStream - чтение в динамический массив   Найти похожие ветки 

 
White Barsik   (2007-03-21 22:14) [0]

есть динамический массив
aaa : array of byte;
выделяем память под него
SetLength(aaa, 500);

Есть экземпляр класса TFileStream

zzz : TFileStream;
...
zzz := TFileStream.create("c:\test.txt");

Попытка прочитать в массив из потока не приводит ни к чему.
zzz.Read(aaa, 500) ;

Про позиционирование и пр. Я знаю и просто для ясности эти моменты опустил. Что характерно, если массив статический, то чтение в него прходит без запинки. При чтении в динамический счетчик прочитанного показывает что все верно - прочитано столько сколько надо  - но при этом ни чего в массив не попадает. В чем я не прав?


 
begin...end ©   (2007-03-21 22:15) [1]

zzz.Read(aaa[0], 500)


 
White Barsik   (2007-03-21 23:24) [2]

Разъясните подробно, голова устала и уже кипит - почему так?


 
Джо ©   (2007-03-21 23:29) [3]

> [2] White Barsik   (21.03.07 23:24)
> Разъясните подробно, голова устала и уже кипит - почему
> так?

Потому, что писать в переменную, в которой хранится адрес динамического массива — совсем ни к чему. Запись нужно производить начиная с первого (т.е., 0) элемента этого массива.


 
White Barsik   (2007-03-21 23:32) [4]

Спасибо. Я все понял. Вроде сколько лет работаю, а иногда элементарные вещи забываю


 
Anatoly Podgoretsky ©   (2007-03-21 23:33) [5]

> White Barsik  (21.03.2007 23:24:02)  [2]

ааа это указатель на сам массив.


 
Джо ©   (2007-03-21 23:37) [6]

Пардон, не «адрес динамического массива», а адрес самой переменной, ибо дин. массивы — неявные указатели. С самого голова чумная, туманно изъясняюсь, сорри


 
Германн ©   (2007-03-22 01:58) [7]


> Джо ©   (21.03.07 23:37) [6]
>
> Пардон, не «адрес динамического массива», а адрес самой
> переменной, ибо дин. массивы — неявные указатели. С самого
> голова чумная, туманно изъясняюсь, сорри

С самого чего? Серёг, не пугай так пож-ста! :)


 
MikePetrichenko ©   (2007-03-22 02:00) [8]


> zzz.Read(aaa[0], 500)

А вот так прикольнее

zzz.Read(PChar(aaa)^, 500)


 
Джо ©   (2007-03-22 02:07) [9]

> [7] Германн ©   (22.03.07 01:58)
>
> > Джо ©   (21.03.07 23:37) [6]
> >
> > Пардон, не «адрес динамического массива», а адрес самой
>
> > переменной, ибо дин. массивы — неявные указатели. С самого
>
> > голова чумная, туманно изъясняюсь, сорри
>
> С самого чего? Серёг, не пугай так пож-ста! :)

Ну, «у самого», у... :)


 
Германн ©   (2007-03-22 02:19) [10]


> Ну, «у самого», у... :)
>

Дык ведь "два этажа, вверх, налево" :)



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

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

Наверх




Память: 0.49 MB
Время: 0.053 c
15-1173969377
Влад
2007-03-15 17:36
2007.04.15
Библиотека аналог XDelta


2-1174912697
Mechanikus
2007-03-26 16:38
2007.04.15
minimize - maximize


15-1174482010
Vas
2007-03-21 16:00
2007.04.15
Где можна скачать TIB_Grig


15-1174638171
Тема
2007-03-23 11:22
2007.04.15
Как мне запихать бинарный образ в exe?


5-1151409437
lookin
2006-06-27 15:57
2007.04.15
Специфический редактор свойства