Форум: "Начинающим";
Текущий архив: 2007.04.15;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.048 c