Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

Прочитать файл в массив   Найти похожие ветки 

 
Junior1   (2006-03-06 14:27) [0]

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


 
Ega23 ©   (2006-03-06 14:28) [1]


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


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


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

~1.5 MB


 
tesseract ©   (2006-03-06 16:08) [3]


> ~1.5 MB

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


 
trych ©   (2006-03-06 16:37) [4]

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


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


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

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


 
Джо ©   (2006-03-06 17:59) [6]

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

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


 
Leonid Troyanovsky ©   (2006-03-06 18:05) [7]


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

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


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

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

--
Regards, LVT.


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


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

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


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

Так как быть?


 
Anatoly Podgoretsky ©   (2006-03-06 20:23) [10]

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



Страницы: 1 вся ветка

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.06 c
2-1142245192
dabreezy
2006-03-13 13:19
2006.03.26
TstringList - глюк на глюке.


15-1141162232
Volf_555
2006-03-01 00:30
2006.03.26
Что случилось с eMule? Когда он работать начнёт нормально?


15-1141570417
Lomant
2006-03-05 17:53
2006.03.26
Тональность


15-1141335676
Piter
2006-03-03 00:41
2006.03.26
Хех... загадка :)


15-1141491463
Yegorchic
2006-03-04 19:57
2006.03.26
PHP и .gif