|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 32420. Ответов 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
|
||
| 12.04.2020, 20:35 [ТС] | ||
|
видела здесь упоминание про amalgamation... при билдинге в MSVS... U++ пока осваиваю... #177 и #179 - всё-таки возможности чтения json'ов SQLite'ом - не всегда пользуются спросом - может, действительно, само чтение неструктурированных данных json - удобнее на стороне кода C++... это не вопрос, а предупреждение посетителям ветки - на SQLite читать json интересно, но проще с нормальной библиотекой на ООП читать много-уровневую по количеству вложенностей строку... имхо
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 14.04.2020, 06:20 [ТС] | ||
|
P.S. regexp built0in function даёт только true or false... но можно и свою function сделать... P.P.S. С++ Выбор контейнера
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||||
| 14.04.2020, 17:33 [ТС] | ||||||
|
и наконец - online-SQLFiddler
![]() - задаём DDL Create table... и по кнопке Browser - видим привычную глазу UML- диаграмму таблицы... потом можно снова вернуться в DDL Editor... - иногда удобнее 1 раз увидеть, чем 100 раз прочитать свой Create Table код... e.g.
P.S. самое интересное - то, что это по сути чистая Структура (или Класс), только последнему можно задать свои методы... а не быть зажатыми в рамки SQL-языка, функционального по своей природе... т.е. по сути на Клиенте мы можем расширить функционал Сервера, что есть очень удобно... да и такая прямая связь между схемой таблицы БД и классом ООП (например, на С++) - УПРОЩАЕТ как понимание правил нормализации БД через Декомпозицию, где надо, так и способы вытягивания из БД инфо во View из Model(бизнес-логики) и написание Controller'a на любом удобном языке... Выбор языка - Py vs C++ vs Java (для Клиента) ... Этот Вывод ветки мне понравился больше всего - - теперь не надо будет всегда лазить в бд с оглядкой на SQL, не надо увлекаться писаниной по массивам, словарям, коллекциям vba, а просто создать нужные (или даже по сути уже имеющиеся классы даже иногда по аналогии с диаграммой бд) и можно расширить их своими методами... в Абсолютно любом направлении... на любом, предпочитаемом для тех или иных задач, языке.... P.P.S. После всей полученной инфо при знакомстве с языком - думаю, я даже смогу ПО-НОВОМУ посмотреть на Правила Нормализации БД !!! (хоть они и умалчивают о наследовании и пропагандируют связи - но для целей разумной Декомпозиции - лучше знать и то и другое - чтобы малыми затратами состыковать Сервер с Клиентом)... имхо
0
|
||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 24.04.2020, 13:23 [ТС] | ||
|
а вот проверить корректность имеющейся схемы БД - не помешает...Технологии организации, хранения и обработки данных - начало по проектированию БД - быстро и легко написано... - более подробно о выстраивании Функциональных Зависимостей - Рудикова Л.В. Проектирование Баз Данных p.s. всё равно, жаль, что в SQLite нет Хранимых процедур - в этом плане MS SQL Server Express удобнее...
0
|
||
|
87 / 87 / 18
Регистрация: 11.06.2018
Сообщений: 302
|
||
| 24.04.2020, 21:23 | ||
|
В SQLite вы можете расширить функциональность любой собственной функцией. В некотором смысле такую функцию можно назвать хранимкой. https://stackoverflow.com/ques... -in-sqlite
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 25.04.2020, 04:15 [ТС] | ||
|
а о том, что в Хранимой Процедуре можно хранить набор SQL-инструкций, которые запускаются все под одним общим именем... - просто удобно... но в SQLite - это невозможно, надо прописывать все SQL-запросы на Клиенте... а на сервере можно повыбрасывать несколько VIEWs друг на основании друга - НО общий итог, что-то не вытягивается на клиент, только если на клиенте заново пройти цепочку SQL-инструкций... а SQL-запросы (которые имею) иногда бывают длииинные или со множеством подзапросов вложенных др. в др. ... а легче было бы их написать для выполнения и читабельности просто последовательно др. за др. - и под одним общим именем... но похоже придётся писать длинно и закрученно (вкладывая др в др подзапросы)
0
|
||
|
87 / 87 / 18
Регистрация: 11.06.2018
Сообщений: 302
|
||
| 25.04.2020, 17:03 | ||
|
JeyCi, Вы меня не слышите. Еще раз: вы можете описать любые функции, расширяющие функциональность в нужном вам направлении на С или С++, добавить их для использования в запросах. Таким образом все сложные подзапросы могут быть спрятаны в эти функции.
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 26.04.2020, 16:03 [ТС] | |||
а я хочу всё на SQL через точку с зпятой... в принципе нашла какой-то WITH t AS (SELECT) - хоть так... в принципе, и BEGIN... COMMIT присобачить можно... в принципе, и через временные таблицы можно, потом их удаление - если небольшие, то может быть рабочий вариант - только для скорости обязательно явно задавать транзакции, ну и ещё в настройках покопаться, чтобы быстродействие придать...если у вас есть какой простенький пример чего угодно под рукой (чтобы SQL+C++), отражающий ваш совет - может, приложите в ветке?.. для примера... (если нет, то и ладно, - сама поищу)... в любом случае спасибо за совет - Клиент ведь всё равно буду делать на С/С++ Добавлено через 4 минуты P.S. 2.1. The PARTITION BY Clause - тоже радуют Добавлено через 3 минуты да и вообще мнооого интересного
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 28.04.2020, 06:20 [ТС] | ||
|
Добавлено через 2 минуты и на of-сайте - Create Or Redefine SQL Functions
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 28.04.2020, 14:16 [ТС] | |
|
Adding Stored Procedures to SQLite
да и вообще на любом языке - и простенький пример на SQL Server - для сравнения p.s. в принципе и те же самые Loadable Extension (regex) (dll/so) можно подрядить... (как и др либы) Добавлено через 45 минут p.p.s. user-defined function in SQLite
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 29.04.2020, 09:36 [ТС] | |
|
и вот интересная статья вырисовывается:
Принцип разделения ответственности и ORM -- всё-таки Model.Context и View.Context смешать в принципе не получится - если между ними Controller.Context... но некоторые умудряются из View нагадить в Model... - и такое случается, когда MVC ContextS выбираются не спецом по предметной области, а IT'шником, завёрнутом на своих баранах... и оба не услышали др. др.
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 30.04.2020, 20:32 [ТС] | |||
p.p.s. Entity Framework даёт связку appl. и DB через ORM (Object Relational Mapping) и ADO.NET -- правда на C#.NET... и этим значительно сокращает количество кода... - главное - правильно задать binding... - следует подумать об архитектуре проекта, как о возможности уходить от чистого кодинга к реально удобной и быстрой разработке уже имеющимися инструментами... - теперь понимаю силу правильно выбранных библиотек - они убирают проблему выбора архитектурных решений - уже в себе содержа эти выгодные архитектурные решения - и этим упрощая жизнь разработчику... но такой Edge уже скорее не к чистым либам относится, а к Framework'ам... на имеющихся же в С++ библиотеках - многое, действительно, ещё придётся писать самим... -- хотя по линку от DrOffset по ветке ранее - и для C++ ORM доступны... Добавлено через 2 минуты или здесь - Новая SQLite ORM для C++ ================
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 06.05.2020, 15:10 [ТС] | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
| 23.05.2020, 09:42 [ТС] | ||||
|
============ Добавлено через 1 минуту кстати, паттерны на форуме тоже встречаются: цепочка обязанностей --- если разные файлы придётся запускать по разным шагам обработки... имхо (по ТЗ из #1) Добавлено через 13 минут ======= -- в C++20 хоть корутины и вводят и можно использовать co-await, но async к нему всё равно делать придётся самой... -- это пока уровень выше моего в с++ (да и компилятор gcc_9_3 c корутинами из boost пока не справился -- или созрею на компилятор Microsoft из VS или установлю библиотеки std c++20 когда разгребусь с тем, с чем разбираюсь сейчас)
0
|
||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 24.05.2020, 06:46 [ТС] | |||
|
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 27.05.2020, 19:39 [ТС] | ||
|
м-да... и т.к. файлов на входе будет ~500 шт (разношёрстных) - то всё-таки на Потоки с++ я ещё посмотрю...
в отдельном от GUI потоке брать String с каждого http и направлять её в WriteFile() [м. наподобие ReadFile() overlapped mode] -- каждую строку в свою [свой поток] асинхронную запись в свой файл... ~500 потоков запустить за раз... ускорится ли? есть ли смысл? (но, конечно, для такого тз - файлы из сети - всё-таки скорость internet-connection тоже важна, чтобы ускоряться)
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 27.05.2020, 19:57 | |
|
1
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 27.05.2020, 20:21 [ТС] | |||
да вы правы - это получше... (!спасибо, что расставляете приоритеты, а то на пустой теории я ещё долго буду подбирать соотв. инструменты - когда слово помню, а поможет или что-то др поможет ещё не тестила)... сама-то я его (thread pool) пока не напишу, наверно... но в Ultimate++ есть
... вот и застопорилась, как возможностями этой ide, да и языка в целом, соорудить бы такое ещё очень расплывчатое понятие - ускорить (асинхронно и многопоточно)... и не попасть в race condition, если в этой ide родная AsyncWork заявляется, как, видимо, MT... или эту часть кода на std лучше реализовать?.. тогда, может, направите по какому линку? === хотя вроде Loop по линкам синхронизации, наверно не потребует?.. - каждый loop вроде не share data?? (для такого тз) Добавлено через 7 минут и что использовать - futures/promises (которые пинимают итог) - в той ide это AsyncWork - или variable condition (которые прослушивают постоянно) ? (последнее мне для запросов GET наверно не надо, это наверно для socket'ов)
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 27.05.2020, 20:27 | ||
|
0
|
||
| 27.05.2020, 20:27 | |
|
В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу архитектура процессоров и компьютерная архитектура,Intel32. для первокурсников Ошибка "в указанном dsn архитектура драйвера и архитектура приложения" Архитектура бд Архитектура БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|