![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как лучше работать с 300-мегабайтным массивом ? [D7, WinME, WinXP]
Алекс А © (2004-06-21 02:45:00)Есть файл на диске "base1.bin" размером в 300 мегабайт, его надо загрузить в массив Base1 . Делают так :
NewFile := TFileStream.Create('base1.bin', fmOpenRead or fmShareDenyWrite) ;
try
NewFile.ReadBuffer(Base1, 300000000);
finally
NewFile.Free;
end;
Данные используются только для чтения. Загрузка длится более минуты. Хотелось бы, чтобы загрузка шла не сразу от и до, а как то постепенно, по мере обращения программы к отдельным частям массива, чтобы небыло этой минутной паузы. Можно ли это сделать ? Или как вообще лучше это организовать ?
Fay (2004-06-21 03:39:00) [61]Если подгружать постепенно, то, возможно, не получится сделать миллион ображений в минуту пока всё не загрузишь.
Алекс А (2004-06-21 03:33:00) [62]
> Fay (21.06.04 03:20) [2]
> Он тебе весь в памяти нужен?
Я так подумал. Пожалуй весь он никогда не бывает нужен. Только частями, но которые находятся где попало.
Алекс А (2004-06-21 03:27:00) [63]
> Fay (21.06.04 03:20) [2]
> Он тебе весь в памяти нужен? Хоть раз. FileSeek (или SetFilePointer)
> не спасёт отца русской демократии?
Примерно миллион чтений различных элементов в минуту. Правда не в одном месте, а больше по определённым небольшим областям. разбросанным по всему массиву.
default (2004-06-21 03:25:00) [64]Fay (21.06.04 03:20) [2]
отца бы спосло
Fay (2004-06-21 03:20:00) [65]Он тебе весь в памяти нужен? Хоть раз. FileSeek (или SetFilePointer) не спасёт отца русской демократии?
default (2004-06-21 02:57:00) [66]"Можно ли это сделать ? Или как вообще лучше это организовать ?"
можно, для того чтобы сказать как лучше нужно больше информации