#c# #file #pointers #handle
#c# #файл #указатели #обрабатывать
Вопрос:
У меня есть большой файл, я хочу сохранить 5-6 указателей, которые разделяют файл на куски и обеспечивают более быстрый доступ к любой части. Этого можно достичь в c #.
Комментарии:
1. Какой анализ вы провели, чтобы доказать, что время доступа является проблемой?
2. Вы имеете в виду, например, смещения блоков данных, которые вы можете определить, только проанализировав весь файл, например, 100 000-ю строку или определенный элемент XML?
3. У меня есть огромный XML-файл, в котором содержится около 5 миллионов элементов, по запросу я хочу отобразить фрагмент, скажем, 1000 элементов в удобном формате в обратном порядке. Обрабатывать каждый раз весь файл целиком — плохая идея. Я думал о размещении моих собственных элементов в файле с интервалами (своего рода закладки), но мы решили не трогать исходный XML-файл.
Ответ №1:
Я думаю, что файлы с отображением в память — это ближайший вариант для выполнения того, что вы хотите сделать, без особых усилий с вашей стороны.
Редактировать: Я предположил, что вы используете .NET 4.0, поскольку это недоступно в более ранних версиях framework. Хорошая статья, рассказывающая об эффективности, которую вы ищете
Комментарии:
1. Забыл упомянуть, что это XML-файл, и хочу разобрать его полезным способом. Не уверен, что это файлы карты памяти помогут, так как я хочу знать, на каком элементе я нахожусь.