Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.038 c
15-1141110019
forb
2006-02-28 10:00
2006.03.26
Ищется программист для написания программы для курсовой работы


2-1141626781
K_Val
2006-03-06 09:33
2006.03.26
Программа без среды Delphi


2-1142339389
Fenix
2006-03-14 15:29
2006.03.26
Создание разделителя между RichEdit ами.


2-1142279229
LordOfRock
2006-03-13 22:47
2006.03.26
Дерево и много текста


2-1141730177
Grey.pmr
2006-03-07 14:16
2006.03.26
*.exe





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский