|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||||||||||
Изучение основ FreeBasic в сравнении с PowerBasic10.10.2022, 22:17. Показов 25190. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|