Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Несколько файлов в один


Автор: WolfAlone 22.3.2012, 02:34
Доброго времени суток!

Возникла следующая задача: нужно несколько файлов (картинок) запихнуть в один (единый) файл. Далее, с картинками в этом файле необходимо выполнить одну из двух возможных задач:
1. Сохранить картинку на жесткий диск
2. Загрузить картинку, непосредственно в PictureBox (загрузить и отобразить)

При этом, никаких временных файлов, где бы то нибыло, создаваться не должно. То есть, вариант "извлечь картинку на жеский диск, а затем загрузить её в PictureBox - не подходит).

Подскажите пожалуйста, возможные варианты решения подобной задачи или какие-нибудь материалы по данной теме.

Перебрал в голове уже с пол дюжины вариантов, от обычных "структур" с адрасацией картинок в файле, до XML+BASE64, но мне кажется, что есть какое-то более лаконичное решение для данной задачи.

Автор: erm0l0v 22.3.2012, 09:09
А какой должен быть файл любой?
Тогда вы можете использовать sdf (SQL Compact) и работать как с обычной базой данных)))

Автор: WolfAlone 22.3.2012, 12:57
Совершенно верно, файл может быть абсолютно любого формата. Единственное требование - реализация задачи средствами встроенными в .net/C#. То есть, пользователь с установленным .NET FrameWork 3 должен иметь возможность запускать программу без установки доп. "плюшек", а так же, пользователь имеющий программу - должен иметь возможность только "менять" файл, не переустанавливая программу. То есть, "комплект поставки" изначально такой: программа+файл, без доп. DLL'ок и пр. "радостей".

Автор: erm0l0v 22.3.2012, 14:28
Ну в таком случае SQL Compact вам подходит он встроен в Framework, только я точно не помню с какой именно версии или 3.0 или 3.5.

sdf это просто файл так что вы можете просто скормить вашему приложению путь к нему создать подключение а дальше работать как с обычной бд и эта база как раз поддерживает тип image.

Автор: WolfAlone 22.3.2012, 21:02
erm0l0v, благодарю за мысль!

Может быть, у кого-нибудь есть ещё какие-то варианты?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)