Произвольный доступ в строковом файле
От: M.A.V. Россия  
Дата: 05.07.07 11:42
Оценка:
Доброго времени суток.
У меня есть вопрос...
Существует Excel'евский файл большого размера (~100Мб), состоящий из вступления произвольной длины,
с определённой метки файл приобретает вид таблицы с двумя столбцами.

Требуется осуществить произвольный доступ к нужной строке.

Пролистывать весь файл каждый раз, когда требуется, бессмысленно.
А StringReader не может осуществить нужные мне действия.

Поделитесь, пожалуйста, идеей.
Заранее спасибо.
Re: Произвольный доступ в строковом файле
От: dammer Россия  
Дата: 05.07.07 12:17
Оценка: +1
Здравствуйте, M.A.V., Вы писали:

MAV>Доброго времени суток.

MAV>У меня есть вопрос...
MAV>Существует Excel'евский файл большого размера (~100Мб), состоящий из вступления произвольной длины,
MAV>с определённой метки файл приобретает вид таблицы с двумя столбцами.

MAV>Требуется осуществить произвольный доступ к нужной строке.


Определить файл системным источником данных через ODBC и использовать что нибудь вроде DataReader ...
можно проиндексировать сторки один раз, правда не понятно как часто изменяется ваш файл.
Re[2]: Произвольный доступ в строковом файле
От: M.A.V. Россия  
Дата: 05.07.07 13:31
Оценка:
Здравствуйте, dammer, Вы писали:

D>Здравствуйте, M.A.V., Вы писали:


MAV>>Доброго времени суток.

MAV>>У меня есть вопрос...
MAV>>Существует Excel'евский файл большого размера (~100Мб), состоящий из вступления произвольной длины,
MAV>>с определённой метки файл приобретает вид таблицы с двумя столбцами.

MAV>>Требуется осуществить произвольный доступ к нужной строке.


D>Определить файл системным источником данных через ODBC и использовать что нибудь вроде DataReader ...

D>можно проиндексировать сторки один раз, правда не понятно как часто изменяется ваш файл.

Спасибо, dammer.

Файл не меняется. Сделал через BinaryReader.
Там есть произвольный доступ, через Position.
Мне повезло, что в каждой строке записано одинаковое количество байт.
Re[3]: Произвольный доступ в строковом файле
От: hell citizen Россия  
Дата: 07.07.07 10:39
Оценка:
Здравствуйте, M.A.V., Вы писали:

MAV> Файл не меняется. Сделал через BinaryReader.

MAV> Там есть произвольный доступ, через Position.
MAV> Мне повезло, что в каждой строке записано одинаковое количество байт.

В текстовом тоже можно, через свойтсво StreamReader.InnerStream.Position. Только перед каждым таким переходом надо сбрасывать внутренний буфер StreamReader'а, иначе он будет возвращать бредятину. Для этого есть метод StreamReader.DiscardBufferedData().
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.