Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Прочитать файл в массив


Junior1 ©   (2006-03-06 14:27:00) 

Есть нетипизированный файл, нужно прочитать его, записывая нужную информацию в массивы. Использую BlockRead, считываю, допустим, один байт указывающий сколько следующих байт нужно пропустить, пропускаю, записываю из файла в массив несколько байт, потом опят считываю один...
Правильно так делать, или лучше весь файл записать в память, а потом разбить на массивы?


Anatoly Podgoretsky   (2006-03-06 20:23:00) [1]

Junior1   (06.03.06 18:20) [8]
А что случилось с твоей памятью?


Junior1   (2006-03-06 20:04:00) [2]

Так как быть?


Junior1   (2006-03-06 18:20:00) [3]


> Что запрещает в консольном приложении использовать вышеперечисленное?

80 лишних кб модуля Classes


Leonid Troyanovsky   (2006-03-06 18:05:00) [4]


> tesseract ©   (06.03.06 16:08) [3]

> А если файл большой попробуй Mapped Files.


Тут, IMHO, важен не столько даже размер, как режим доступа.
Т.е., если нужно считать значения из файла и забыть
(последовательный доступ) быстрее TFileStream (or ReadFile)
придумать трудно.
А если доступ произвольный (и, по всей видимости, не все
элементы массива будут обработаны), то лучше спроецировать
этот массив непосредственно на файл.

В рассматриваемом случае доступ, очевидно, последовательный,
т.е. для заполнения массива нам надо читать весь файл сначала и,
возможно, до конца.

--
Regards, LVT.


Джо   (2006-03-06 17:59:00) [5]

> [5] Junior1   (06.03.06 17:55)
>
> > Используй объектную модель работы с файлами, потоки TFileStream
>
> Не у меня консольное приложение..

Что запрещает в консольном приложении использовать вышеперечисленное?


Junior1   (2006-03-06 17:55:00) [6]


> Используй объектную модель работы с файлами, потоки TFileStream

Не у меня консольное приложение..


trych   (2006-03-06 16:37:00) [7]

Используй объектную модель работы с файлами, потоки TFileStream


tesseract   (2006-03-06 16:08:00) [8]


> ~1.5 MB

А если файл большой попробуй Mapped Files.


Junior1   (2006-03-06 14:31:00) [9]

~1.5 MB


Ega23   (2006-03-06 14:28:00) [10]


> Правильно так делать, или лучше весь файл записать в память,
>  а потом разбить на массивы?


Если файл имеет разумный размер, то я бы делал в памяти.


Наверх

Титульная страница Поиск, карта сайта Написать письмо