|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 34586. Ответов 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
|
|||||||||||||
| 24.06.2020, 10:51 [ТС] | |||||||||||||
если ещё не запустить с др кнопки вспомогательный поток - то с 1-го раза можно выйти из окна Main...
хотя по новым технология, наверно, с контекстом GuiLock__ разобраться... имхо... - но раз на раз не приходится... ?? может, что-то упустила... ===== как вариант? -
Добавлено через 19 минут ===== p.s вот тоже пока не совсем понятно, по какому event'у обрабатывать закрытие формы по крестику (правый верхний угол окна) - WhenClose?.. (чтобы тоже выйти из вспомогательных потоков)... ведь всегда при длинных (да ещё многопоточных!) операциях хочется уметь выходить экстренно
0
|
|||||||||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|
| 25.06.2020, 07:57 [ТС] | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 25.06.2020, 17:57 [ТС] | ||
взяла линки из класса формирования половины линков и отдала в dowloader... загрузились... пока через "не отвечает" - но уже хоть какая-то декомпозиция (чтобы не дублировать код)... пул потоков не за горами ... имхо... действительно, читабельная архитектура делает разработку приятней Добавлено через 18 минут p.s. на всякий случай - Qt multithreading PDF - там же Implementation of signal-slot: different threads p.p.s Beginning Qt p.p.p.s
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 26.06.2020, 07:48 [ТС] | ||
|
Добавлено через 11 минут ?? а здесь - Multithreading with Qt - что-то много всяких new... Добавлено через 2 минуты ? или habr Правильная работа с потоками в Qt Добавлено через 2 минуты на оф. сайте - очень в общем или The Missing Article About Qt Multithreading in C++ Добавлено через 2 минуты и здесь на cyber'e Многопоточность или Qt/C++ - Урок 047. QThread - создание потоков в Qt === сориентируйте хоть в 2х словах (и линком если есть) - что лучше?
0
|
||
|
|
||
| 26.06.2020, 11:06 | ||
|
У Qt отличная документация c примерами туда стоит смотреть в первую очередь. Как учебник есть книги Шлее и Самерфилда.
2. Не нужно пихать bool стоит использовать std::atomic -ки, а на данный момент в QThread уже есть этот флаг для остановки потока isInterruptionRequested() 3. Есть еще модуль QtConcurent он более высоко уровнивый и там уже есть и пул потоков и ф-ции для распределения между потоками задач.
1
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||
| 26.06.2020, 11:36 [ТС] | |||
|
оказывается, и остановить поток можно - замечательно... спасибо Добавлено через 15 минут хотя на habr'e
(пока пилится на u++ - допилю, потом при случае подумаю о переезде, может и для др проекта)
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 27.06.2020, 09:59 [ТС] | ||
|
-- есть вариант запуска 2х thread'ов параллельно... а ведь интереснее между ними communication сделать??... p.s. в общем и целом по тз: а) систему signal-slot банально заменила своей vba-шной манерой -- передавать флаги (например, об окончании загрузки или её прерывании), и возвращать в WorkerThread true or false, на основе которых WorkerThread возвращает в GUI-поток message (PromptOK or PromptExclamation-connection lost)... пока отлавливаю diconnect'ы сети на всякий случай... б) всё бы хорошо, когда connection'а нет, но в реале при загрузке сама загрузка останавливается, видимо, плохо родной библиотекой u++ - наверно, ждёт - стучится по url'у несколько раз?, - вобщем подвешивается на некоторое время - неприятно так долго ждать, пока downloader разберётся он подключен или нет... в) и вывод динамики процесса в Progress пока, как в тумане... не понятно, через что лучше обрабатывать i-тую подгрузку в downloader class'e чтобы отразить обратно транзитом через WorkerThread в Progress GUI потока - через Event или через PostCallback??... (мучают смутные сомнения - что это по сути одно и тоже?? может какой virtual void Event'a - override сделать??) Добавлено через 26 минут или инкапсуляция неверно выбрана?.. (класс winapp с методом workerThread И класс downloader(param массив линков))
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||||
| 27.06.2020, 11:26 [ТС] | |||||
|
0
|
|||||
|
|
||||
| 27.06.2020, 11:56 | ||||
|
Если долго возитесь в таких случаях стоит попробовать что-то другое. Добавлено через 3 минуты И как оказалось много поточность. Как по мне если GUI фреймворк не предусматривает синхронизацию GUI с вторичными потоками то это сразу ему огромный минус.
0
|
||||
|
390 / 335 / 66
Регистрация: 14.10.2014
Сообщений: 1,523
|
||||
| 27.06.2020, 12:09 | ||||
|
я конечно не специалист многопоточности, только недавно её начал изучать, но
И да на Qt, наверняка, было бы проще все ваши задумки реализовать. Как минимум, по нему есть куча примеров готового кода. Ну раз уж вы решилили использовать всё-таки использовать U++ - что ж удачи
0
|
||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||
| 27.06.2020, 12:21 [ТС] | ||||
|
по 2-й части: я о том же - что это не повод менять ide, а повод поднимать мат.часть по части ваших впечатлений о словарном запасе - здесь их не ждали... пишите своими словами и пишите по делу - будет и пополнение моего словарного запаса... последние несколько постов - сплошные ваши впечатления... ... я заметила последние несколько постов...
0
|
||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|||||||||
| 27.06.2020, 16:19 [ТС] | |||||||||
|
спасибо тем, кто тратит время на то, чтобы поделиться знаниями и кодовыми строками Добавлено через 29 минут пример по линку из #209
а переделать хочу - чтобы по Event'у сдвига Progress'a, например, увеличивался счётчик в Status'e... читаю документацию - надеюсь, пользы будет больше, чем от ваших недовольств количеством community для пререканий с вами
0
|
|||||||||
|
|
|||
| 27.06.2020, 16:27 | |||
|
Добавлено через 4 минуты
0
|
|||
|
390 / 335 / 66
Регистрация: 14.10.2014
Сообщений: 1,523
|
||
| 27.06.2020, 19:14 | ||
|
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||||||||||||||||
| 27.06.2020, 21:31 [ТС] | ||||||||||||||||||
|
вобщем что и следовало ожидать - криво, грязно, но работает (не претендую пока на чистоту кода - просто логику проследить)
.h
.cpp
- надо просто запускать не параллельно, а др. из др. и Call для обращения к GUI
=====
Добавлено через 1 минуту ===== Добавлено через 16 минут P.S. ProcessEvent'ов для мышей и клавиш... остальные события в библиотеке ctrl... Коллбэки на ЭУ можно и лямбдами делать... не доказано, что коллбэки хуже сигнально-слотовой системы... возможно, их просто надо научиться использовать... имхо
0
|
||||||||||||||||||
|
|
|||||||
| 27.06.2020, 23:10 | |||||||
Добавлено через 2 минуты
0
|
|||||||
| 27.06.2020, 23:10 | |
|
В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу архитектура процессоров и компьютерная архитектура,Intel32. для первокурсников Ошибка "в указанном dsn архитектура драйвера и архитектура приложения" Архитектура бд Архитектура БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение 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, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|