![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение из файла в динамический массив. [D6, Win2k]
Aris © (2002-02-26 13:16:00)Добрый день!
Не могли бы Вы помочь мне со следующим вопросом:
1.Как читать в динамический массив "block:array of single" из файла блоком?
setlength(block,blocksize div 4); //blocksize - размер в байтах
bytesread:=fileread(filehandle,block,blocksize);
-не работает никак. При размере блока > примерно 10к вообще
bytesread=-1.
Если объявляю как "block:^arr" , где "arr=array[1..high(integer)] of
single", и выделяю потом память getmem-ом, то работает:
bytesread:=fileread(filehandle,block^,blocksize);
но с таким массивом не работает функция copy. Можно ли скопировать
часть одного такого массива в другой без ее помощи?
2. Можно ли сложить элементы одного динамического массива с элементами
другого дин. массива, кроме как последовательным сложением в цикле?
Заранее спасибо за ответ!
MBo (2002-02-26 13:59:00) [1]var a:array of single;
i:integer;
fs:tfilestream;
begin
fs:=tfilestream.create(nameoffile,fmOpenread);
i:=100;
setlength(a,i);
fs.Read(a[0],i*sizeof(single));
fs.free;
если сам пишешь файл, в начале лучше писать длину блока
и при чтении сначала ее определчть
-=CrazyFish=- (2002-02-26 13:55:00) [2]читать нужно не в block, а в block[0]