Найти - Пользователи
Полная версия: подскажите по формотированию поля вывода из разных источников
Начало » Python для новичков » подскажите по формотированию поля вывода из разных источников
1 2
AD0DE412
в общем программа где пользователь вводит в разные поля разные текстовые данные
вот так примерно это должно настраиваться


















затруднение в том что я не знаю как какой формат задания поля для таблицы сделать (последний виджет)
(хотелось бы что то вроде упрощенной регулярки) что бы на основе этих данных формировался файл (для для таблицы) csv или xls (в создании этих файлов проблем нет)

пожалуйста подскажите есть ли какая ни буть библиотека или … эээ … общепринятый метод для задания пользователем формата поля вывода (возможно из разных полей ввода)
py.user.next
Сумбурное описание. Опиши весь процесс (один конкретный сценарий прохождения всего от начала до конца - от ввода данных до получения желаемого результата) без кода и без окон приложения.
Что у тебя на входе? Как это обрабатывается в процессе? Какой результат нужно получить после обработки?
AD0DE412
без окон приложения не получется (:
основной экран стартовое состояние



добавили одно событие



открыли просмотр сообщения (здесь из полей ввода нужно собрать текст по как ому то правилу заданному пользователем)



открыли экран полей текстового ввода (таб по просмотру сообщения)



выбрали одно поле и ввели текст (аналогично с другим)



открыли меню нажали экспортировать (здесь нужно собрать из полей текстового ввода событий таблицу)

выбрали формат и название файла для экспорта




что нужно
как ой то желательно простой способ задать пользователем правил сборки полей для таблицы из разных полей текстового ввода ну по типу
/(поле 1 строка 2) че то (поле 2 строка 1) бла бла (поле 2 строки от 1 до 5) лалала (поле 1 от слова это до слова то)/
получили правило для поля колонки для другой колонки другое правило итд
строки таблицы это события основного экрана

те я могу сделать свой велосипед с квадратными колесами и не скучным синтаксисом
но если есть велосипед с мениее угловатыми обводами колес и хоть где то используемый
то очевидно что нужно выбрать

ps пока все в состоянии препрепре но основной функционал готов процентов на 60 (ну конечно не учитываю финальный отлов багов и приведение всего в более мение приглаженый вид) без дизарйнерских изысков (и хз хватит ли меня на них теоретически можно натянуть разные стили итд итп)
py.user.next
Непонятно, что за программу ты делаешь. Поэтому и задача не ясна. Звучит как “у меня есть программа, в ней нужно чо-то как-то выбрать, как мне лучше выбрать это чо-то как-то?”.
AD0DE412
если че мопед не мой это … у родителей на работе сова менеджмент помешаный на разных метриках
в конце рабочего дня им приходится писать кучу отчетов дублирующих друг друга в разных форматах которые меняются с нерегулярной переодичностью (это не считая бумажных отчетов)
устанавливать на рабочие станции что то свое нельзя ибо безопасность
плюсом они во время работы не всегда в оффисе
плюсом там у них какая то программа с тем же смыслом (не знаю что за программа) котороя кривая и глючная (нет возможности пользователю просмотреть кто когда кого сколько что плохо смотрим метрики) но могущая кушать csv
также есть какая то мобильная приблуда с тем же смыслом и таким же качеством
ну и естественно что то свое ставить нельзя потому что безопасность

идея в том что бы программа сама считала сколко потрачено куда и выдавала хотя бы полуфабрикат
после по майлу отправить это на корпаротивную почту
ну а там копи-паста и\или рассылка

и да есть какие то еще разные сторонние организации которые обслуживают это естественно рандомно ломая все (родители работают в крупной российской компании)

вот такой вот кафка с салтыковым-щедрином
Rodegast
Тебе валидация нужна? Используй для этого регулярки.
AD0DE412
Rodegast
регулярки
так это понятно просто формат есть как ой то устоявшийся или че то свое колхозить типа f-string
ps проверка не нужна нужно что то гибкое и простое в настройке шаблона для поля колонки
pps если устоявшегося формата нет то напишите буду свое колхозить
py.user.next
AD0DE412
затруднение в том что я не знаю как какой формат задания поля для таблицы сделать (последний виджет)
(хотелось бы что то вроде упрощенной регулярки) что бы на основе этих данных формировался файл (для для таблицы) csv или xls (в создании этих файлов проблем нет)
AD0DE412
что нужно
как ой то желательно простой способ задать пользователем правил сборки полей для таблицы из разных полей текстового ввода ну по типу
/(поле 1 строка 2) че то (поле 2 строка 1) бла бла (поле 2 строки от 1 до 5) лалала (поле 1 от слова это до слова то)/
получили правило для поля колонки для другой колонки другое правило итд
строки таблицы это события основного экрана
Нужно сделать любой подходящий язык задания фильтров, который будет пригоден для простых пользователей, не знающих, что такое регулярные выражения. Затем этот язык оттранслировать в регулярные выражения и другие алгоритмы. Какие-то части языка будут отображаться на алгоритмы, не связанные с регулярными выражениями. И после этого, используя регулярные выражения и другие алгоритмы в качестве промежуточной формы, выбирать уже нужные данные для экспорта. Таким образом, пользователь будет видеть удобный язык задания фильтров для данных, но выбираться данные будут по конкретным алгоритмам разной сложности, которые пользователю не видны.
AD0DE412
py.user.next спсб точно именно это (эээ извиняюсь за весь сумбур выше) так вот что то подобное существует?
py.user.next
AD0DE412
так вот что то подобное существует?
Легче будет самому написать, чем разбираться в средствах, которые существуют, и подстраиваться под их недостатки. Когда сам пишешь, всё только от тебя зависит.

1. Придумай язык для задания фильтров.
2. Напиши лексический анализатор для разложения пользовательского ввода на составляющие - в поток лексем.
3. Напиши синтаксический анализатор для выполнения действий в соответствии с поступающим в него потоком лексем.

Вот весь синтаксис для ввода продумывается на первом пункте. На втором пункте ты пишешь программу, которая строку символов по твоему придуманному синтаксису раскладывает на отдельные, сгруппированные куски. На третьем пункте, когда у тебя эти выделенные куски есть, ты в соответствии с ними выполняешь действия.

Например
Ты получаешь строку
действие1 and действие2 and действие3
Дальше эта строка передаётся в лексический анализатор.
На выходе лексического анализатора ты получаешь последовательность лексем
((task, name=действие1), (task, name=действие2), (task, name=действие3), (end))
Дальше эта последовательность лексем передаётся в синтаксический анализатор.
В результате его работы будут выполняться действия.
(task, name=действие1) -> выбрать набор данных из колонки 1 по регулярному выражению
(task, name=действие2) -> выбрать набор данных из колонки 2 по количеству
(task, name=действие3) -> выбрать набор данных из колонки 3 по диапазону
(end) -> сохранить набор данных из выбранных колонок в файл
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB