COM‐пропагандист
|
||||||
1 | ||||||
Общие вопросы и приёмы эффективного программирования на BASIC27.03.2021, 15:34. Показов 23328. Ответов 391
Метки нет (Все метки)
Вот как создать кнопку:
0
|
27.03.2021, 15:34 | |
Ответы с готовыми решениями:
391
Общие вопросы по языку 1с Visual Basic Приемы взаимодействия Visual Basic и SQL Основные понятия и приемы программирования Стоит ли изучать как устроена ЭВМ для эффективного программирования |
12.04.2021, 15:34 | 261 |
Скажу честно, читаю тему "по диагонали", что мне написано читаю, что другим, только когда есть лишнее время.
У меня сейчас нет столько времени, чтобы все портянки читать. Хорошо.
0
|
COM‐пропагандист
|
|
12.04.2021, 16:15 [ТС] | 262 |
Хорошо для учебных лабораторок первой половины семестра типа laba4.bas.
Но в серьёзных программах все строки локализуют и помещают в ресурсы. Полагаю вы не помещаете строки в ресурсах потому, что тогда екзешник разжиреет и соревноваться будет не так‐то просто. Я тоже вручную не собираю, за меня это делает утилита make. Некстати, как вы разруливаете кроссплатформенную компиляцию? Запускаете второй экземпляр IDE, с другим файлом проекта? Добавлено через 7 минут Не нашёл в PureBasic функций, возвращающих путь к файлу с настройками пользователя. Есть что‐то подобное вообще? Если нет, то о серьёзных кроссплатформенных программах можно забыть.
0
|
COM‐пропагандист
|
|
12.04.2021, 16:31 [ТС] | 264 |
Настройки программы вроде положения окон, списка последних открытых документов, параметры подключения к сети, к базам данных и прочего.
Хранить это в папке рядом с программой — несерьёзно. Как это разруливается средствами PureBasic?
0
|
12.04.2021, 16:45 | 265 |
Ну так же
PureBasic - Preference (Файлы настройки) Обзор Файл настроек содержит заданные пользователем параметры программы. Он хранится на диске и загружается каждый раз при запуске программы. PureBasic предлагает возможность создавать иерархический файл настроек, с лёгкостью используемый на любых компьютерных платформах. Формат файла Unicode UTF-8 с BOM, по одной переменной в строке, используется синтаксис 'Ключ = Значение'. Для лучшей читаемости можно создавать группы. Ну так храните где вам угодно, напр. тут: Result$ = GetUserDirectory(#PB_Directory_ProgramData)
0
|
13.04.2021, 11:43 | 266 |
Этио исключительно ваше мнение и оно не имеет ничего общего с реальностью.
Если посмотреть на ресурсы большинства серьезных программ, например таких как Microsoft Office, Internet Explorer, Windows Media Player, VLC, uTorrent и других то в них нет строк в ресурсах. Строки в файлах локализации. Вовсе нет. Зачем усложнять код помещая строки в ресурсы для такой простой программы? Программа должна быть максимально простой и понятной. Я вообще не понимаю зачем вы простую программу так усложнили. Для нее поддержка нескольких языков не нужна. Поместите строки в программу и тем самым упростите код и уменьшите размер исполняемого файла, т. к. не будет секции ресурсов. Вам нужно на Си и в линукс. https://www.purebasic.com/docu... ctory.html https://www.purebasic.com/docu... ctory.html https://www.purebasic.com/docu... ctory.html
0
|
COM‐пропагандист
|
|
13.04.2021, 15:21 [ТС] | 267 |
Ресурсы программы — это и есть файл локализации.
Что там сложного? Три с половиной вызова функции — это уже сложно? Ну тогда вы не можете говорить «программа такая же». Не такая же. Сделайте такую же. Получаются те же 2048 байт, это какое‐то выравнивание секций компоновщиком ld.exe. Я уверен, на такие случаи мировое сообщество уже разработало специальные сценарии линковки, которые мне лень искать. У вас на всё один ответ: «Что‐то не нравится — идите в Си». Нет GOSUB, меток, удалили какой‐нибудь очередной «оператор» из библиотеки совместимости с QuickBasic — идите в Си. Вы неправы. Знаете потому что это описано в документации. Следовательно, переходить на Си не нужно. Представил, как у сотрудников могущественной транснациональной корпорации Микрософт нет автоматизации процесса сборки программ, и им на серверах приходится запускать студию, только чтобы нажать F5 и скомпилировать Microsoft® Windows™.
0
|
13.04.2021, 15:44 | 268 |
Что еще придумаете?
Если писать код в таком стиле то получится вместо 10 тысяч строк нормального кода, 100 тысяч былокода! Не стоит усложнять код там где это не нужно. Для простейшей программы типа Hello world локализация не нужна. Я написал программу проще и понятнее чем у вас. Не вижу смысла ее усложнять. Лучше вы упростите для одного вызова MessageBox что нужно было сделать изначально. Тогда зачем усложняли код?
1
|
COM‐пропагандист
|
|
13.04.2021, 19:57 [ТС] | 269 |
Условие было, чтобы программа была без рантайма. Справитесь с задачей?
Чтобы продемонстрировать использование ресурсов программы. Ну можете считывать языковые файлы при загрузке программы. Я же поместил языковой файл прямо в ресурс программы.
0
|
13.04.2021, 23:08 | 270 |
В моем случае код с рантаймом, но размер исполняемого файла не превышает 2 КБ. Так что с задачей я справился.
Разве по условиям задачи это было нужно?
0
|
COM‐пропагандист
|
|
14.04.2021, 23:00 [ТС] | 271 |
Конечно нужно. Программы делающие Return 0 не интересны.
1. Расскажите мне, что делает рантайм в вашем исполняемом файле, зачем он там нужен? Это же мёртвый код, он никогда не выполнится, он просто раздувает екзешник и создаёт BloatWare. 2. Такой маленький размер вашей программы получается только в этом конкретном случае. Давайте возьмём что‐нибудь серьёзнее, например, задачу нахождения корней квадратного уравнения ax^2 + bx + c = 0: Моя программа получилась длиной 9216 байт. Исходный код онлайн https://github.com/zamabuvaraeu/QuadraticEquation
0
|
15.04.2021, 10:31 | 272 | |||||
А смысл?
Размер папки вашего проекта занимает на диске ~ 100 КБ (без exe). При попытки компилирования папка увеличивается до 600 КБ! Размер папки с проектом аналогичной программы на PureBasic занимает 4.5 КБ, из них 1 кб иконка Весь код примерно 70 строк в одном файле.
Ещё неоспоримый плюс - программа на PureBasic легко, нажатием 1 кнопки, может быть скомпилирована в среде Linux и MacOC вообще без внесения изменений в код. Ваш код полностью на выброс, переписать надо 90%, практически всё, кроме формул. Да и размер exe не на много больше, особенно с UPX
0
|
COM‐пропагандист
|
|
15.04.2021, 11:20 [ТС] | 273 |
1. 600 КБ — это объектные файлы для инкрементальной сборки программы, под каждую цель свои объектные файлы. В вашем мире понятие «инкрементальная сборка и автоматизация» под запретом, потому что это «линекс и си плас плас», и принято каждый раз удалять объектные файлы и перекомпилировать весь проект с нуля, даже если изменился только один файл, компиляцию делать только по F5 в окне даже на сервере.
2. А вы пользователю исходники даёте, а не программу? Представляю, как вы говорите заказчику: «Ну и что, что 1200 мегабайт на диске и 265 в оперативке (и жрёт 100% процессора когда с сетью работает), зато у меня исходный код в три строки уместился!» 3. Я не очень хорошо понимаю, почему ваша программа делает ту же работу, даже меньше, но занимает в 6 раз больше размера. Я начинаю сомневаться, что PureBasic умеет в оптимизацию. Ой, перестаньте. Винапи уже давно кроссплатформенное, моя программа будет там запускаться прямо двойным щелчком по екзешнику. Почему не оставили вещественными числами? Ещё в вашем коде не работают Enter по кнопкам, Esc и мнемонические клавиши. Добавлено через 2 минуты Неверно. Коэффициент b может обращаться в ноль. Исправляйте.
0
|
15.04.2021, 11:49 | 275 |
Ну во первых, задачи не было реально делать правильно работающую программу, а оценить размер - я написал, что код взял первый, который попался.
Не рассказывайте мне майсы, про кросплатформенное WinAPI Вам надо математику подтянуть. 9216 байт разве меньше, чем 13312 байт в 6 раз? Вменяемый человек разве обратит внимание на 4 КБ разницы? Если что, то скриншот внешнего вида программы буде в несколько раз больше весить. Сейчас это самое главное, скорость разработки. Чем меньше кода, чем код проще, тем быстрее пишется программа. Вы лучше расскажите, как вы эту ерундовую программу писали целую неделю, вместе посмеёмся! Лично у меня ушло на неё 27 мин. от запуска Пурика до запуска готового exe, ещё учесть, что я искал по форуму решение квадратного уравнения, лень было самому писать.
0
|
COM‐пропагандист
|
|
15.04.2021, 12:06 [ТС] | 280 |
Скачал, упаковано каким‐то упаковщиком. То есть это не оригинальная программа, выдаваемая компилятором.
Я и говорил: вы боретесь с языком, а не пользуетесь им.
0
|
15.04.2021, 12:06 | |
15.04.2021, 12:06 | |
Помогаю со студенческими работами здесь
280
Подскажите ссылки на приемы программирования для Embedded Нужны сайты про C#, приемы, рецепты, трюки программирования Интересны приемы программирования, о которых не пишут в книгах, а которые узнаются на практике Общие вопросы. Общие вопросы 1С Общие вопросы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |