|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 32941. Ответов 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,480
|
||||
| 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,480
|
||
| 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 архитектура драйвера и архитектура приложения" Архитектура бд Архитектура БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|