Страница: 1 |
Страница: 1 |
Вопрос: кэширование
Добавлено: 21.10.08 12:03
Автор вопроса: HuuF
Возникла необходимость считывать множество строк из INI-файлика. Но постоянное обращение к диску - тормозит всю работу.
Подскажите, как можно закинуть этот ini в память и оттуда уже считывать строки? Из ини читаю API-функцией. Пишу в vb.NET
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
j3d1
ICQ: 8370005
Вопросов: 34
Ответов: 466
Профиль | | #1
Добавлено: 21.10.08 13:16
NameValueCollection - читаешь в него, оч удобно использовать параметры.
Номер ответа: 2
Автор ответа:
HuuF
Вопросов: 1
Ответов: 1
Профиль | | #2
Добавлено: 21.10.08 14:20
Читать в него можно, но это не избавит от необходимости самого считывания из ини и следовательно, множества обращений к диску.
Проблема в том, что я хочу один раз скопировать ini в память, а потом уже считывать строки из него (но находящегося в памяти).
Сам ini весит 40кб, но в нем порядка 1000 записей. Прочитать 40кб - это ерунда, а 1000 раз обратиться к диску для считывания n байт - это гораздо дольше.
Номер ответа: 3
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 21.10.08 20:29
Значит напиши парсер для формата ini файла.. Целиком считал его, распарсил в удобоваримый вид и держи его в памяти. А вообще, по большому счету, юзать ini в NET - это кривое решение.. Удобней и правильней было бы было бы воспольбзоваться xml форматом.
Номер ответа: 4
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #4
Добавлено: 21.10.08 23:11
Сделай наследника либо от Dictionary<string,string>, либо от HashTable и всего делов.. Ну и пару десятков строк кода и будет тебе счастье!
Номер ответа: 5
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #5
Добавлено: 23.10.08 23:10
Мне когда то давно тоже приходилось с ini работать, но там было около 50 параметров и я сейчас нашел на винте эту библиотеку которую писал для работы с ini. Просто интересно будет узнать результат работы на 1000 параметрах..
dll и пример на cs выложил тут:
http://all-oracle.ru/downloads/ini.zip
Номер ответа: 6
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #6
Добавлено: 28.10.08 01:07
Прикольный сайт у тебя, EROS!
Номер ответа: 7
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #7
Добавлено: 28.10.08 08:03
я старался!