Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/29: Рейтинг темы: голосов - 29, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45

Как создать парсер, который парсит в обратную сторону

29.10.2015, 18:11. Показов 6380. Ответов 55
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго вечера!
У меня возник такой вопрос. Если есть скрипт-парсер, который парсит из формата RTОN (он не очень известный формат) в JSON, то можно ли создать скрипт-парсер, который будет парсить в обратную сторону, то есть JSОN в RTОN?
Сам файл прилагаю, в формате .txt, переименуйте в .py: parser.txt
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.10.2015, 18:11
Ответы с готовыми решениями:

Парсер, который парсит сообщения (темы,картинки,итд) с форума A на форум B
Здравствуйте дорогие кодеры! Помогите пожалуйста с советом...проблема такого характера: Нужно написать парсер который парсит...

Как мне сделать движение в обратную сторону?
Есть программа, где квадрат как бы сжимается до тех пор пока не станет крестом "Х", а затем он должен разжиматься обратно в...

Как сделать Value полосы прокрутки в обратную сторону?
Как сделать value hscroll'a в обратную сторону, т.е. например вместо 0-10, сделать 10-0

55
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 07:27  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от 0x10 Посмотреть сообщение
Зачем вообще понадобился промежуточный json и почему он именно в таком формате? Что мешает добавить поле с исходным типом, чтобы конвертация была однозначной?
Он мне понадобился для человеческого редактирования конфигурации уровней и прочего. Потому что сложно, знаете ли, в кракозябрах копаться. Отредактировал JSON - и обратно закодировал в RTОN.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
30.10.2015, 08:16
Это называется конвертер.
Парсер - это когда читается в память, в структурированном виде.
Понятно, что конвертер тоже должен содержать в себе парсер. И это более сложная часть. Читать сложнее, чем писать (чукча не читатель, чукча писатель).
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 08:38  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Это называется конвертер.
Парсер - это когда читается в память, в структурированном виде.
Понятно, что конвертер тоже должен содержать в себе парсер. И это более сложная часть. Читать сложнее, чем писать (чукча не читатель, чукча писатель).
И как же мне сделать конвертер на основе парсера?
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
30.10.2015, 09:24
Yan01, в вашем случае всё проще.
Задача: JSON -> память -> RTON.
Первая стрелка - работа парсера, но парсер JSON уже есть. Вам надо только написать экспорт в RTON.
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 09:41  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Yan01, в вашем случае всё проще.
Задача: JSON -> память -> RTON.
Первая стрелка - работа парсера, но парсер JSON уже есть. Вам надо только написать экспорт в RTON.
Как же это сделать? Парсера нет, есть скрипт, который конвертирует RTОN в JSОN.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
30.10.2015, 10:07
Yan01, скрипт из RTON в JSON - это другая задача, он вам не поможет.
Делать - понятно, как загружаете файл JSON, пользуясь стандартным парсером, он к Питону прилагается (import json).
Потом его записываете в RTON. Это если у вас есть описание формата RTON. В интернете я такого, к примеру, не нашёл.
Если же описания нет - вы попали.
Надо действительно читать ваш скрипт rton->json, анализировать и этот формат восстанавливать.
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 10:17  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Yan01, скрипт из RTON в JSON - это другая задача, он вам не поможет.
Делать - понятно, как загружаете файл JSON, пользуясь стандартным парсером, он к Питону прилагается (import json).
Потом его записываете в RTON. Это если у вас есть описание формата RTON. В интернете я такого, к примеру, не нашёл.
Если же описания нет - вы попали.
Надо действительно читать ваш скрипт rton->json, анализировать и этот формат восстанавливать.
В смысле, проанализировать? Сложно ли это? Могу ли я, человек, который почти не знает Python, это сделать?
Вот скрипт: rton.txt
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
30.10.2015, 11:42
Цитата Сообщение от Yan01 Посмотреть сообщение
Могу ли я, человек, который почти не знает Python, это сделать?
Судя по вопросам и неглубокому пониманию сути задачи, лучше заказать решение у кого-нибудь. Возможно, с доработкой конвертера rton -> json, о которых я говорил выше.
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 12:03  [ТС]
Цитата Сообщение от 0x10 Посмотреть сообщение
Судя по вопросам и неглубокому пониманию сути задачи, лучше заказать решение у кого-нибудь. Возможно, с доработкой конвертера rton -> json, о которых я говорил выше.
За деньги, которых нет
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
30.10.2015, 13:41
Цитата Сообщение от Yan01 Посмотреть сообщение
В смысле, проанализировать? Сложно ли это? Могу ли я, человек, который почти не знает Python, это сделать?
Вот скрипт: rton.txt
Да, я посмотрел. Ничего сверхъестественного, но повозиться придётся. Скрипт нормально написан, прочитать можно.
Python - язык достаточно простой, так что можно будет.
Описания формата точно нет?
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
30.10.2015, 13:44
Можно, вот, пожалуйста -
Цитата Сообщение от dondublon Посмотреть сообщение
Описания формата точно нет?
Это проприетарный формат http://www.popcap.com/
Описалова я тоже не нашел.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
30.10.2015, 13:46
Да, кстати, один принципиальный момент.
rton -> json. Из бинарника, где существенен размер чисел, в байтах, вы конвертируете в текст. Окей, вопросов нет. Набор из любого известного числа байт (2|4|8) можно конвертануть в число и его потом в строку записать.

А обратно как? Информация о размере числа (в байтах) отсутствует. А это может быть существенно для программы, которая потом ваш rton читать будет.
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 13:51  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Да, кстати, один принципиальный момент.
rton -> json. Из бинарника, где существенен размер чисел, в байтах, вы конвертируете в текст. Окей, вопросов нет. Набор из любого известного числа байт (2|4|8) можно конвертануть в число и его потом в строку записать.
А обратно как? Информация о размере числа (в байтах) отсутствует. А это может быть существенно для программы, которая потом ваш rton читать будет.
Не волнуйтесь. Исполняемый файл внутри игры сам переконвертирует и поймёт, главное -- чтоб RTON Parser внутри игры понял, а если всё составлено верно, по аргументам, - поймёт. Сколько это займёт времени? Кто смог бы сделать?
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
30.10.2015, 13:51
Цитата Сообщение от dondublon Посмотреть сообщение
А обратно как? Информация о размере числа (в байтах) отсутствует. А это может быть существенно для программы, которая потом ваш rton читать будет.
Я это писал в постах 16 и 18. И еще где-то, что конвертер в json можно доработать, чтобы не терять информацию о типах.
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 13:56  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
Это проприетарный формат http://www.popcap.com/
Описалова я тоже не нашел.
Я просто являюсь "взломщиком" (если это так можно назвать) игры PvZ 2. В кавычках, потому что я скорее просто роюсь в коде и что-то пытаюсь расшифровывать, а так языки программирования толком не знаю. У нас даже есть своя беседа по взломам. Состоящая, правда, из учеников средней школы, но что-то удаётся)
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
30.10.2015, 14:00
Знаете, как бы я поступил, если бы меня припёрло?

Конвертировать в JSON не нужно. Кому он нужен, этот JSON?

Взял бы этот скрипт, и на его основе сформировал древовидную модель в памяти. (Для этого хорошо подойдут Qt-шные объекты, но это необязательно, дело вкуса.) Сейчас скрипт делает json-текст, так вот, вместо него - дерево.

Надо редактировать? Окей, редактируем эту модель.
Каждый узел держит ссылку на позицию в файле. По этой позиции можно прочитать - что там, и сколько байт занимает.
Поменять значение без изменения размера - вообще делать нечего.
Изменить размер или вставить тоже можно, хотя уже сложнее.

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от 0x10 Посмотреть сообщение
Я это писал в постах 16 и 18. И еще где-то, что конвертер в json можно доработать, чтобы не терять информацию о типах.
Верно, прошу прощения, не посмотрел.

0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 14:02  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Знаете, как бы я поступил, если бы меня припёрло?
Конвертировать в JSON не нужно. Кому он нужен, этот JSON?
Взял бы этот скрипт, и на его основе сформировал древовидную модель в памяти. (Для этого хорошо подойдут Qt-шные объекты, но это необязательно, дело вкуса.) Сейчас скрипт делает json-текст, так вот, вместо него - дерево.
Надо редактировать? Окей, редактируем эту модель.
Каждый узел держит ссылку на позицию в файле. По этой позиции можно прочитать - что там, и сколько байт занимает.
Поменять значение без изменения размера - вообще делать нечего.
Изменить размер или вставить тоже можно, хотя уже сложнее.
А мне-то что делать?
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
30.10.2015, 14:26
Yan01, ну не знаю. Я дал совет, хотите - делайте, хотите - нет.
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 21:49  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Yan01, ну не знаю. Я дал совет, хотите - делайте, хотите - нет.
Насколько сложно сделать эту модель? Нужно ли для этого знать языки программирования?
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
31.10.2015, 07:31
Цитата Сообщение от Yan01 Посмотреть сообщение
Насколько сложно сделать эту модель? Нужно ли для этого знать языки программирования?
По порядку.
Что есть сейчас. Есть приложение, конвертирующее бинарный формат в человекочитаемый (вместе с этим теряя информацию о типах). Задача: нужно написать конвертер из человекочитаемого обратно в бинарный.

Что предлагает dondublon: не использовать промежуточное представление, я сделать редактор, который будет грузить файл в бинарном формате в память и предоставлять интерфейс для его редактирования. Не уверен, что это будет проще, по мне так с интерфейсом возни даже больше.

Отвечая на вопрос: да, код писать нужно в любом из двух вариантов.

Чуть ли не в каждом посте появляется вопрос «как это сделать?». Ну как: сесть и написать. Нет волшебного способа, чтобы переделать имеющийся конвертер на обратный.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.10.2015, 07:31
Помогаю со студенческими работами здесь

Как добавить определенное число ко времени и сделать секундомер в обратную сторону?
Как добавить определенное число ко времени и сделать секундомир в обратною сторону. Вот мой код: <div class="main...

Парсер не парсит
Пробую писать парсер на PHP, пользуюсь dom.php. Столкнулся с такой проблемой, что не могу извлечь значение. Кусочек исходного кода на...

Парсер не парсит
public void readTxt() throws IOException { String strLine; /** читаем данные из файла и выводим построчно ...

Написал парсер но он парсит другое
Нужно спарсить с сайта realmadrid.kz список следующих и прошедших матчей, вот собственно код <?php $url =...

Парсер парсит только последние записи
Здравствуйте ,подскажите пожалуйста почему парсер парсит только последние записи? import requests from bs4 import BeautifulSoup ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip . . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru