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

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

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

Author24 — интернет-сервис помощи студентам
Всем доброго вечера!
У меня возник такой вопрос. Если есть скрипт-парсер, который парсит из формата RTОN (он не очень известный формат) в JSON, то можно ли создать скрипт-парсер, который будет парсить в обратную сторону, то есть JSОN в RTОN?
Сам файл прилагаю, в формате .txt, переименуйте в .py: parser.txt
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2015, 18:11
Ответы с готовыми решениями:

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

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

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

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

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

55
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 07:27  [ТС] 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от 0x10 Посмотреть сообщение
Зачем вообще понадобился промежуточный json и почему он именно в таком формате? Что мешает добавить поле с исходным типом, чтобы конвертация была однозначной?
Он мне понадобился для человеческого редактирования конфигурации уровней и прочего. Потому что сложно, знаете ли, в кракозябрах копаться. Отредактировал JSON - и обратно закодировал в RTОN.
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,133
Записей в блоге: 6
30.10.2015, 08:16 22
Это называется конвертер.
Парсер - это когда читается в память, в структурированном виде.
Понятно, что конвертер тоже должен содержать в себе парсер. И это более сложная часть. Читать сложнее, чем писать (чукча не читатель, чукча писатель).
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 08:38  [ТС] 23
Цитата Сообщение от dondublon Посмотреть сообщение
Это называется конвертер.
Парсер - это когда читается в память, в структурированном виде.
Понятно, что конвертер тоже должен содержать в себе парсер. И это более сложная часть. Читать сложнее, чем писать (чукча не читатель, чукча писатель).
И как же мне сделать конвертер на основе парсера?
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,133
Записей в блоге: 6
30.10.2015, 09:24 24
Yan01, в вашем случае всё проще.
Задача: JSON -> память -> RTON.
Первая стрелка - работа парсера, но парсер JSON уже есть. Вам надо только написать экспорт в RTON.
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 09:41  [ТС] 25
Цитата Сообщение от dondublon Посмотреть сообщение
Yan01, в вашем случае всё проще.
Задача: JSON -> память -> RTON.
Первая стрелка - работа парсера, но парсер JSON уже есть. Вам надо только написать экспорт в RTON.
Как же это сделать? Парсера нет, есть скрипт, который конвертирует RTОN в JSОN.
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,133
Записей в блоге: 6
30.10.2015, 10:07 26
Yan01, скрипт из RTON в JSON - это другая задача, он вам не поможет.
Делать - понятно, как загружаете файл JSON, пользуясь стандартным парсером, он к Питону прилагается (import json).
Потом его записываете в RTON. Это если у вас есть описание формата RTON. В интернете я такого, к примеру, не нашёл.
Если же описания нет - вы попали.
Надо действительно читать ваш скрипт rton->json, анализировать и этот формат восстанавливать.
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 10:17  [ТС] 27
Цитата Сообщение от dondublon Посмотреть сообщение
Yan01, скрипт из RTON в JSON - это другая задача, он вам не поможет.
Делать - понятно, как загружаете файл JSON, пользуясь стандартным парсером, он к Питону прилагается (import json).
Потом его записываете в RTON. Это если у вас есть описание формата RTON. В интернете я такого, к примеру, не нашёл.
Если же описания нет - вы попали.
Надо действительно читать ваш скрипт rton->json, анализировать и этот формат восстанавливать.
В смысле, проанализировать? Сложно ли это? Могу ли я, человек, который почти не знает Python, это сделать?
Вот скрипт: rton.txt
0
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
30.10.2015, 11:42 28
Цитата Сообщение от Yan01 Посмотреть сообщение
Могу ли я, человек, который почти не знает Python, это сделать?
Судя по вопросам и неглубокому пониманию сути задачи, лучше заказать решение у кого-нибудь. Возможно, с доработкой конвертера rton -> json, о которых я говорил выше.
0
0 / 0 / 0
Регистрация: 14.10.2014
Сообщений: 45
30.10.2015, 12:03  [ТС] 29
Цитата Сообщение от 0x10 Посмотреть сообщение
Судя по вопросам и неглубокому пониманию сути задачи, лучше заказать решение у кого-нибудь. Возможно, с доработкой конвертера rton -> json, о которых я говорил выше.
За деньги, которых нет
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,133
Записей в блоге: 6
30.10.2015, 13:41 30
Цитата Сообщение от Yan01 Посмотреть сообщение
В смысле, проанализировать? Сложно ли это? Могу ли я, человек, который почти не знает Python, это сделать?
Вот скрипт: rton.txt
Да, я посмотрел. Ничего сверхъестественного, но повозиться придётся. Скрипт нормально написан, прочитать можно.
Python - язык достаточно простой, так что можно будет.
Описания формата точно нет?
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
30.10.2015, 13:44 31
Можно, вот, пожалуйста -
Цитата Сообщение от dondublon Посмотреть сообщение
Описания формата точно нет?
Это проприетарный формат http://www.popcap.com/
Описалова я тоже не нашел.
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,133
Записей в блоге: 6
30.10.2015, 13:46 32
Да, кстати, один принципиальный момент.
rton -> json. Из бинарника, где существенен размер чисел, в байтах, вы конвертируете в текст. Окей, вопросов нет. Набор из любого известного числа байт (2|4|8) можно конвертануть в число и его потом в строку записать.

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

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

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

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

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

Не по теме:

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

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

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

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

Чуть ли не в каждом посте появляется вопрос «как это сделать?». Ну как: сесть и написать. Нет волшебного способа, чтобы переделать имеющийся конвертер на обратный.
0
31.10.2015, 07:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2015, 07:31
Помогаю со студенческими работами здесь

Парсер не парсит
public void readTxt() throws IOException { String strLine; /** читаем...

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

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

FOR в обратную сторону
Как в с++ сделать for наоборот? ну то есть не от 1 к n, а от n к 1. подскажите, прошу. ...

Кнопка в обратную сторону
Вот кнопка вперед, как сделать кнопку назад? function echo (n){ text = ''; for (var i = n*po;...

Видео в обратную сторону
Здравствуйте, уважаемые форумчане! :) Сразу хочу сказать, что в обработке видео я полный нуб,...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru