Главная страница
    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.47 MB
Время: 0.037 c
15-1141296239
Карелин Артем
2006-03-02 13:43
2006.03.26
Раша vs НеРаша.


10-1110390853
Nicolas1989
2005-03-09 20:54
2006.03.26
Как вставить строку в Excel через ExcelApplication?


15-1141280821
WondeRu
2006-03-02 09:27
2006.03.26
Text Art - кидайте сюда, что знаете интересного :)


11-1122833928
Thaddy
2005-07-31 22:18
2006.03.26
kol skype demo


8-1128446411
Argon
2005-10-04 21:20
2006.03.26
Несколько звуковых карт, как выбрать из них любую?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский