как изъять из mpq/w3x все версии одного файла?
если перезаписывать обновлённый файл поверх старого,
то mpq жиреет, старый файл не удаляет, а хранит оба файла: и старый и новый
соответственно если обновить 10 раз файл, то mpq будет хранить все 10 версий этого файла и будет в 10 раз больше по размеру
в связи с этим несколько вопросов:
  1. как изъять все версии этих файлов из mpq? к вопросу прикреплён 1111_new.mpq, который хранит три разных картинки под одним названием "01.png", как изъять все три картинки?
  2. можно ли указать варкрафту какую версию из этих одинаковых файлов использовать? или он автоматом использует самый новый по временному отпечатку?
  3. можно ли указать mpq editor'у какую версию из этих одинаковых файлов использовать? или он автоматом использует самый новый по временному отпечатку?
  4. есть ли в MPQ Editor кнопка удаления старых версий файлов? чтобы он все старые удалил, а оставил только самые новые, применительно к примеру в этом вопросе - оставил только третью последнюю картинку
  5. есть ли в природе софтина, которая сканирует mpq на количество дублей? например какие файлы в mpq архиве дублируются и по сколько раз. условно если применить такую софтину к 1111_new.mpq - то она покажет что файл 01.png имеет 3 версии (в идеале было бы хорошо иметь колонку "колво версий" в mpq editor)
навеяно этим комментарием, когда в одном и том же mpq - WinMPQ видит одну версию листфайла и видит все имена, а при открытии этого же mpq через MPQ Editor видно другую пустую версию листфайла и не видно имён

Первый архив:
Второй(новый) архив:
Думаем, и делаем вывод, что при удалении файлов они не удаляются, а остаются в архиве в качестве набора байтов. Проверяем (удалил из первого архива png):
Нет ниху, никакого "свободного места" нет и в проводнике видно, что архив стал весить пару байт. Пробуем вставить этот же файл png с заменой:
Вот старый файл стал "свободное место". Теперь его надо достать, а как я уже не знаю)
Чтоб избавиться от лишних файлов нажимаем "сжать архив".
До:
После:
`
ОЖИДАНИЕ РЕКЛАМЫ...
13
Принятый ответ
Первый архив:
Второй(новый) архив:
Думаем, и делаем вывод, что при удалении файлов они не удаляются, а остаются в архиве в качестве набора байтов. Проверяем (удалил из первого архива png):
Нет ниху, никакого "свободного места" нет и в проводнике видно, что архив стал весить пару байт. Пробуем вставить этот же файл png с заменой:
Вот старый файл стал "свободное место". Теперь его надо достать, а как я уже не знаю)
Чтоб избавиться от лишних файлов нажимаем "сжать архив".
До:
После:
15
Вот старый файл стал "свободное место"
Если создать заново mpq и при создании использовать кастомный ruleset, в котором убрать галку сжатия, то в "свободном месте" появится та самая "удалённая" картинка. только эти данные нельзя экспортировать, нельзя юзать по ним поиск. неизвестно какой между ними сплиттер
т.е. если мы отталкиваемся от практики - получается, что:
  • вариант 1. это изменить у имеющейся карты сжатие на "без сжатия" для всех файлов (и как это сделать?), и потом вручную кликать на каждый файл в поиске "свободного места", а когда найдём то аж сможем скролить его мышкой.
  • вариант 2 - найти софт, который таки сможет это делать, видимо для mpq editor такие манипуляции сильно сложны. ну либо писать ладику зезуле и договариваться чтобы он добавил экспорт этих данных
  • вариант 3 - писать такой софт самостоятельно
неизвестно какой между ними сплиттер
а если создать mpq без сжатия с коротким текстовиком для теста, то видно что сплиттера вообще нету
хотя стой. свободное место одно для всей карты? единое? получается это аналог корзины? в которой даже нет разделения на файлы, а всё идёт одним слипнувшимся "файлом". и если в карте заменить условно два разных текстовика, то они просто слипнутся и где какой станет неизвестно, т.к. у текстовиков нет маркеров начала файла например PNG, и нет маркеров EOF
получается, это почти и не файлы, а просто мешанина кода, с которой работать нереально
Чтобы оставить комментарий, пожалуйста, войдите на сайт.