|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 32647. Ответов 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 архитектура драйвера и архитектура приложения" Архитектура бд Архитектура БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|