|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||||||||||
Изучение основ FreeBasic в сравнении с PowerBasic10.10.2022, 22:17. Показов 25150. Ответов 218
Метки freebasic;изучение основ (Все метки)
Всем добра и мира!
К сожалению, PowerBasic прекратил своё развитие вследствие смерти его создателя и главного (а скорее всего, единственного) разработчика Роберта Зейла в 2012-ом году. К настоящему времени последние надежды на его развитие окончательно угасли. В связи с этим я решил приступить к изучению основ FreeBasic'а. В этой ветке форума буду задавать вопросы, возникающие у меня в процессе ознакомления с этим ЯП. Как говорится, всё познаётся в сравнении. Ну вот и буду изучать FreeBasic, опираясь на определённый опыт ЛЮБИТЕЛЬСКОГО программирования на PowerBasic'е. Буду очень благодарен за любую помощь. Итак, первый возникший у меня вопрос. Каким образом в структурах FreeBasic'а появилась возможность использовать динамические строки? В PowerBasic'е это строго запрещено. Можно использовать только строки фиксированной длины. Вот 2 работающих (с одним и тем же результатом на консоли) кода для сравнения: FreeBasic
1
|
|||||||||||
| 10.10.2022, 22:17 | |
|
Ответы с готовыми решениями:
218
|
|
COM‐пропагандист
|
|
| 13.11.2022, 16:30 | |
|
0
|
|
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||||||
| 13.11.2022, 16:41 [ТС] | |||||||
|
Вы поймите, я нахожусь в процессе выбора нового для себя ЯП. Хочется сделать это с минимальными издержками. Ну а для этого этот новый язык должен быть наиболее близок к моему основному, ну то есть к PowerBasic'у. На самом деле, в идеале, прикрутить бы к PowerBasic'у 64 бита, и ничего другого мне уже не надо для "полного счастья" в плане набора инструментов для программирования. Но это, увы, не возможно и уже никогда не будет возможно. Буржуи с PowerBasic-форума массово потянулись именно к FreeBasic'у. Ну вот и я вроде бы вместе с ними по течению плыву ![]() Вроде бы считается, что FreeBasic по синтаксису близок к PowerBasic'у. Замечательно! Ну а как это определить? Только с помощью эксперимента, правильно? Ну вот я и беру свои самые простые программы на PowerBasic'е, тупо скармливаю их компилятору FreeBasic'а, и анализирую, какие ошибки он покажет ![]() Вот именно такой подход "к телу" и стал первоосновой рождения этой ветки ![]() Ну и да, действительно, многие встроенные функции совпадают практически один в один. Например, работа со строками. В PowerBasic'е это Left$, Right$, Mid$, Trim$, ну дальше длинный список, все перечислять здесь не имеет большого смысла. А во FreeBasic'е это аналогичные по смыслу и по своей работе функции, но только записанные без знака доллара. Ну и вот при попытке скомпилировать такую команду компилятор, разумеется, показывает ошибку на такой-то строке. Убираю знак доллара и компилирую снова. Ошибка уже на какой-то строке ниже, ну и таким вот образом продолжаю двигаться ниже и ниже. Работа с файлами почти идентична. Те же самые Open, Close, Input, Output, ну и всё остальное. If, Select Case и всевозможные циклы тоже совпадают один в один. Единственная разница в циклах - это вместо Iterate в PowerBasic'е во FreeBasic'е используется Continue. Ну то есть тоже почти один в один кроме такой вот "мелочёвки". Работает так же, только называется по другому. Но вот в процессе такого вот экспериментального последовательного компилирования и внесения поправок дохожу до какой-то "фишки", которая свойственна только PowerBasic'у, ну например, POWERARRAY Object. Ну и как это "обойти"? Вот именно отсюда и возникла мысля использовать для таких случаев DLL в качестве обходного маневра ![]() Я же не просто так (ну типо, от скуки) задавал вопрос по DLL выше по теме, а именно в поисках обходных лёгких путей ![]() Ну а теперь, зачем я это всё так длинно рассказываю? Да чтобы попытаться объяснить, что мне эти вызовы "левых" функций, вот прямо сейчас совершенно не нужны. Я же сейчас сравниваю именно встроенные средства двух ЯП, а вовсе не их способности вызывать "левые" функции. Уж в зтом-то они точно равны друг другу, я ни минуты в этом не сомневаюсь ![]() ![]() Мне-то как раз хотелось бы подобрать для себя новый ЯП с "низким порогом входа". ![]() Ну вы же сами написали, что это функция из Си, ну вот я и пишу "сишная функция" ![]() Ну вы просто проявите снисходительность. Вы сейчас общаетесь не с профессионалом, а с дилетантом. И если он (дилетант), например, говорит "море", то под этим он может понимать и "озеро", и "океан". Ну не будьте так уж строги к используемой мною терминологии ![]() Воспринимайте все мои слова в более широком смысле, с учётом всевозможных огрехов непрофессионала ![]() ![]()
1
|
|||||||
|
|
||||
| 13.11.2022, 17:18 | ||||
|
1
|
||||
|
COM‐пропагандист
|
|||
| 13.11.2022, 17:59 | |||
|
0
|
|||
|
|
||||||
| 13.11.2022, 18:04 | ||||||
![]() Покажите пример работы с реестром на QB. Очень интересно посмотреть. ![]()
1
|
||||||
|
COM‐пропагандист
|
|||
| 13.11.2022, 18:11 | |||
|
Итого: за 10 минут можно выучить все 68 ключевых слов, ещё за час — всю стандартную библиотеку. Вот и весь язык. https://www.freebasic.net/wiki/CatPgFullIndex Добавлено через 6 минут А тут вдруг удивило, что для этого примера нужно поставить вайн. Почему? В чём разница? Вайн — такая же библиотека, как и все остальные.
2
|
|||
|
|
||
| 13.11.2022, 18:23 | ||
|
А если все равно не поняли, попробуйте из вайна получить доступ к USB и откроете для себя что его нет как и к остальному железу!
0
|
||
|
COM‐пропагандист
|
|
| 13.11.2022, 18:39 | |
|
0
|
|
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
||||||||||||||
| 14.11.2022, 17:25 [ТС] | ||||||||||||||
![]() Ну да, Python сейчас в тренде, я знаю. По поводу Tcl я погуглил. Скриптовый язык. Тогда уж джаву можно изучать. Но мне на джаву переходить психологически очень дискомфортно, потому что много лет назад, когда был выбор между бейсиком, паскалем и джавой я выбрал бейсик. И если сейчас начать изучать джаву, то это как бы признать свою ошибку. А кто из нас любит признавать свои ошибки? ![]() Допью уж до дна свою чашу ![]() Ну в смысле, чашу бейсика ![]() Как известно, всё познаётся в сравнении. Ну вот я сейчас и занимаюсь тем, что сравниваю два языка. Во многом они схожи, но есть и различия. Ну вот это и есть одно из различий. Просто я запомню, что встроенной сортировки массивов во фрибейсике нет и для этой цели надо вызывать стороннюю функцию. Вы понимаете, это две совершенно разные ситуации: 1. Разрабатывать относительно большую серьёзную программу и при этом столкнуться с какой-то проблемой, которую хочется поскорее решить, чтобы не сбавлять скорости общей разработки. И так попробовал, и эдак, ну никак не получается. Единственная надежда - спросить совет на форуме. Спросил, посоветовали, проблема решена, продолжил разработку. Я часто бывал в такой ситуации, мне это очень даже знакомо. 2. Но сейчас у меня совершенно другая ситуация. Я никуда не спешу. Просто, не спеша, занимаюсь сравнением двух языков. Как я написал выше, начал писать на фрибейсике тренировочную утилиту, которая считывает содержимое текстового файла и подсчитывает число вхождений различных букв и цифр. Ну а когда всё уже было готово, решил добавить вишенку на торт ![]() Ну в смысле, не просто вывести результат на консоль или в файл, а ещё и в упорядоченном по статистической частоте порядке. Ну вот и столкнулся с проблемой сортировки массива. Но это именно тренировочная программа. У меня нет никакой необходимости её завершать. ![]() Хотя всё-таки я буду стремиться к тому, чтобы почаще обходиться без них. Если не слишком углубляться в детали. то всё выглядит очень знакомым ![]() Ну вот например: PowerBasic
А звёздочка в PowerBasic'е, насколько мне известно, вообще не используется применительно к указателям. ![]() Если я ничего не путаю, ActiveX и СОМ это синонимы. Честно говоря, практического опыта написания СОМ-серверов у меня, конечно же, нет, но я сегодня немного почитал на эту тему. Как я понял, это, в принципе, обычные DLL, но только подчиняющиеся СОМ-спецификациям и ещё их надо регистрировать в реестре, но это не сложно. А что касается СОМ-спецификаций, то, как я понял, вообще все объекты, создаваемые в среде PowerBasic'а уже по умолчанию соответствуют требованиям СОМ. Так что с этой стороны проблем вроде бы возникнуть не должно. Проблемы могут быть только с принимающей стороны ![]() Ну в смысле, со стороны FreeBasic'а. Теперь у меня вся надежда на Замабувараева. Не зря же у него над аватаркой написано, что он COM-пропагандист
1
|
||||||||||||||
|
|
|||
| 14.11.2022, 18:05 | |||
|
Попробуйте и увидите. https://www.cyberforum.ru/blog... g5213.html
1
|
|||
|
|
|||
| 14.11.2022, 19:27 | |||
|
Короче придется с кишочками иметь дело.. Скриптовый это да, но это всего лишь обертка над сишной библиотекой. При этом язык ну совсем не пытается быть похожим на си. Да и экзешник можно получить если сильно хочется. Скриптовость и позволяет творить вещи немыслимые в других языках. Но не будем об этом в этой теме, ведь бэйсик наше всё. Конечно нет ничего идеального, но инструмент выбирают как бы по тому, что он умеет делать.
2
|
|||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
||||||||||||
| 15.11.2022, 15:45 [ТС] | ||||||||||||
Хотя это может быть написано просто для красного словца. Что-то вроде рекламы ![]() Но там, по идее, должно быть не сложно. Везде же дизайнеры форм. Создать окно не проблема, текстбокс с полосами прокрутки и с wordwrap-ом на форме разместить тоже не проблема. Код автоматически напишется. Ну а дальше: PowerBasic
![]() На самом деле, я сейчас краем глаза посматриваю и на PureBasic тоже. Немного пугает, что там, как я понял, совсем нет ООП. Вместо объектов там вроде бы модули. Как я понимаю, главное назначение у объектов и у модулей одинаковый, - инкапсуляция. Не то чтобы я был такой уж страстный поклонник ООП. Раньше меня это отпугивало. Но со временем вроде бы "притерпелся" ![]() Класс такой-то, интерфейс такой-то, ну а дальше всё как обычно, но только процедуры обзывают "методами", а переменные "свойствами" ![]() А кстати, интересно, в PureBasic экспортировать COM-компонент из PowerBasic'а получится? Вроде бы должно получится. Там же уже не в виде объектов будет передаваться, а в виде нативного кода.
0
|
||||||||||||
|
|
|||||
| 15.11.2022, 16:17 | |||||
|
Я не зря писал что FreeBasic такой же хардкорный как Си. Встроенных средств нет (не считая интерфейсов), потому что COM только в Windows. В Linux и MacOS X его нет.
1
|
|||||
|
Модератор
|
||
| 15.11.2022, 17:24 | ||
|
1
|
||
| 15.11.2022, 17:27 | ||
|
Вопрос ч-ка, тупого в библиотекахи и библиоведении вообще.
1) Можно ли в каком либо Бейсике подключить библиотеку так, чтобы стали доступны все функции, как свои? 2) То что в VB подключается через референсы это все COM-овское? 3) Может ли COM библиотека также быть "процедурной"? Добавлено через 2 минуты
1
|
||
|
Модератор
|
||||
| 15.11.2022, 17:30 | ||||
|
2
|
||||
| 15.11.2022, 17:30 | |
|
Лабораторная работа на изучение основ работы с debug.exe Лабораторная работа(Изучение основ.Одномерный и двумерный массивы.Процессы) Проблема с Imagelist в PowerBasic 10 FreeBASIC Уйти с freebasic Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
|
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него.
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952
Инструкция внутри.
https:/ / youtu. be/ VpfFZSUDGnQ. . .
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|