|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 32487. Ответов 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
|
|||||||||||||
| 24.06.2020, 10:51 [ТС] | |||||||||||||
если ещё не запустить с др кнопки вспомогательный поток - то с 1-го раза можно выйти из окна Main...
хотя по новым технология, наверно, с контекстом GuiLock__ разобраться... имхо... - но раз на раз не приходится... ?? может, что-то упустила... ===== как вариант? -
Добавлено через 19 минут ===== p.s вот тоже пока не совсем понятно, по какому event'у обрабатывать закрытие формы по крестику (правый верхний угол окна) - WhenClose?.. (чтобы тоже выйти из вспомогательных потоков)... ведь всегда при длинных (да ещё многопоточных!) операциях хочется уметь выходить экстренно
0
|
|||||||||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 25.06.2020, 07:57 [ТС] | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 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,549
|
||
| 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,549
|
|||
| 26.06.2020, 11:36 [ТС] | |||
|
оказывается, и остановить поток можно - замечательно... спасибо Добавлено через 15 минут хотя на habr'e
(пока пилится на u++ - допилю, потом при случае подумаю о переезде, может и для др проекта)
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 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,549
|
|||||
| 27.06.2020, 11:26 [ТС] | |||||
|
0
|
|||||
|
|
||||
| 27.06.2020, 11:56 | ||||
|
Если долго возитесь в таких случаях стоит попробовать что-то другое. Добавлено через 3 минуты И как оказалось много поточность. Как по мне если GUI фреймворк не предусматривает синхронизацию GUI с вторичными потоками то это сразу ему огромный минус.
0
|
||||
|
389 / 334 / 66
Регистрация: 14.10.2014
Сообщений: 1,475
|
||||
| 27.06.2020, 12:09 | ||||
|
я конечно не специалист многопоточности, только недавно её начал изучать, но
И да на Qt, наверняка, было бы проще все ваши задумки реализовать. Как минимум, по нему есть куча примеров готового кода. Ну раз уж вы решилили использовать всё-таки использовать U++ - что ж удачи
0
|
||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
| 27.06.2020, 12:21 [ТС] | ||||
|
по 2-й части: я о том же - что это не повод менять ide, а повод поднимать мат.часть по части ваших впечатлений о словарном запасе - здесь их не ждали... пишите своими словами и пишите по делу - будет и пополнение моего словарного запаса... последние несколько постов - сплошные ваши впечатления... ... я заметила последние несколько постов...
0
|
||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||||||||
| 27.06.2020, 16:19 [ТС] | |||||||||
|
спасибо тем, кто тратит время на то, чтобы поделиться знаниями и кодовыми строками Добавлено через 29 минут пример по линку из #209
а переделать хочу - чтобы по Event'у сдвига Progress'a, например, увеличивался счётчик в Status'e... читаю документацию - надеюсь, пользы будет больше, чем от ваших недовольств количеством community для пререканий с вами
0
|
|||||||||
|
|
|||
| 27.06.2020, 16:27 | |||
|
Добавлено через 4 минуты
0
|
|||
|
389 / 334 / 66
Регистрация: 14.10.2014
Сообщений: 1,475
|
||
| 27.06.2020, 19:14 | ||
|
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||||||||||||||||
| 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 архитектура драйвера и архитектура приложения" Архитектура бд Архитектура БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
начало и оглавление
-
Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|