Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Результаты опроса: Нужен ли раздел для FreeBasic
Определённо нужен 13 76.47%
В разделе нет необходимости 3 17.65%
Другой вариант(написать в теме) 1 5.88%
Голосовавшие: 17. Вы ещё не голосовали в этом опросе

 
 
Рейтинг 4.54/105: Рейтинг темы: голосов - 105, средняя оценка - 4.54
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2

Создание раздела FreeBasic (голосование)

19.10.2012, 18:45. Показов 26404. Ответов 228

Студворк — интернет-сервис помощи студентам
Приветствую всех форумчан!

Многие из вас, наверное, заметили, что на форуме слишком мало подразделов языка Бейсик,
особенно если сравнивать с Паскалем и си, в которых существуют свободные реализации.

Именно поэтому предлагаю администрации cyberforum подумать над созданием нового
раздела для FreeBasic. Предполагаю, если появится раздел, появятся и новые пользователи,
которые будут поддерживать его, включая меня.

Однако безосновательно создавать раздел я не прошу, давайте посмотрим нужен ли он людям,
для этого, собственно и создаю данный топик. Люди проголосуют и всё будет видно.



Почему FreeBasic?
  1. Современный
  2. Свободный и бесплатный
  3. Кроссплатформенный(Windows, Linux)

Давайте посмотрим на функционал:

Описание: http://ru.wikipedia.org/wiki/FreeBASIC
Официальный сайт(Англоязычный): http://www.freebasic.net/
Ресурсы сети интернет по FreeBasic
Русскоязычные сайты:
http://freebasic.narod.ru/
http://freebasic.ru/
Статейка: http://www.tiflocomp.ru/docs/programming/fbc.php
IDE для FreeBasic(Англ.): http://fbide.freebasic.net/
Мануал по операторам\функциям: http://www.freebasic.net/wiki/... kka=DocToc
Архив с тулзами\библиотеками\туториалами: http://www.freebasic.net/___old_site/arch/

Частичная цитата:
FreeBASIC — язык программирования высокого уровня по синтаксису наиболее близкий к
QuickBasic ... Первоначально разрабатывался как свободная альтернатива Microsoft
QuickBasic, но быстро оброс новыми возможностями и стал мощным средством разработки.
  • Поддержка Unicode.
  • Множество встроенных типов переменных (Byte, UByte, Short, UShort, Integer, UInteger,
    LongInt, ULongInt, Single, Double, String, ZString, WString).
  • Типы данных определяемые пользователем (бесконечная вложенность, Union, тип поля
    (array, function, bit fields)).
  • Пространства имён.
  • Перечислимый тип (Enum).
  • Новые возможности при работе с массивами (до 2 ГБ размером, Redim Preserve).
  • Указатели (указатели на любые типы данных, неограниченная косвенная адресация).
  • Перегрузка функций и операторов.
  • Необязательные аргументы функций.
  • Встроенный ассемблер (ассемблерные инструкции в исходном коде программы).
  • Препроцессоры.
  • Typedefs.
  • Конструкторы и деструкторы классов.
  • Улучшенная графическая библиотека.

Моё мнение:

В целом, если полазить по интернету, можно понять, что у диалекта огромный потенциал.
Русских коммюнити FB не так уж и много, поэтому, было бы неплохо создать ветку и поддержать
разработчиков.


P.S. Я постарался донести информацию в объективной и понятной форме, надеюсь тема не
останется без ответа и голосов, всем спасибо за внимание .
9
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2012, 18:45
Ответы с готовыми решениями:

Создание статической библиотеки в FreeBasic
Есть непонятки со статической библиотекой. Код. Public Function Add2( ByVal x As Integer, ByVal y As Integer ) As String Return str(...

Создание блок-схемы FreeBasic - Basic
cls dim as single n,i input n screen 12 window (-200,-200)-(200,200) x1=-190 y1=-190 x2=190 y2=-190 x3=-190

Создание раздела D
Здравствуйте. После установки Windows 10, после создания второго раздела, он не отформатирован и без буквы. Я форматирую, но буква D не...

228
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
20.03.2020, 18:00
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Я же про то и говорю. Что сколько бы движков не было запущено, даже если в разных совершенно программах, все они работают строго по очереди. SAPI не позволяет параллельную работу.
Но всё равно остаётся открытым вопрос, какой имеет смысл возвращать программисту номер аудиопотока в событии EndStream, если аудиопоток там всегда один-единстенный?

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Есть Бесплатная + с открытым исходным кодом на Делфи Exo - синтезатор речи Эхо.
Он с помощью голосовых движков умеет озвучивать двуязычные тексты, работать со словарями. Очень интересно запустить 2 экземпляра двуязычного текста! Тогда текст читается по очереди в обеих копиях, чередуя английский и русский.
Но есть и хорошая новость. При создании звукового файла обе копии программы работают одновременно!
Т.е. я попробовал на одном и том же тексте одновременно запустить 2 копии программы и записать в разные файлы. Оба звуковых файла были записаны совершенно одинаково и параллельно, с правильным чередованием русских и английских текстов.
Так что скорее всего многопоток возможен. Или проще ни чего не переделывать, а запускать несколько копий программы с разными кусками текста
Не, ну так не интересно
Хочется же не чужие программы использовать, а своё написать.

На самом деле, я на протяжении уже очень многих лет слышу от друзей и колег по работе одно и то же: зачем ты занимаешься всем этим программированием, зачем ты "изобретаешь велосипед", когда всё уже давно написано, когда гораздо проще скачать любую программу в интернете, и те профессиональные программы заведомо гораздо лучше твоих.
На это я им обычно отвечаю, что для меня это вроде творчества. Вот, например, человеку, который пробует писать стихи для самого себя, "для души", тоже можно сказать, что его занятие не имеет никакого смысла, потому что достаточно просто взять с полки сборник стихов Есенина и почитать, и те стихи тоже будут заведомо лучше
Ну творчество же!

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Так что скорее всего многопоток возможен.
Ну да, по логике, если есть номера для аудиопотоков, то и многопоточность тоже допускается.
А иначе зачем пронумеровывать что-то единственное, уникальное в своём роде.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.03.2020, 19:00
Цитата Сообщение от Power_Basic Посмотреть сообщение
а своё написать.
Да кто мешает? Ключевые слова
Цитата Сообщение от Power_Basic Посмотреть сообщение
с открытым исходным кодом на Делфи
Всегда полезно посмотреть, как это написано у других.
Тем более, что писали, у вас проблемы со словарями?

Добавлено через 6 минут
Цитата Сообщение от Power_Basic Посмотреть сообщение
если есть номера для аудиопотоков
И не забивайте голову, это ложное направление. Я уже сказал, что написано в MSDN, потоки исключительно для разных голосов.
Направление я думаю одно - тупо запустить один и тот же код в нескольких потоках с разным текстом, и всего делов то.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
20.03.2020, 19:12  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Или проще ни чего не переделывать, а запускать несколько копий программы с разными кусками текста
Можно в командную строку отправлять номер ядра, на которое повесить обсчёт.
Скомбинировав в программе обсчёт и оболочку. Т.е. экзешник может вызвать сам себя
но уже со специфичными параметрами. Если нужно именно несколько экземпляров
запущенных.

В самой проге же сделать что-то типа:
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
IF Param <> "" THEN
Выцепить из параметров Core согласно выбранному формату ком. строки
  SELECT CASE Core
      Переброс на первое ядро
      Вызов процедуры с указанием номера куска
   CASE 1
      Переброс на второе ядро
      Вызов процедуры с указанием номера куска
 
   CASE 2
 
   . . .  и т.д.
  END SELECT
 
ELSE  ' Оболочка
 
'Тут в процедуре старта расчёта: создаём 1 поток в процедуре которого делаем EXEC.
'Через указатель передаём строку с параметрами.
'создаём 2 поток
'создаём 3 поток
'и т.д.
END IF
 
SUB ExecutePrg (...)
    запишем в строковую CmdParam параметры
     EXEC имя программы, CmdParam
END SUB
0
Эксперт по электронике
7146 / 3325 / 342
Регистрация: 28.10.2011
Сообщений: 13,120
Записей в блоге: 7
20.03.2020, 19:29
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Можно в командную строку отправлять номер ядра, на которое повесить обсчёт.
Какое это даст преимущество по сравнению с выбором ядра системой?
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
20.03.2020, 19:58  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Какое это даст преимущество по сравнению с выбором ядра системой?
Когда я занимался стримами, приходилось жёстко привязывать несколько видов софта к определённым
ядрам по нагрузке, выходило ощутимо лучше и самое главное стабильно. Система балансировала с
попеременным успехом, бывало всё пердело и заикалось очень сильно.
Всё зависит от специфики. Это только на тестах выявляется. Так с ходу что-то оценить я не могу,
может на его задаче разницы и не будет вовсе. Но самому отбалансировать - как-то спокойнее.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
20.03.2020, 21:22
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Но есть и хорошая новость. При создании звукового файла обе копии программы работают одновременно!
Т.е. я попробовал на одном и том же тексте одновременно запустить 2 копии программы и записать в разные файлы. Оба звуковых файла были записаны совершенно одинаково и параллельно, с правильным чередованием русских и английских текстов.
Так что скорее всего многопоток возможен. Или проще ни чего не переделывать, а запускать несколько копий программы с разными кусками текста
На самом деле, я сейчас, пока слегка перекусывал, параллельно размышлял над вашими наблюдениями и над всей "концепцией" моей программы, и сделал вывод, что это очень ценная информация. Большое спасибо, что поделились.

Короче говоря, приходится признать, что моя первоначальная идея получить значительное ускорение за счёт полного переноса всей работы с диска в память была, мягко говоря, неразумной.
Ведь и правда, сброс на диск всего записанного материала фрагментами или сброс того же самого материала целиком большого выигрыша в скорости не даст. Ну а значит, какой тогда смысл накапливать весь материал в памяти? Выходит, нет никакого смысла!
Конечно, неприятно признавать свои ошибки, но, увы, приходится. Однако, как говорится, нет худа без добра. Ценность ваших наблюдений заключается в том, что таким образом всё-таки можно использовать многопоточную запись аудиокниг, но не за счёт использования нескольких аудиопотоков в памяти, а за счёт одновременного использования нескольких программных потоков (то есть нескольких ядер процессора).

И следовательно, я полностью отказываюсь от первоначальной идеи. Теперь буду перестраивать эту программу на более "традиционный" лад, а именно сразу сбрасывать всё в файлы, - в 5 штук одновременно, ну вот и будет выигрыш в скорости, я думаю, раза в 3 по сравнению с одним потоком. locm порекомендовал использовать больше потоков, ну не знаю, попробую, поэкспериментирую.
А кроме того, программа будет работать на рам-диске (объёмом 1 Гб), поэтому, получается, всё равно, практически, в ОЗУ, лишь с незначительными потерями производительности на виртуализацию.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.03.2020, 21:22
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Т.е. экзешник может вызвать сам себя
но уже со специфичными параметрами. Если нужно именно несколько экземпляров
запущенных.
Пойдет, как вариант!
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
20.03.2020, 22:06
Цитата Сообщение от Pro_grammer Посмотреть сообщение
с открытым исходным кодом на Делфи ...
Всегда полезно посмотреть, как это написано у других.
Скачал, посмотрел как баран на новые ворота
Там 3 pascal-модуля в проекте. Ну сложно всё-таки разобраться, ну совсем незнакомый мне язык, никогда не имел с ним дело.
Конечно, многие операторы вроде бы похожи на бейсиковские, но логику программы всё равно отследить не получится, тем более без дебаггера.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Тем более, что писали, у вас проблемы со словарями?
Проблемы с подключением сторонних словарей. Сейчас к программе подключёны 2 моих самодельных словаря, один из которых (английский) пока ещё совсем пустой, а русский состоит пока ещё только из 10 слов. По мере выявления косяков в произношении движков буду эти словари пополнять.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Направление я думаю одно - тупо запустить один и тот же код в нескольких потоках с разным текстом, и всего делов то.
Согласен, так и буду действовать.

Добавлено через 18 минут
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Можно в командную строку отправлять номер ядра, на которое повесить обсчёт.
Скомбинировав в программе обсчёт и оболочку. Т.е. экзешник может вызвать сам себя
но уже со специфичными параметрами. Если нужно именно несколько экземпляров
запущенных.
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Когда я занимался стримами, приходилось жёстко привязывать несколько видов софта к определённым ядрам по нагрузке, выходило ощутимо лучше и самое главное стабильно. Система балансировала с
попеременным успехом, бывало всё пердело и заикалось очень сильно.
Всё зависит от специфики. Это только на тестах выявляется. Так с ходу что-то оценить я не могу,
может на его задаче разницы и не будет вовсе. Но самому отбалансировать - как-то спокойнее.
Да я и со стандартным-то параллельным запуском нескольких потоков познакомился всего пару месяцев назад, потому что у меня нынешний многоядерный комп всего-то полтора года, а до этого с 2004 до 2018 был одноядерный Пентиум4, и просто смысла не было в нескольких потоках.
А уж так "виртуозить" мне и вовсе не по плечу будет. Ну сейчас, по крайней мере.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
09.05.2020, 19:00
Цитата Сообщение от locm Посмотреть сообщение
Вы же писали что не хотите тратить ресурс SSD, но выбрали такую неоптимальную схему. Кодируйте в MP3 в приложении и после пишите на диск.
Это не сложно. Вот часть кода преобазующая WAV в MP3 посредством acm функций.

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Procedure MP3_Codec(*MP3.MP3_Param, OutFile, *WaveBuff, Size, EndStatus=#False)
  Protected WriteBytes=0, Flag=0
  With *MP3
    If *MP3 
      
      If *WaveBuff And Size>0
        CopyMemory(*WaveBuff, \ash\pbSrc, Size)
      Else
        ProcedureReturn 0
      EndIf
      
      If EndStatus
        Flag | #ACM_STREAMCONVERTF_END
        \ash\cbSrcLength=0
      EndIf
      If acmStreamConvert_(\has, @\ash, #ACM_STREAMCONVERTF_BLOCKALIGN | Flag) = #MMSYSERR_NOERROR And
         \ash\cbDstLengthUsed>0
        WriteBytes = WriteData(OutFile, \ash\pbDst, \ash\cbDstLengthUsed)
      EndIf
      
    EndIf
  EndWith
  ProcedureReturn WriteBytes
EndProcedure
*WaveBuff содержит сырые данные WAV, а функция WriteData записывает на диск данные преобразованные в MP3.
Ну вот сейчас, наконец-то, дошли руки до этой конвертации, поскольку снова вернулся к своей первоначальной идее всё делать в памяти и только уже в самом конце сбрасывать полученный аудиопоток на диск.

Сразу скажу, что код на Pure Basic'е мне совершенно не понятен. Понятно только то, что мы здесь используем WINAPI функцию acmStreamConvert. Полез в MSDN, там какие-то непонятные структуры надо заполнять. Ну, короче говоря, не так уж это и просто, как вы говорите.
Продолжил гуглить в поисках кода с этой функцией на VB, ну чтобы иметь хотя бы приблизительное представление о том, как "мартышке использовать эти очки"

К моему удивлению, первым нагуглился буржуйский сайт с веткой "How to convert wave data to mp3 ? ", где The trick, отвечая на этот вопрос, выложил не слабый такой по объёму код. Не удивлюсь, если The trick с того форума и The trick с нашего форума это одно и то же лицо, поскольку ник-то уж очень необычный и заметный

Как я уже понял, ссылки здесь давать нельзя кроме ссылок на MSDN, поэтому ссылку не даю. Скажу только, что если погуглить "VB How to convert wave data to mp3 ?", самой первой ссылкой будет как раз та самая

Бегло просмотрел всю ветку. Навскидку выглядит так, что путь не такой уж быстрый и гладкий. А в самом последнем посте там ещё и про какие-то искажения толкуют.

Или у меня ошибочное впечатление сложилось?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2020, 19:00

Создание раздела
Доброго времени суток народ! Нужно в Битриксе создать раздел с несколькими подкатегориями. В сети пишут что это можно сделать в разделе...

Создание нового раздела
Поменял диск 500г на 1тб. Клонировал систему. 500гб на диске не размечено. С помощью GParted создал раздел ext4. Захожу на него, но...

Создание отдельного раздела
Здраствуйте, подскажите пожалуйсто, можноли создать в linux ubuntu отдельный раздел харда? и возможноли это сделать уже с установленной...

Создание раздела fedora 16
доброй ночи юзеры! прошу вашей помощи. есть ноут, на нем установлена федора 16. хард = 650гб (использую максимум 40-50гб) захотел...

VBulletin Создание родительского раздела
Здравствуйте! Пытаюсь создать родительский раздел (как на первом фото) и вот что получается, на втором фото как должно быть. В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
229
Ответ Создать тему
Новые блоги и статьи
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru