На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Модераторы: Qraizer
  
> Помощь в компиляции проекта
    Добрый день. Хотелось бы получить помощи в компиляции приложения. По задумке разработчика оно должно конвертировать файлы sxb в xml и должна быть возможность преобразовать обратно. Но при попытке компиляции мной через Visual Studio 2013 выдает ошибки. В Debug режиме можно создать приложение, но оно не хочет обратно из xml в sxb запаковывать, точнее это делает, но пустым файлом. Может ли кто либо подправить или подсказать что не так?) Будем тогда сидеть и дальше разбираться. Было бы очень любезно с вашей стороны, если кто-нибудь смог сделать Release и выложить для скачивания:)

    https://yadi.sk/d/Xsslz0OT3Lspy5
      2017-я тоже не собрала. В библиотеках libcurl.lib и libcurld.lib связи с RTL не той версии, отсутствуют нужные символы.
      Дома есть 2013-ая, но до дому часов 6.
        Спасибо что посмотрели, я не тороплюсь и подожду пока вы попробуете в 2013 собрать)
        Сообщение отредактировано: lemmur -
          Подобная же хрень.
          В общем, без пересборки библиотек я это не слинкую. Подозреваю, что там либо использовались нестандартные библиотеки, либо не те сервиспаки.
            Цитата lemmur @
            sxb

            А что это за формат, есть описание?
              Цитата JoeUser @
              Цитата lemmur @
              sxb

              А что это за формат, есть описание?

              Вообще в интернете ассоциируется с SalesLogix VB Form/Script Transfer (Best Software). В моем случае в нём хранятся данные Локализации игрового клиента на 10 языках.При попытке загрузиться в клиенте с .xml (разумеется переписав расширения считываемых файлов с .sxb в .xml) происходит его закрытие с ошибкой, поэтому нужно запаковать обратно в этот формат) В интернете об этом мало информации, но хотелось бы найти решение. Зачем так было запаковывать не особо важные файлы не представляю.
              Сообщение отредактировано: lemmur -
                Интересно, а как ты собираешься писать конвертер, не зная спецификации выходного формата?
                Найдешь (скинешь) спецификацию - можно говорить дальше, а иначе тупиковое направление.
                  Цитата JoeUser @
                  Интересно, а как ты собираешься писать конвертер, не зная спецификации выходного формата?
                  Найдешь (скинешь) спецификацию - можно говорить дальше, а иначе тупиковое направление.

                  Вот человек в этом разбирался. Делал - выложил конвертер - что-то релизнуть его не получается используя те библиотеки, что он предоставил. В Debug версии получается только разобрать и иметь на выходе что-то типа такого:
                  ExpandedWrap disabled
                    <?xml version = "1.0"?>
                    <!-- type -->
                    <!-- typename -->
                    <!-- key -->
                    <!-- korean -->
                    <!-- jpn -->
                    <!-- chinese -->
                    <!-- eng -->
                    <!-- fra -->
                    <!-- deu -->
                    <!-- rus -->
                    <blocks>
                        <keys num_keys="10" key1="type" key2="typename" key3="key" key4="korean" key5="jpn" key6="chinese" key7="eng" key8="fra" key9="deu" key10="rus" />
                        <block key="am_co_gr_001_10_Name" korean="벌써 10렙" />
                        <block key="am_co_gr_001_10_Description" korean="10레벨 달성" />
                        <block key="am_co_gr_001_10_condition_0" korean="10레벨 달성" />
                        <block key="am_co_gr_001_20_Name" korean="지원아이템을 받아, 야타이만에 도전하라." />
                        <block key="am_co_gr_001_20_Description" korean="20레벨 달성" />
                        <block key="am_co_gr_001_20_condition_0" korean="20레벨 달성" />


                  Но в проекте также прописана возможность сборки, но к сожалению при сборке не захватываются блоки, только
                  type typename key korean jpn chinese eng fra deu rus .

                  Его объяснения как разложить файл.
                  Давайте разложим структуру этого файла по полочкам. Начнем с заголовка файла:
                  - Переменная в 2 байта - количество языков в файле, т.е. указывает сколько раз надо прочитать следующий блок:
                  Код (Text):
                  Неизвестная переменная, которая равна одному байту и всегда значение 1;
                  1 байт содержащий длину далее идущих символов (н-р. 3, 'key'. 6,'korean');
                  сама строка.
                  Тут заголовок заканчивается и начинаются оффсеты. Стоит учитывать, что для SXB файлов смещения в файле считаются 1 к 1 (ASCII), а на самом деле 1 к 2 (UNICODE).
                  2 байта - количество блоков в файле. Я считаю блок как все переводы одной строки, т.е. этот параметр умножаем на количество языков.
                  Н-р.: языков у нас 5. Значит получив значение 0x0506 * 5 = 6430 офсетов. Каждый офсет весит 4 байта, а значит надо прочитать из файла 6430 * 4 = 25720 байт.
                  После офсетов идет 4 байта указывающие на размер блока данных.
                  Сам блок данных разбирается легко, т.к. у нас уже есть вся информация по нему.
                  Н-р.: чтобы получить ключ, нам надо из второго офсета вычесть первый и умножить на 2. Так мы вырежем только ключ в формате UNICODE.
                  Сообщение отредактировано: lemmur -
                    Приаттач архив с примером файла, ну или скинь куда-нить и линк дай.
                    Беглое гугление привело меня вот к этому - https://github.com/Saleslogix/SLXMigration/...les/Widgets.sxb но внутри какая-то невменяемая дичь. Или я другое что-то смотрел.
                      Цитата JoeUser @
                      Приаттач архив с примером файла, ну или скинь куда-нить и линк дай.
                      Беглое гугление привело меня вот к этому - https://github.com/Saleslogix/SLXMigration/...les/Widgets.sxb но внутри какая-то невменяемая дичь. Или я другое что-то смотрел.

                      Вот пример файла для разбора.

                      Если мы его разбираем в первом посте в дебаг компильнутым проектом то получаем такой xml.
                      Прикреплённый файлПрикреплённый файлlocalstringdata_actionlist.xml.zip (1,87 Кбайт, скачиваний: 100)
                      Сообщение отредактировано: lemmur -

                      Прикреплённый файлПрикреплённый файлlocalstringdata_actionlist.zip (8,08 Кбайт, скачиваний: 94)
                        Скрытый текст
                        Вечерком постараюсь глянуть
                          Лирика

                          Цитата lemmur @
                          Переменная в 2 байта - количество языков в файле

                          Беглый просмотр уже (еще не начав программить!) обозначил косяк! Смотри:

                          1) "количество языков" - в предоставленном файле их, по утверждению 10
                          2) Ищем - korean, jpn, chinese, eng, fra, du, ru

                          Итого 7. А языков 10.

                          Цитата lemmur @
                          1 байт содержащий длину далее идущих символов (н-р. 3, 'key'. 6,'korean');
                          сама строка.

                          И? И что это?

                          и т.д.

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

                          Советы

                          1) Зачем XML? Я так понял - вам надо "править" файлы? Откройте для себя термины "сериализация/десериализация". Можно просто скидывать последовательно, построчно данные в виде "ключ : значение" в текстовом представлении. Скидывать проще, и считывать проще. В ручной правке не запутаетесь. Нафик XML, нафик парсинг.
                          2) По коду я увидел обращение к переводчику гугла. Отделите мухи от котлет. Обработка не обязана быть в виде одного процесса. А если гугыль затупит, станет недоступным? Разделите задачи, а-ля: парсинг и сериализация, выделение строк для перевода, перевод, десериализация в итоговые файлы. С контролем исполнения на каждом этапе. Возможно сэкономите время и на отладке, и на исполнении - появится возможность не начинать с нуля, а начинать с несделанного/или обломившегося.
                          3) Избегайте сторонних либ, с которыми не имели дело сами, и которые совсем уж мало известные. Я о подобных "config4cpp".
                          4) Возьмите фрэймворк а-ля Qt, там вкусняшек масса - и все компилируется и работает
                            Цитата JoeUser @
                            Лирика

                            Цитата lemmur @
                            Переменная в 2 байта - количество языков в файле

                            Беглый просмотр уже (еще не начав программить!) обозначил косяк! Смотри:

                            1) "количество языков" - в предоставленном файле их, по утверждению 10
                            2) Ищем - korean, jpn, chinese, eng, fra, du, ru

                            Итого 7. А языков 10.

                            Цитата lemmur @
                            1 байт содержащий длину далее идущих символов (н-р. 3, 'key'. 6,'korean');
                            сама строка.

                            И? И что это?

                            и т.д.

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

                            Советы

                            1) Зачем XML? Я так понял - вам надо "править" файлы? Откройте для себя термины "сериализация/десериализация". Можно просто скидывать последовательно, построчно данные в виде "ключ : значение" в текстовом представлении. Скидывать проще, и считывать проще. В ручной правке не запутаетесь. Нафик XML, нафик парсинг.
                            2) По коду я увидел обращение к переводчику гугла. Отделите мухи от котлет. Обработка не обязана быть в виде одного процесса. А если гугыль затупит, станет недоступным? Разделите задачи, а-ля: парсинг и сериализация, выделение строк для перевода, перевод, десериализация в итоговые файлы. С контролем исполнения на каждом этапе. Возможно сэкономите время и на отладке, и на исполнении - появится возможность не начинать с нуля, а начинать с несделанного/или обломившегося.
                            3) Избегайте сторонних либ, с которыми не имели дело сами, и которые совсем уж мало известные. Я о подобных "config4cpp".
                            4) Возьмите фрэймворк а-ля Qt, там вкусняшек масса - и все компилируется и работает

                            3 года назад это было актуально и верно, сама игра не стоит на месте и развивается, вот и выходит что видны сразу косяки
                              ЗЫ: А по большому счету, особенное если таких файлов оч много, я бы подошел по другому принципу - начал бы с обратного - написания десериализатора. Берем и составляем свой "сценарий", на основе которого десериализатор выдает нужные файлы. Осталось:

                              1) Распотрошить исходные файлы в "сценарии"
                              2) Перевести в нужные языки
                              3) Отредактировать "сценарии"
                              4) Сформировать нужные sxb-файлы

                              Профит.

                              Добавлено
                              Цитата lemmur @
                              сама игра не стоит на месте и развивается

                              Тем более!!! В динамике не байты-биты надо искать и отслеживать, а уйти в обобщение. Найти главное, и только потом уже отслеживать мелочи.
                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script execution time: 0,0689 ]   [ 19 queries used ]   [ Generated: 28.03.24, 08:13 GMT ]