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


Автор: Budy 14.8.2004, 17:49
:Приветствую
Я хочу слепить программу коечего делающую, но не могу разобраться с одной важной проблемой.
Моя программа работает с файлом, в который записываются другие важные файлы (вроде несжимающего архива). Необходимо при запуске программы извлечь из этого файла все в определенную папку, а при выходе опять все файлы из определенной папки "сжать" в один файл, но чтоб без потери информации. Все имена файлов и их содержимое как раз и хранится в этом файле.
Помогите с кодом sad.gif
Добавлено @ 17:51
Да, файлы все одного расширения (*.xxx)

Автор: Chuck 14.8.2004, 18:25
А что тут делать
Пиши бинарно, сперва один файл, потои какой нить символ, второй файл, опять тот же символ и т д
Так же и читай!!!
В чем собственно проблема?

Автор: maxim1000 14.8.2004, 20:07
Цитата
А что тут делать
Пиши бинарно, сперва один файл, потои какой нить символ, второй файл, опять тот же символ и т д
Так же и читай!!!

опасно... ведь этот символ может попасться в файлах
мне кажется, лучше писать сначала длину файла, а потом его содержимое
1. не приходится резервировать отдельный символ
2. если нужно будет работать с файлами не "распаковывая" их, можно быстро найти начало нужного файла

Автор: Burich-Caeser 15.8.2004, 05:45
Вроде ничего особо жестокого в коде не должно быть.
Главное определить структуру файла солянки.
Заголовок, сигнатура, тело и т.п.
В заголовке лабуда, вроде размера каждого файла в солянке и позиция в файле относительно начала, или еще как.
По сигнатуре будешь определять, твой ли это вообще файл, а то насоздают все подряд файлов *.xxx, а потом с ошибками копаться...
А в теле будут те самые файлы с солянки.
Если я неправильно понял вопрос, слушаю поправки thumbs-up.gif

Автор: Петрович 15.8.2004, 11:09
Если надо в начале "рассыпать", а в конце "собрать", то по моему, любой архиватор (внешний или встроенный) подойдет наилучьшим образом.

Автор: dvamaster 15.8.2004, 12:58
Формат файла:

первое слово - кол-во записей

далее: записи

затем просто файлы одной стопкой.

запись:
смещение в файле
длина файла
длина имени файла
имя файла

Автор: Budy 18.8.2004, 05:12
Спасибо всем.
Но я сдеал почти как у вас. Как начинает обрабатываться (архзивироваться smile.gif новый файл, то сначала пишет размер, затем название (длины имен одинаковые - первый из них 0001.xxx), а потом содержимое файла. Так же и распаковывает.

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