Доброго времени суток!
Есть большой объем данных (текстовые строки и числа) около 150 тыс. Я эти данные буду заносить в хэш таблицу для быстрого поиска. Суть вопроса в том, что можно ли такой объем данных хранить в dll и если можно, то как лучше это сделать с учетом того, что на основе этих данных будет строиться хэш таблица.
Не хочу хранить:
в текстовом файле т.к. данные специфические и не хочется, чтобы любой имел к ним прямой доступ.
в бинарном файле т.к. строки разной длины (от 1 сивола до примерно 30) и из-за этого увеличится размер бинарного файла (если не прав поправьте).
в базе данных т.к. ни разу с ними не работал и чтобы их использовать (базы) придется учиться. Это долго, а текущий проект не терпит промедлений.
В итоге остается DLL, но как?
Примечание:
Комментарии на первые ответы.
Кроссплатформенность не предполагается, только Win.
Шифрование текстового файла? Как Вы себе это представляете? Строк более 150 тыс. Т.е. их надо сначала прочитать из файла, затем дешифровать, затем все это добавить в хэш таблицу. Да пользователь состарится ожидая когда же программа запустится. Да и памяти такая прога будет жрать ого-го.
"Изучите БД. Времени займет меньше чем получите ответ. Там все оч просто (для начала)" - это когда опыт есть так кажется. На изучение и внедрение в сущ. программный код уйдет непозволительно много времени.
Итак, вопрос остается открытым...
Примечание:
А Вам понравится программа, которая открывается пол минуты (кроме этого массива строк есть еще масса структур, которые программа "готовит" на стадии запуска).
Примечание:
"Храните в файле, закройте доступ к нему и всё" - это как?
"А вбивать 150 тыс. строк в DLL - это садо-мазо!" - ну не в ручную же вбивать. Парсер, который сформирует нужные строки из файла, а затем копипаст в DLL.
Примечание:
"к вопросу как: юзать утилитки типа
http://sourceforge.net/projects/bin2cpp/" - а можно подробнее. Что именно делает эта утилита, а то с инглишем не лады.
Примечание:
Pharmakis: "Другой вопрос зачем всё сразу подгружать." Затем, что без этих данных программа не сможет выполнить ни одно действие.
"а какая разница куда вы эти 150 тысяч поместите, быстрее в любом случае не станет" ну очевидно если использовать шифрование и хранение в текстовом файле, то это будет медленнее чем в DLL.
Примечание:
none7: "Выделите всего один байт на длину каждой строки \x04line\x05lines\x03dll" Это прокатит если строки русские? Как хранить (и еще важнее считывать) если не только строка но и число.
Пример строк как они сейчас в текстовом файле:
вася 23
петя 1
федя 1243
Примечание:
none7: "В чём строки собираетесь хранить? ANSI, Unicode, Utf8?" не суть важно. Скажите в чем лучше, объясните почему, если не трудно.
И еще, а как можно хранить хэш таблицу в файле (это бы решило все проблемы)? Как потом ее читать и в программе "отображать"?
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.