Главная страница
    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.47 MB
Время: 0.062 c
2-1174362365
Jump
2007-03-20 06:46
2007.04.15
Приоритет разблокирования


2-1175150239
Alex7
2007-03-29 10:37
2007.04.15
Как дать команду Windows XP открыть заданный файл


2-1174391260
Jeeb
2007-03-20 14:47
2007.04.15
вывод операций за месяц


2-1173705002
Евгений Тарабановский
2007-03-12 16:10
2007.04.15
Как зарегистрировать новый тип файлов в Vista?


2-1174917088
Sergionio
2007-03-26 17:51
2007.04.15
combobox и список таблиц





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