|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 34588. Ответов 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
|
||
| 12.04.2020, 20:35 [ТС] | ||
|
видела здесь упоминание про amalgamation... при билдинге в MSVS... U++ пока осваиваю... #177 и #179 - всё-таки возможности чтения json'ов SQLite'ом - не всегда пользуются спросом - может, действительно, само чтение неструктурированных данных json - удобнее на стороне кода C++... это не вопрос, а предупреждение посетителям ветки - на SQLite читать json интересно, но проще с нормальной библиотекой на ООП читать много-уровневую по количеству вложенностей строку... имхо
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 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,554
|
||||||
| 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,554
|
||
| 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,554
|
||
| 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,554
|
|||
| 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,554
|
||
| 28.04.2020, 06:20 [ТС] | ||
|
Добавлено через 2 минуты и на of-сайте - Create Or Redefine SQL Functions
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
|
| 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,554
|
|
| 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,554
|
|||
| 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,554
|
|
| 06.05.2020, 15:10 [ТС] | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||||
| 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,554
|
|||
| 24.05.2020, 06:46 [ТС] | |||
|
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,554
|
||
| 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,554
|
|||
| 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 архитектура драйвера и архитектура приложения" Архитектура бд Архитектура БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
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, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|