Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.043 c
2-1175086004
Alll
2007-03-28 16:46
2007.04.15
Рисование линий на TImage


2-1174879808
sergeyxxx
2007-03-26 07:30
2007.04.15
Работа с принтером


2-1174678650
Селезин
2007-03-23 22:37
2007.04.15
Разделитель целой и дробной части числа


15-1174565419
kerell
2007-03-22 15:10
2007.04.15
Delphi программист (Москва) 2000$


9-1147682659
Ландграф Павел
2006-05-15 12:44
2007.04.15
Сценарий и карты для 2D RPG (aka Allods)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский