Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
ВнизПрочитать файл в массив Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.052 c