|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 32616. Ответов 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,549
|
|||||||||
| 19.06.2020, 16:37 [ТС] | |||||||||
|
Добавлено через 8 минут Добавлено через 47 минут Добавлено через 2 часа 24 минуты ![]() ну и ладно... если он
=== ИТОГО: 2. thread.join; или async сам возвращает в текущий поток своим .get() === sorry за вчерашнюю панику - - всем спасибо
0
|
|||||||||
|
389 / 334 / 66
Регистрация: 14.10.2014
Сообщений: 1,475
|
|||
| 19.06.2020, 19:02 | |||
|
Эта функция вернёт фьючерс и гарантирует выполнение вызываемой сущности, передаваемой ей в качестве аргумента. Эта сущность будет выполнена либо параллельно (если есть такая возможность), либо последовательно. Про GUI с потоками: я не знаю, как в U++ организована обработка событий, в Qt к примеру сигнально - слотовая система. Так вот она с многопоточностью может иногда не работать. Пример: если запустить какую-нибудь сущность (класс) в отдельном потоке и попытаться обрабатывать его сигналы (с параметрами) - то это может не работать. Лечится специальным макросом. А проще делать так - работать с сигналами и слотами без параметров. А необходимые параметры (в ответ на сигнал) передавать через гетеры - такой способ прекрасно работает
0
|
|||
|
|
|||
| 19.06.2020, 20:02 | |||
|
Может не работать? Что за формулировки блин.
Добавлено через 2 минуты
0
|
|||
|
389 / 334 / 66
Регистрация: 14.10.2014
Сообщений: 1,475
|
||
| 19.06.2020, 20:17 | ||
|
Добавлено через 2 минуты Просто у меня было так, что объект с параметрами в одном потоке, а гуи в другом. Решений было два - либо регить нужный класс специальным макросом, либо передавать нужные параметры через гетер
0
|
||
|
|
|
| 19.06.2020, 20:48 | |
|
Тут вообще стоит задаться вопросом есть ли в Ultimate++ "поддержка" многопоточности.
Имею виду синхронизацию GUI и вторичных потоков. Поэтому я считаю что выбирать всегда стоит Qt так как в нем с этим все очевидно в отличии от других фремймворков.
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||||||
| 20.06.2020, 18:31 [ТС] | |||||||
|
но пока не сделаю работающий код - не поверю ничему... мне потом свой код читать легче... и так наворачиваются иногда листинги, когда все нюансы надо учесть...Кликните здесь для просмотра всего текста
вообще люблю краткие решения, потому что проект всегда имеет свойство разрастаться дальше - с появлением новых нюансов или просто если захочу его масштабировать и на др задачи или файлы др. рода (там просто инфо очень разношёрстная нужна и источник не от меня зависит - подстраиваюсь всегда в коде, как могу - стараясь не разжёвывать коду то, что ему подсовываю - т.к. знаю, что может и меняться и усложняться входящая инфо и не мной - и опять парсить и/или менять пути и т.д.)...
0
|
|||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 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,549
|
||||
| 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
|
|
|
389 / 334 / 66
Регистрация: 14.10.2014
Сообщений: 1,475
|
|
| 22.06.2020, 18:14 | |
|
JeyCi, если GUI виснет - что тут можно сделать - запускать в отладке и смотреть, когда он виснет, пытаться найти проблему - только так
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 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,549
|
||
| 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,549
|
||
| 22.06.2020, 19:44 [ТС] | ||
![]() Добавлено через 1 минуту а как отловить в процессе разработки?.. а не уже при эксплуатации софтины нарваться?.. на утечку...
0
|
||
| 22.06.2020, 20:00 | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 23.06.2020, 06:21 [ТС] | ||
|
0
|
||
| 23.06.2020, 06:21 | |
|
В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу архитектура процессоров и компьютерная архитектура,Intel32. для первокурсников Ошибка "в указанном dsn архитектура драйвера и архитектура приложения" Архитектура бд Архитектура БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 30. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|