|
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 4
|
|
Формат файла вмещающий в себя другие файлы22.12.2012, 20:52. Показов 1237. Ответов 9
Метки нет (Все метки)
Здравствуйте форумчане.
Вопрос в следующем необходимо создать файл который бы вмещал в себя ряд файлов (по аналогии openXML). Какими средствами возможно решение?
0
|
|
| 22.12.2012, 20:52 | |
|
Ответы с готовыми решениями:
9
Добавить блоки строк из одного txt файла в другие txt файлы Из одного файла считать целые числа, в другие файлы записать четные и нечетные числа |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 22.12.2012, 21:02 | |
|
Я бы использовал бинарную запись: длина строки с именем файла, строка с именем файла, длина файла, сам файл (байты).
Как вариант для быстрого поиска внутри файла, можно в начале контейнера сделать таблицу файл-оффсет, но тогда будет сложнее добавлять новые файлы - придется сдвигать всю структуру для расширения таблицы.
1
|
|
|
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 4
|
|
| 22.12.2012, 21:06 [ТС] | |
|
kolorotur спасибо за ответ, но это Вы как-то круто завернули. Можно немного кода?
0
|
|
|
Почетный модератор
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
| 22.12.2012, 21:25 | |
|
Я кодом помочь не смогу, но мысль озвучу.
Делал я как-то такую забаву. В ней был класс с бинарными и строковыми полями. Создавался массив таких классов List<> Ну и сериализация - десериализация, куда ж без нее. В окне программы DataGridView с информацией о записях. Возможность редактирования, добавления, удаления. Но вот беда. Когда файл уже совсем не маленький, программа стартует с задержкой. И еще где-то в глубине души кроются подозрения, что этот файл ограничен по размеру (возможно, где-то 2 ГБ) Поэтому для больших объемов данных такой способ неприемлем.
1
|
|
|
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 4
|
|
| 24.12.2012, 08:38 [ТС] | |
|
Если по простому, то задача в следующем. Необходимо выбранный файл (например *.pdf, *.djv, ...) поместить в файл (например архив zip) с и добавить файл описания. Результирующий файл (архив) должен иметь уникальный формат, для того чтобы его можно было опять-таки программно открыть. Но хотелось бы не просто архивировать и разархивировать, а еще добавить конечному файлу атрибуты содержащиеся в файле описания.
0
|
|
|
Почетный модератор
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
| 24.12.2012, 08:55 | |
|
usenkov1988, если файлы небольшие и их немного, то мой способ сойдет.
Почитайте про сериализацию.
0
|
|
|
|
||
| 24.12.2012, 09:12 | ||
|
Способов можно придумать море.
Не совсем понимаю, зачем придумывать свой велосипед, когда есть много готовых. Из готовых: Например, тот же XML, с кодированием бинарных данных (UU, base64). Формат ASN. Формат HDF5. Готовые СУБД, работающие с файлами - потребуются драйверы, но это не проблема. (Напр, обычный access-овский MDB). Можно, наконец, просто использовать архиватор, а вашу доп. инфу складывать в отдельный файл. И не торопитесь махать на меня руками. В конце именно архиватор является кондовым решением задачи "слепить несколько файлов в один, чтобы потом можно было разлепить". Т.е. задачу вы поставили как раз - "чтобы работало, как архиватор, но
0
|
||
|
Почетный модератор
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
|
| 24.12.2012, 14:01 | |
|
Вот накидал все примерно. Проект правда на Барсе.
Через диалог добавляем файлы. Есть класс, который хранит имя файла, его тело, иконку и размер в килобайтах. В ListView доступно контекстное меню, через которое можно добавлять и удалять файлы. Кнопка "Добавить файлы" открывает диалог выбора файла, возможен мультивыбор Кнопка "Извлечь файлы" открывает диалог открытия папки, в которую будут извлечены все файлы, если не возникли условия, препятствующие этому Кнопка "Сохранить" открывает диалог сохранения пак-файла Кнопка "Открыть" открывает диалог открытия пак-файла Гиперссылка "Ассоциировать файлы с приложением" заносит изменения в реестр, если не возникли условия, препятствующие этому, благодаря чему значок файла *.pck изменяется и двойным щелчком по нему открывается приложение с содержимым указанного файла. Как выглядит файл Как выглядит приложение Проект: Хранение файлов в одном (проект).rar Исполняемый файл Хранение файлов в одном.rar [Visual Basic .NET, VS 2008 Rus, .NET Framework 2.0]
1
|
|
|
0 / 0 / 0
Регистрация: 22.12.2012
Сообщений: 4
|
|
| 24.12.2012, 20:56 [ТС] | |
|
Спасибо. На вскидку то, что надо. С VB разберусь. Если не трудно скажите суть работы, сериализация в файл?
0
|
|
|
Почетный модератор
23251 / 9163 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
|
||
| 25.12.2012, 15:55 | ||
|
Не по теме: Извините, отсутствовал по техническим причинам.
0
|
||
| 25.12.2012, 15:55 | |
|
Помогаю со студенческими работами здесь
10
Добавление строк, взятых из одного файла, в другие файлы в случае отсутствия этих строк в этих файлах Программа, запаковывающая файлы в себя закидывать файлы на другие
Переместить все файлы, кроме себя Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|