Главная страница
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.05 c
2-1174637885
Konst5719
2007-03-23 11:18
2007.04.15
DeleteString


15-1174403581
Сало
2007-03-20 18:13
2007.04.15
Как определить, когда коєффициент корреляции значим?


2-1174954591
Wood
2007-03-27 04:16
2007.04.15
TRichEdit, свойства текста..


2-1174620688
delphim
2007-03-23 06:31
2007.04.15
разделитель целой и дробной частей


2-1174148737
MIV
2007-03-17 19:25
2007.04.15
Заполнение базы данных из приложения