Файлы как в WinRar

Тема в разделе "WASM.BEGINNERS", создана пользователем 6eJIko, 23 июл 2007.

  1. 6eJIko

    6eJIko New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2007
    Сообщения:
    12
    Драсте фсем)

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

    Заранее спс.
     
  2. aikidzin

    aikidzin New Member

    Публикаций:
    0
    Регистрация:
    23 июл 2007
    Сообщения:
    3
    Ну на асме не знаю как сделать, но я так понимаю, что нужно создать нетипизированный файл и записать все нужные тебе файлы в него. в начале файла создаёшь структуру, в которую записываешь количество файлов,имена файлов, их размер. Потом читая эту инфу просто их вытаскиваешь.
     
  3. 6eJIko

    6eJIko New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2007
    Сообщения:
    12
    aikidzin а есть какая-нибудь стандартная структура на подобие той, что вы предложили? Или надо писать самому
     
  4. aikidzin

    aikidzin New Member

    Публикаций:
    0
    Регистрация:
    23 июл 2007
    Сообщения:
    3
    Например на си
    Сначала записываешь переменную dwNomberOfFiles.
    она укажет количество файлов.
    DWORD dwNomberOfFiles;
    Затем записываешь t_OneFileInfo необходимое количество раз (dwNomberOfFiles).
    Размер этой структуры (128+4). так что ты всегда будешь знать с какого места у тебя начинается новая структура.

    typedef struct
    {
    char[128] chName; /* соответственно имя файла с расширением */
    DWORD dwSize; /* его размер в байтах */
    } t_OneFileInfo;
     
  5. 6eJIko

    6eJIko New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2007
    Сообщения:
    12
    Спасибо aikidzin, я попробую
     
  6. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    6eJIko
    сорцы архиваторов tar, bz2, rar, zip доступны в сети.
     
  7. 6eJIko

    6eJIko New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2007
    Сообщения:
    12
    n0name

    вроде бы открыт только код UnRAR.

    Мож подкинешь ссылочку??
     
  8. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    n0name
    Сорцы рара? Или ты имел ввиду распаковщик?
     
  9. 6eJIko

    6eJIko New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2007
    Сообщения:
    12
    IceStudent
    Сорцы Рара
     
  10. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    IceStudent
    рара. не WinRar, а работа с архивами.
    ТС же нужна лишь работы с форматом
     
  11. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    Ещё есть 7zip
     
  12. 6eJIko

    6eJIko New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2007
    Сообщения:
    12
    От 7-Zip я нашёл тока алгоритм сжатия "lzma"
     
  13. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
  14. 6eJIko

    6eJIko New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2007
    Сообщения:
    12
    roman_pro спасибо огромное
     
  15. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    Используй Structured Storage - это документированный способ сохранения нескольких файлов в одном.
    Пакуешь данные и пишешь в разные потоки хранилища.
    Удачи!