Главная страница
    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.048 c
15-1174580802
eXPell
2007-03-22 19:26
2007.04.15
Имхо, простой вопрос:(


15-1174470510
boriskb
2007-03-21 12:48
2007.04.15
Из истории советской цензуры


1-1171611244
DelphiLexx
2007-02-16 10:34
2007.04.15
Изменить заголовок окна при запуске bat-файлы


2-1174975661
Alex_C
2007-03-27 10:07
2007.04.15
Подскажите консольный текстовый редактор


2-1175078148
Леонид
2007-03-28 14:35
2007.04.15
Математическое выражение





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский