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

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

29.10.2015, 18:11. Показов 6209. Ответов 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
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,181
Записей в блоге: 6
30.10.2015, 08:16
Это называется конвертер.
Парсер - это когда читается в память, в структурированном виде.
Понятно, что конвертер тоже должен содержать в себе парсер. И это более сложная часть. Читать сложнее, чем писать (чукча не читатель, чукча писатель).
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 08:38  [ТС]
Цитата Сообщение от dondublon Посмотреть сообщение
Это называется конвертер.
Парсер - это когда читается в память, в структурированном виде.
Понятно, что конвертер тоже должен содержать в себе парсер. И это более сложная часть. Читать сложнее, чем писать (чукча не читатель, чукча писатель).
И как же мне сделать конвертер на основе парсера?
0
Эксперт Python
 Аватар для dondublon
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,181
Записей в блоге: 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
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,181
Записей в блоге: 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
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,181
Записей в блоге: 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
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,181
Записей в блоге: 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
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,181
Записей в блоге: 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
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,181
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru