|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 34489. Ответов 421
Метки вопросы наследования (Все метки)
начало было положено в ветке - Считать текстовые файлы из папки - там и возник вопрос об Архитектуре...
собрала... осталось отображение создать (типа I_tbl_Show) и пронаследовать ? в разные классы пункта назначения (или на консоль, или в файл, или в БД, или допустим ещё в форму)... N.B. классы (пункты-назначения) делать не надо - эти View уже реализованы разработчиками того ПО, на котором сейчас идёт работа... а) пока что можно просто прописать функции-члены класса; и по месту использовать, что надо при разработке - в файл или на консоль; б) в перспективе для Release - реализовать и откомпилировать и выгрузку и в файл, и выгрузку в БД, и отражение в DataGrid... === !! Т.Е. если в Release захочется и выгрузку в текст, и в БД, и допустим ещё в форму (например с разных кнопок сделать) - тут уж лучше и писать, как положено, наследование??... -- к слову из прошлой ветки о: === Обоснование выбора уровня Абстракции (I_tbl_Show со всеми виртуальными функциями): чтобы не дублировать код-сбора-для-выгрузки -- сделать class Table - и класс-интерфейс I_tbl_Show, в котором обозначить virtual-функции выгрузки... эти функции определить в др. классах - типа Interface (IwriteCSV, IwriteDB, IwriteDataGrid)... p.s. классы консоль, файл, бд, DataGrid - не создаём, т.к. эти пункты назначения уже присутствуют... p.p.s. вывести конечные интерфейсы с определёнными методами записи на кнопки... === ИЛИ то, что подчёркнуто чуть выше, стоит реализовать в одном классе Table, и здесь же задать все virtual функции ?? === на скрине: синие - классы, зелёные - интерфейсы (в с++ по сути тоже классы) птицами отмечены уже кое-как реализованные классы (2 птицы) курсивные стрелки - отсутствие наследования ![]() Добавлено через 7 минут вобщем вопрос: class Table и класс I_Tbl_Show - объединить или нет? Добавлено через 10 минут p.p.s. чтобы избежать проблем Ромба и такого: Неоднозначность при множественном наследовании
0
|
||||
| 11.03.2020, 10:51 | |
|
Ответы с готовыми решениями:
421
Проверка двух текстовиков
Сделать скрипт для вывода текстов из текстовиков |
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||||||||
| 19.06.2020, 16:37 [ТС] | |||||||||
|
Добавлено через 8 минут Добавлено через 47 минут Добавлено через 2 часа 24 минуты ![]() ну и ладно... если он
=== ИТОГО: 2. thread.join; или async сам возвращает в текущий поток своим .get() === sorry за вчерашнюю панику - - всем спасибо
0
|
|||||||||
|
390 / 335 / 66
Регистрация: 14.10.2014
Сообщений: 1,495
|
|||
| 19.06.2020, 19:02 | |||
|
Эта функция вернёт фьючерс и гарантирует выполнение вызываемой сущности, передаваемой ей в качестве аргумента. Эта сущность будет выполнена либо параллельно (если есть такая возможность), либо последовательно. Про GUI с потоками: я не знаю, как в U++ организована обработка событий, в Qt к примеру сигнально - слотовая система. Так вот она с многопоточностью может иногда не работать. Пример: если запустить какую-нибудь сущность (класс) в отдельном потоке и попытаться обрабатывать его сигналы (с параметрами) - то это может не работать. Лечится специальным макросом. А проще делать так - работать с сигналами и слотами без параметров. А необходимые параметры (в ответ на сигнал) передавать через гетеры - такой способ прекрасно работает
0
|
|||
|
|
|||
| 19.06.2020, 20:02 | |||
|
Может не работать? Что за формулировки блин.
Добавлено через 2 минуты
0
|
|||
|
390 / 335 / 66
Регистрация: 14.10.2014
Сообщений: 1,495
|
||
| 19.06.2020, 20:17 | ||
|
Добавлено через 2 минуты Просто у меня было так, что объект с параметрами в одном потоке, а гуи в другом. Решений было два - либо регить нужный класс специальным макросом, либо передавать нужные параметры через гетер
0
|
||
|
|
|
| 19.06.2020, 20:48 | |
|
Тут вообще стоит задаться вопросом есть ли в Ultimate++ "поддержка" многопоточности.
Имею виду синхронизацию GUI и вторичных потоков. Поэтому я считаю что выбирать всегда стоит Qt так как в нем с этим все очевидно в отличии от других фремймворков.
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||||||
| 20.06.2020, 18:31 [ТС] | |||||||
|
но пока не сделаю работающий код - не поверю ничему... мне потом свой код читать легче... и так наворачиваются иногда листинги, когда все нюансы надо учесть...Кликните здесь для просмотра всего текста
вообще люблю краткие решения, потому что проект всегда имеет свойство разрастаться дальше - с появлением новых нюансов или просто если захочу его масштабировать и на др задачи или файлы др. рода (там просто инфо очень разношёрстная нужна и источник не от меня зависит - подстраиваюсь всегда в коде, как могу - стараясь не разжёвывать коду то, что ему подсовываю - т.к. знаю, что может и меняться и усложняться входящая инфо и не мной - и опять парсить и/или менять пути и т.д.)...
0
|
|||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||
| 20.06.2020, 18:49 [ТС] | |||
а GuiLock видимо сам какой синхронизирующий (даже, не примитив, а класс самой u++)
0
|
|||
|
415 / 150 / 48
Регистрация: 02.06.2016
Сообщений: 364
|
|||||||
| 21.06.2020, 13:06 | |||||||
1
|
|||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||
| 22.06.2020, 15:41 [ТС] | ||||
усложнённый вариант, наверно, Mediator - Посредник - чтобы передать что-то ещё... или даже паттерн Команда можно рассмотреть... p.s. как вариант, возможно, стоит делать thread.detach (чтобы не ждать thread.join в главном потоке) - и по окончанию подгрузки послать Message в главный поток?? может это вариант "совсем отвязаться от главного потока до окончания второстепенного"? (ну и, полагаю, работать с std:: promise, а не strd::futures)? или вы знаете др. способ совсем не лочить GUI ?? ![]() p.s, Кликните здесь для просмотра всего текста
Добавлено через 2 минуты чувствую мы уже приближаемся к нему... в хорошем смысле
0
|
||||
| 22.06.2020, 18:09 | |
|
0
|
|
|
390 / 335 / 66
Регистрация: 14.10.2014
Сообщений: 1,495
|
|
| 22.06.2020, 18:14 | |
|
JeyCi, если GUI виснет - что тут можно сделать - запускать в отладке и смотреть, когда он виснет, пытаться найти проблему - только так
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||
| 22.06.2020, 19:21 [ТС] | |||
|
на сайте видела только такое - Resolving memory leaks... но как отлавливать утечки - ещё не в теме... ?? наверно, мониторя глазами окошко справа - там вроде ассемблер (call, add, mov, jmp и др)
0
|
|||
|
|
|
| 22.06.2020, 19:25 | |
|
JeyCi, Насчет выбора фреймворка вот есть статейка https://habr.com/ru/post/194590/ но главное это почитать комментарии.
1
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 22.06.2020, 19:37 [ТС] | ||
|
перенесла код из main в обработку нажатия на кнопку - подождала ... вроде дождалась окончания подгрузки... скорость вроде не уступает vba- варианту... и то радует... там кстати тоже пока работает макрос - ничего особо не сделаешь... осталось всё перетрясти для теста многопоточности и красоту наводить
0
|
||
|
415 / 150 / 48
Регистрация: 02.06.2016
Сообщений: 364
|
||||||||||||
| 22.06.2020, 19:37 | ||||||||||||
|
Здесь выделяется память через new каждый раз, при каждом нажатии кнопки:
К тому же таем еще из левого класса зачем-то удаляется основное окно Qt.
1
|
||||||||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 22.06.2020, 19:44 [ТС] | ||
![]() Добавлено через 1 минуту а как отловить в процессе разработки?.. а не уже при эксплуатации софтины нарваться?.. на утечку...
0
|
||
| 22.06.2020, 20:00 | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 23.06.2020, 06:21 [ТС] | ||
|
0
|
||
| 23.06.2020, 06:21 | |
|
В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу архитектура процессоров и компьютерная архитектура,Intel32. для первокурсников Ошибка "в указанном dsn архитектура драйвера и архитектура приложения" Архитектура бд Архитектура БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|