Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Распаковка *.pak

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

krsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет! Чем распаковывают архивы *.pak? Есть вот такой скрипт, но он не справляется. Да и чем потом обратно упаковать?
Мучаюсь вот с этим файлом.

Всего записей: 948 | Зарегистр. 19-02-2016 | Отправлено: 12:22 30-10-2016 | Исправлено: krsk, 21:46 30-10-2016
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
python data_pack.py devtools_resources.pak >out.txt
 
Сам data_pack.py тут: https://chromium.googlesource.com/chromium/src/tools/grit/+/master/grit/format/data_pack.py

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 13:15 30-10-2016
krsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ne_viens
Можно подробнее как запускать? Код скопировать в файл, переименовать и запустить с ком строки?
Попробывал как написал выше и не получилось запустить в винде 7.
Установил питона с оф сайта, в каталоге нет файла data_pack.py
Подскажите кто в этом соображает!

Всего записей: 948 | Зарегистр. 19-02-2016 | Отправлено: 13:25 30-10-2016 | Исправлено: krsk, 14:17 30-10-2016
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
0. Установить Питон
1. Разархивировать https://chromium.googlesource.com/chromium/src/tools/grit/+archive/master.tar.gz у себя на диске
2. cd path\to\grit\format
3. Распаковать ресурсы в out.txt с "python data_pack.py devtools_resources.pak >out.txt"
 
Если надо разобрать и собрать обрано, тогда надо будет data_pack.py чуть подправить.

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 14:30 30-10-2016
krsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
тогда надо будет data_pack.py чуть подправить.

Вы сможите подправить? Пока буду делать как вы подсказали.
Куда именно распаковать архив?
cd path\to\grit\format - вводить в окне питона или ком строке?
Я вообще не силен в этом, попрошу уточнить.
В ком строке вводил и ошибка, в питоне так же.

Всего записей: 948 | Зарегистр. 19-02-2016 | Отправлено: 14:34 30-10-2016 | Исправлено: krsk, 14:40 30-10-2016
ne_viens

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Куда именно распаковать архив?
cd path\to\grit\format - вводить в окне питона или ком строке?  

 
Всёравно.
В ком строке. path\to\grit - это и есть то "всёравно". В коммандной строке надо сменить директорию на ту, в которой находится data_pack.py.
 
 

Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 14:47 30-10-2016
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
krsk
 
*.pak обрабатываются старенькими pack/unpak и ещё unpaq
а вообще выложи какой-нить архивчик, может это зипы переименованные...

Всего записей: 24113 | Зарегистр. 06-12-2002 | Отправлено: 16:32 30-10-2016
krsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
может это зипы переименованные...

Архиватор их не берет, ни 7з ни Haozip

Всего записей: 948 | Зарегистр. 19-02-2016 | Отправлено: 16:46 30-10-2016
Dunkeshu

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не актуально.

Всего записей: 621 | Зарегистр. 25-01-2010 | Отправлено: 17:00 30-10-2016 | Исправлено: Dunkeshu, 03:31 31-10-2016
krsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dunkeshu

Буду юзать! Вообще это нужно для локализации одного проекта, почтового клиента от китайцев.
А как обратно паковать? Предыдущий шаг прошел на ура.

Всего записей: 948 | Зарегистр. 19-02-2016 | Отправлено: 17:17 30-10-2016 | Исправлено: krsk, 17:22 30-10-2016
Dunkeshu

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
krsk Все благодарности к ne_viens

Всего записей: 621 | Зарегистр. 25-01-2010 | Отправлено: 18:13 30-10-2016
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Архиватор их не берет, ни 7з ни Haozip

  • WinZip 12 Pro
  • Astonsoft Archivarius

  • Всего записей: 24113 | Зарегистр. 06-12-2002 | Отправлено: 18:19 30-10-2016
    ne_viens

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    WinZip 12 Pro
    ...

    Это не такой пак.
     
    >krsk Получилось распаковать ресурсы в out.txt?
    Если да, можем переходить к следующему шагу квеста- укрощению Питона.

    Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 18:44 30-10-2016
    krsk

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Получилось распаковать ресурсы в out.txt?  

    К сожалению в нем не оказалось иероглифов для локализации... Готов к следующему шагу.

    Всего записей: 948 | Зарегистр. 19-02-2016 | Отправлено: 19:03 30-10-2016
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Это не такой пак.
    ну я думал, что это игровой ресурс...
    говорю ж: выложил бы, никаких вопросов...

    Всего записей: 24113 | Зарегистр. 06-12-2002 | Отправлено: 19:24 30-10-2016
    ne_viens

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    >krsk
    В data_pack.py надо подправить предпоследнюю функцию main() в самом конце:

    Код:
    def main():
      if len(sys.argv) > 1:
        # When an argument is given, read and explode the file to text
        # format, for easier diffing.
        data = ReadDataPack(sys.argv[1])
        print data.encoding
        for (resource_id, text) in data.resources.iteritems():
    #      print '%s: %s' % (resource_id, text)
            with open('out/' + str(resource_id), "wb") as f: f.write(text)
            f.close()
      else:
        # Just write a simple file.
        data = {}
        for fname in os.listdir('out/'):
            res_id = int(fname)
            with open('out/' + str(res_id), "rb") as f: data[res_id] = f.read()
            f.close()
    #    data = {1: '', 4: 'this is id 4', 6: 'this is id 6', 10: ''}
        WriteDataPack(data, 'datapack1.pak', UTF8)
    #    data2 = {1000: 'test', 5: 'five'}
    #    WriteDataPack(data2, 'datapack2.pak', UTF8)
        print 'wrote datapack1 and datapack2 to current directory.'

     
    Исправленный код разбивает файл ресурсов на отдельные файлы в директории out/, а не выводит на stdout, a также собирает обратно файл ресурсов из отдельных файлов в директории out/.
    1. директорию out/ надо создать вручную
    2. разбивать ресурсы с "python data_pack.py devtools_resources.pak" (devtools_resources.pak должен быть рядом с data_pack.py)
    3. собирать обратно с "python data_pack.py" (на выходе получим datapack1.pak)
     
     
     

    Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 19:26 30-10-2016 | Исправлено: ne_viens, 19:28 30-10-2016
    krsk

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    говорю ж: выложил бы, никаких вопросов...

    В первом посте линк на *.pak

    Цитата:
    В data_pack.py надо подправить предпоследнюю функцию main() в самом конце:  

    т.е. нужно 2 дата пака, для распаковки и сборки обратно?

    Всего записей: 948 | Зарегистр. 19-02-2016 | Отправлено: 19:45 30-10-2016
    ne_viens

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нет, один для распаковки и для упаковки. Различия только в коммандной строке вызова скрипта.

    Всего записей: 1530 | Зарегистр. 01-11-2004 | Отправлено: 19:56 30-10-2016
    krsk

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    2. разбивать ресурсы с "python data_pack.py devtools_resources.pak" (devtools_resources.pak должен быть рядом с data_pack.py)  
    3. собирать обратно с "python data_pack.py" (на выходе получим datapack1.pak)  

    Здесь вроде одна команда. Не увидел различий.  
    devtools_resources.pak - это дополнение только для распаковки? Вроде вьехал ))

    Всего записей: 948 | Зарегистр. 19-02-2016 | Отправлено: 19:59 30-10-2016 | Исправлено: krsk, 20:00 30-10-2016
    Dunkeshu

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Неактуально

    Всего записей: 621 | Зарегистр. 25-01-2010 | Отправлено: 21:40 30-10-2016 | Исправлено: Dunkeshu, 03:30 31-10-2016
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Распаковка *.pak


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru