Форум программистов, компьютерный форум, киберфорум
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. Показов 26224. Ответов 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
19.03.2020, 21:47
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от The trick Посмотреть сообщение
Все что можно реализовать с инлайн асмом, можно и без него. Вон из плюсов тоже убрали его. Я и сам его редко использую, почему-то уверен что кроме меня мб еще пару человек его максимум юзают.
А может быть это потому что вы пишете оптимизированный код, который запросто будет работать даже и на старых машинах, а используете его, главным образом, на новых, современных? Они же сейчас вытягивают любых монстров, поскольку очень мощные. А вот если под старые машины писать, тогда ассемблер может пригодиться, мне кажется.

Ну вот, например, я когда-то написал ещё на Спектрум-бейсике программу, которая подсчитывала очки и забитые мячи в футбольной турнирной таблице, ну и расставляла в ней команды по занятым местам в соответствии их с результатами. Ну а в самом начале надо было ввести счёт каждого сыгранного матча и дать команду на обработку. Ну очень медленно она работала, реально уснёшь пока дождёшься.
Тогда я стал последовательно переписывать на ассемблере фрагменты кода, которые участвовали в вычислениях, и с каждым разом код работал всё быстрее и быстрее. И наконец, когда на бейсике осталась только та часть кода, которая принимала результаты матчей, а всё остальное было на ассемблере, это (ввод счёта всех матчей) и была самая медленная часть работы, а всё остальное срабатывало мгновенно.
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
19.03.2020, 22:06
Цитата Сообщение от Power_Basic Посмотреть сообщение
Мне очень стыдно, но я представления не имею, что это такое. Что такое ActiveX приблизительно знаю, - так вроде бы называют компоненты COM, которые имеют графическое представление на экране (дополнительные контролы). А вот что такое ActiveX EXE не знаю.
Вы путаете с ActiveX контролами. ActiveX (раньше OLE) - это технология, базируемая на COM. ActiveX EXE - это out-of-proc сервер (в противовес ActiveX DLL - in-proc сервер).

Цитата Сообщение от Power_Basic Посмотреть сообщение
Ну дык я же и не собираюсь влезать в недра вашего кода. Единственный смысл моего высказывания состоял в том, чтобы выразить благодарность за то, что вы своими инновациями реально учавствуете в войне против раздутого ПО.
Я имею в виду, чтобы использовать мой модуль - нужно уметь создавать многопоточные программы, знать как работать с COM.

Цитата Сообщение от Power_Basic Посмотреть сообщение
Сложности состоят в том, чтобы не запутаться в хитросплетениях зависимости объектов друг от друга. Ну и ещё в структурах тоже. Они же очень часто вложены друг в друга как матрёшки.
Да это в любой более-менее сложной библиотеке так. Прежде чем работать с ней необходимо изучить документацию.

Цитата Сообщение от Power_Basic Посмотреть сообщение
Для реализации вашего подхода мне придётся перевернуть кучу литературы, а мой собственный можно использовать хоть прямо сейчас
Не нужно кучу литературы. Нужно прочитать несколько статей и все будет понятно. Ну дело Ваше, как хотите так и пишите.

Добавлено через 6 минут
Цитата Сообщение от Power_Basic Посмотреть сообщение
А может быть это потому что вы пишете оптимизированный код, который запросто будет работать даже и на старых машинах, а используете его, главным образом, на новых, современных? Они же сейчас вытягивают любых монстров, поскольку очень мощные. А вот если под старые машины писать, тогда ассемблер может пригодиться, мне кажется.
Да нет. Я не ратую за неиспользование ассемблера, я даже не ратую против инлайн асма, я просто говорю что это очень спорное решение - ассемблер в ЯВУ. Если нужен ассемблер - пишите на ассемблере, линкуйте.

Цитата Сообщение от Power_Basic Посмотреть сообщение
Ну вот, например, я когда-то написал ещё на Спектрум-бейсике программу, которая подсчитывала очки и забитые мячи в футбольной турнирной таблице, ну и расставляла в ней команды по занятым местам в соответствии их с результатами. Ну а в самом начале надо было ввести счёт каждого сыгранного матча и дать команду на обработку. Ну очень медленно она работала, реально уснёшь пока дождёшься.
Тогда я стал последовательно переписывать на ассемблере фрагменты кода, которые участвовали в вычислениях, и с каждым разом код работал всё быстрее и быстрее. И наконец, когда на бейсике осталась только та часть кода, которая принимала результаты матчей, а всё остальное было на ассемблере, это (ввод счёта всех матчей) и была самая медленная часть работы, а всё остальное срабатывало мгновенно.
Так все дело в том что в спекке бейсик - это интерпретатор, а не компилятор. Поэтому он очень медленный.
0
Эксперт по электронике
6998 / 3314 / 341
Регистрация: 28.10.2011
Сообщений: 13,024
Записей в блоге: 7
19.03.2020, 22:15
Замабувараев, я уже написал что Wine эмулирует WinAPI и не всегда точно. Из-за этого не все приложения могут корректно работать.
Я писал речь идет о разработке приложений для Linux, а не запуск Windows-приложений в эмуляторе.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
19.03.2020, 22:22
Цитата Сообщение от Замабувараев Посмотреть сообщение
мне непонятно почему вы считаете библиотеки из коробки какими‐то особенными, имеющими привилегии, а добавленные библиотеки — какими‐то неправильными, порочными.
Я тоже так считаю. Либы из коробки развиваются и совершенствуются вместе с продуктом, являясь его частью. Добавленные либы работают как элемент, совместимость которых условна с каждой новой версией.
"Да, человек смертен, но это было бы еще полбеды. Плохо то, что он иногда внезапно смертен, вот в чем фокус!" (с)
, это я к тому, что сторонняя библиотека, на которую все рассчитывали, может внезапно прекратить своё развитие в силу непреодолимых обстоятельств, и стать сильно несовместимой с новой версией продукта. В этом и есть ущербность.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
19.03.2020, 22:40
Цитата Сообщение от locm Посмотреть сообщение
Что за функция? Возможно есть альтернатива для XP.
Да я сейчас уже и не припомню, какая это функция была, но на тот момент мне это показалось непреодолимым препятствием, а тут ещё совершенно случайно вычитал в интернете, что в мой нетбук можно-таки "впихнуть" семёрку, ну вот и загорелся этой идеей.

Цитата Сообщение от locm Посмотреть сообщение
Цитата Сообщение от Power_Basic
Вот именно от такого подхода мне и хочется уйти. Во-первых, для ускорения работы проги, а во-вторых, чтобы не "мордовать" SSD лишний раз
В любом случае нужно будет записать данные на диск.
Но это же только один раз в самом конце всего процесса.

Цитата Сообщение от locm Посмотреть сообщение
Что мешает накапливать скажем по 10 МБ данных, после чего сохранять на диск и накапливать следующую порцию данных? Это не снизит скорость работы
А вот как раз именно по такому принципу работает моя любимая программа для создания аудиокниг MP3Book2005. Это очень хорошо видно в Тотал Коммандере. Сначала WAV-файл увеличивается на диске, потом он достигает заданного пользователем критического (по времени звучания одной части) размера, преобразуется в файл MP3 и после этого начинается запись следующего фрагмента.
Вот как раз именно такой подход показался мне не самым оптимальным и я решил попробовать (ради интереса) ускорить весь процесс, максимально исключив обращения к диску.

Цитата Сообщение от locm Посмотреть сообщение
и не увеличит износ SSD диска.
Ну это у меня уже "пункт" такой, что SSD надо беречь как зеницу ока
У меня сейчас почти все последние самодельные программы оптимизированы именно под минимальные (по возможности) обращения к диску. Ну или запускаю их на рам-диске, под который я выделил целый гигабайт из восьми имеющихся.
И кстати, от файла подкачки отказался совсем, плюс перенёс на рам-диск системную папку TMP, а также кеш всех установленных браузеров.

Цитата Сообщение от locm Посмотреть сообщение
Но требует намного меньше памяти чем в при накапливании всех данных в ОЗУ и их последующее сохранение.
Да это понятно.

Добавлено через 11 минут
Цитата Сообщение от The trick Посмотреть сообщение
Так не следует делать. WAV файл сам по себе не может хранить больше приблизительно 4GB. Не знаю какого качества будет результирующий файл, но само ограничение нужно учитывать.
Правильней делать потоковое кодирование и сразу сохранять в mp3. Там хоть в 10 потоков пишите.
На самом деле, я не знал про такое ограничение. Впредь буду это учитывать.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
19.03.2020, 22:42
Цитата Сообщение от Pro_grammer Посмотреть сообщение
сторонняя библиотека, на которую все рассчитывали, может внезапно прекратить своё развитие в силу непреодолимых обстоятельств
И несторонние библиотеки также внезапно прекращают своё развитие. Например, Microsoft Character Agent перестал быть доступен в семёрке. Язык программирования VB.Net, который корпорация Микрософт убила своим заявлением, что прекращает его развитие.

А потом появляются опенсорсные варианты этих продактов. Например, так появился FreeBASIC, после убийства QBasic.
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
19.03.2020, 22:46
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Я тоже так считаю. Либы из коробки развиваются и совершенствуются вместе с продуктом, являясь его частью. Добавленные либы работают как элемент, совместимость которых условна с каждой новой версией.
"Да, человек смертен, но это было бы еще полбеды. Плохо то, что он иногда внезапно смертен, вот в чем фокус!" (с)
, это я к тому, что сторонняя библиотека, на которую все рассчитывали, может внезапно прекратить своё развитие в силу непреодолимых обстоятельств, и стать сильно несовместимой с новой версией продукта. В этом и есть ущербность.
Я считаю это неправильным. С таким подходом использование вообще любых не нативных библиотек - неправильно. Второй момент это то что Wine это свободное и открытое ПО.

Цитата Сообщение от Power_Basic Посмотреть сообщение
Но это же только один раз в самом конце всего процесса.
А какая разница? Писать по чуть-чуть, или сразу все, тем более на SSD.

Цитата Сообщение от Power_Basic Посмотреть сообщение
А вот как раз именно по такому принципу работает моя любимая программа для создания аудиокниг MP3Book2005. Это очень хорошо видно в Тотал Коммандере. Сначала WAV-файл увеличивается на диске, потом он достигает заданного пользователем критического (по времени звучания одной части) размера, преобразуется в файл MP3 и после этого начинается запись следующего фрагмента.
Вот как раз именно такой подход показался мне не самым оптимальным и я решил попробовать (ради интереса) ускорить весь процесс, максимально исключив обращения к диску.
Ну не нужно скидывать на диск промежуточные варианты, если уж так хочется. Скидывать нужно конечный файл.

Цитата Сообщение от Power_Basic Посмотреть сообщение
Ну это у меня уже "пункт" такой, что SSD надо беречь как зеницу ока
А для чего он нужен? Обычно SSD берут чтобы скорость работы диска была высокой. Для чего иметь диск и не писать на него? Другой момент - это то что контроллер ЖД распределяет запись так чтобы блоки равномерно использовались. Моему диску около 4 лет, я его использую в качестве системного и его износ всего 8%.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
19.03.2020, 23:04
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Цитата Сообщение от Power_Basic
мне не удобно, потому что там обычно "безликие" названия файлов получаются в итоге: 0001.mp3, 0002.mp3, ну и так далее.
Ерунда какая то. Вы же сами творец своей книги, давайте нормальные названия, как в бумажной книге.
Ну значит я неправильно вас понял. Мне показалось, что вы говорили о порядке работы "фирменных" программ.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Цитата Сообщение от Power_Basic
У меня прямо сейчас в планшете установлена карточка на 32 гига.
Это тут причем? Я же про размер максимального файла в FAT32...
Ну это я про то, что карточку можно отформатировать, например в формат exFAT. Ну да, не все андроид-устройства будут работать с этим форматом, но с помощью танцев с бубном можно заставить их это делать, ну например, вот так:
https://www.exler.ru/blog/kak-... -64-gb.htm

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Цитата Сообщение от Power_Basic
а от записи на диск я как раз-таки и собираюсь полностью уйти
Цитата Сообщение от Power_Basic
приделываем WAV-заголовок и сбрасываем на диск, а там этот файл "подхватывает" сторонняя утилита
Это два взаимоисключающих сообщения.
Ничуть. Мы же всё делаем в памяти, а на диск сбрасываем только в самом конце и используем диск только 1 раз.
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
19.03.2020, 23:08
Цитата Сообщение от Power_Basic Посмотреть сообщение
Ничуть. Мы же всё делаем в памяти, а на диск сбрасываем только в самом конце и используем диск только 1 раз.
Нет. Вы же говорите что WAV файл бросаете на диск и утилита его конвертирует в mp3. В этом алгоритме как минимум 1 временный WAV файл создается огромного размера. В алгоритме который Вам тут предлагают вообще не нужен временный файл.
1
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
19.03.2020, 23:23
Цитата Сообщение от locm Посмотреть сообщение
А на ней файловая система FAT32, верно? У нее ограничение 4 ГБ на файл о чем написал Pro_grammer.
На это я ответил в своём предыдущем сообщении.

Цитата Сообщение от locm Посмотреть сообщение
Если каждый поток использует не сто процентов мощности ядра, можно запустить больше потоков чтобы ускорить процесс.
Спасибо за ценную информацию, буду иметь это в виду.

Цитата Сообщение от locm Посмотреть сообщение
Цитата Сообщение от Power_Basic
Затем полученный результат мы "сшиваем" в один "сырой" аудиопоток, приделываем WAV-заголовок и сбрасываем на диск, а там этот файл "подхватывает" сторонняя утилита, конвертирующая этот файл в формат MP3
Вы же писали что не хотите тратить ресурс SSD, но выбрали такую неоптимальную схему.
По этой схеме SSD мы используем только 1 раз.

Цитата Сообщение от locm Посмотреть сообщение
Кодируйте в MP3 в приложении и после пишите на диск.
Это не сложно. Вот часть кода преобазующая WAV в MP3 посредством acm функций.
*WaveBuff содержит сырые данные WAV, а функция WriteData записывает на диск данные преобразованные в MP3.
Ну я же раньше не знал про такую удобную возможность. Ещё раз спасибо. Это полностью исключает использование сторонней утилиты, что мне очень нравится.

Цитата Сообщение от locm Посмотреть сообщение
Цитата Сообщение от Power_Basic
Проблема только в том, что не могу научиться записывать одновременно в 5 потоков (сейчас запись идёт только в один).
Создайте на форуме тему в которой напишите что не получается.
А где её создать-то?
В "Звуке" никто не ответит, это мы уже проходили
В "Си" мне ответят так, что я хрен чего пойму
А в бейсике это вообще вроде флуда, потому что к самому бейсику имеет самое отдалённое отношение.
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
19.03.2020, 23:28
Цитата Сообщение от Power_Basic Посмотреть сообщение
А где её создать-то?
В "Звуке" никто не ответит, это мы уже проходили
В "Си" мне ответят так, что я хрен чего пойму
А в бейсике это вообще вроде флуда, потому что к самому бейсику имеет самое отдалённое отношение.
На чем хотите писать программу, там и создавайте тему.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
19.03.2020, 23:47
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Цитата Сообщение от Power_Basic
что не могу научиться записывать одновременно в 5 потоков
Судя по тому, что если запустить сразу несколько копий программ и работает только одна на чтение голосом или запись в файл. Вторая начинает работать, когда заканчивает предыдущая или предыдущую поставить на паузу. Видимо SAPI5 не рассчитан на параллельную работу. Очевидно, что и в многопотоке работать не станет, потому даже лень проверять.
А вот это уже разговор по-существу.
Вот смотрите, в классе ISpeechVoiceEvents имеется метод EndStream, который является событием (EVENT), "выстреливающим" в самом конце записи, и при этом он возвращает номер последнего байта в потоке (StreamPosition), а также номер потока (StreamNumber).

Visual Basic
1
METHOD EndStream <2> (BYVAL StreamNumber AS LONG, BYVAL StreamPosition AS VARIANT)
По умолчанию StreamNumber всегда равен единице, я проверял. Но если имеются номера потоков, значит и должна быть какая-то возможность выводить озвучку параллельно в разные потоки. А иначе просто нелогично возвращать программисту номер одного-единственного доступного аудиопотока. Ну или тогда единственное возможное объяснение, которое приходит в голову, - это как бы задел на будущее, который будет использован в следующих версиях SAPI. Ну да такое тоже возможно, но всё-таки маловероятно вроде бы.

Разумеется, выводить два потока на динамик это полный абсурд. А вот в файл, или, уж тем более, в память, ну почему бы и нет?
0
Эксперт по электронике
6998 / 3314 / 341
Регистрация: 28.10.2011
Сообщений: 13,024
Записей в блоге: 7
20.03.2020, 00:04
Цитата Сообщение от Power_Basic Посмотреть сообщение
По этой схеме SSD мы используем только 1 раз.
Сначала пишите WAV на диск, а после читаете с диска, конвертируете в MP3 и опять записываете на диск.

Не нужно стремится записывать файл целиком. Можно записывать кусками и при этом предыдущие данные не изменяются, а новые помещаются в другие ячейки памяти SSD. То есть износ SSD будет одинаков при записи всех данных за раз и при записи кусками.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
20.03.2020, 00:52
Цитата Сообщение от The trick Посмотреть сообщение
Вы путаете с ActiveX контролами. ActiveX (раньше OLE) - это технология, базируемая на COM. ActiveX EXE - это out-of-proc сервер (в противовес ActiveX DLL - in-proc сервер).
А ну да, теперь понял. Это те, которые запускаются не в адресном пространстве самой программы, в отличии от DLL.

Цитата Сообщение от The trick Посмотреть сообщение
Да это в любой более-менее сложной библиотеке так. Прежде чем работать с ней необходимо изучить документацию.
Ну вот то-то и оно-то. А пока все эти сложности изучишь, уже и программу писать вся охота пропадёт

Цитата Сообщение от The trick Посмотреть сообщение
Цитата Сообщение от Power_Basic
Для реализации вашего подхода мне придётся перевернуть кучу литературы, а мой собственный можно использовать хоть прямо сейчас
Не нужно кучу литературы. Нужно прочитать несколько статей и все будет понятно. Ну дело Ваше, как хотите так и пишите.
Да нет же, я совсем не против обучения. Совсем наоборот, я за. Но если я прямо сейчас начну вникать во все фичи, которые мне одновременно советуют со всех сторон, у меня просто снова пропадёт всякое желание программировать. Так уже было очень много раз, когда я пытался "объять необъятное". А потом перерывчик эдак на полгодика, за время которого я успеваю забыть почти все "академические подходы" и потом снова начинаю кодить по рабоче-крестьянски
Всё-таки вопросы и потребности должны, как бы, "созреть", тогда ответы лягут на плодотворную почву.
Ну или когда советы совсем уж легковыполнимые, тогда тоже полный порядок.
А если сразу много трудновыполнимых, тогда "башка задымится", если всем им одновременно следовать

Добавлено через 36 минут
Цитата Сообщение от The trick Посмотреть сообщение
я просто говорю что это очень спорное решение - ассемблер в ЯВУ.
Не, ну для ускорения "узких мест", почему бы и нет?
Вот вы - профессионал - знаете, как использовать очень многие WinAPI-функции, а они почти все на Си, там всё очень быстро, ну и тогда ассемблер, пожалуй, действительно не нужен. А вот я - любитель - пишу на бейсике (это тоже ЯВУ), WinAPI-функции использую редко (по причине почти полного их незнания), и если передо мной возникнет проблема ускорить какой-нибудь фрагмент кода, чтобы "обойти узкое место", я обязательно буду использовать в том числе и ассемблер.

Цитата Сообщение от The trick Посмотреть сообщение
Так все дело в том что в спекке бейсик - это интерпретатор, а не компилятор. Поэтому он очень медленный.
А, ну да, здесь я полностью не прав, согласен, упустил это из виду.

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

Цитата Сообщение от The trick Посмотреть сообщение
Цитата Сообщение от Power_Basic
Ну это у меня уже "пункт" такой, что SSD надо беречь как зеницу ока
А для чего он нужен? Обычно SSD берут чтобы скорость работы диска была высокой. Для чего иметь диск и не писать на него? Другой момент - это то что контроллер ЖД распределяет запись так чтобы блоки равномерно использовались. Моему диску около 4 лет, я его использую в качестве системного и его износ всего 8%.
Ну дык уже ведь успели внушить советами со всех сторон, что SSD следует беречь, а иначе потеряшь сразу всю накопленную за долгие годы информацию. А я впечатлительный
У меня сейчас на новом компе совсем нет жёсткого диска, только SSD на 500 гигов.
Сначала хотел купить хард ему в помощь, но потом прочитал отзывы на яндексе, что все именитые бренды теперь. якобы, стали халтурить и их диски сыпятся через пару лет, ну и не стал покупать.
Для архивации периодически (когда не лень) сбрасываю архивы на старый диск IDE, который подключаю по USB через переходник.

P.S.. Ну всё, я баиньки. Дальше догонять продолжу уже завтра
Точнее, уже сегодня, получается
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
20.03.2020, 04:32  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Вообще мне непонятно почему вы считаете библиотеки из коробки какими‐то особенными, имеющими привилегии, а добавленные библиотеки — какими‐то неправильными
Всё зависит от контекста. Для меня имеет значение целостность. Чтобы в продукте содержалось всё.
Если продукт установленный на голую ОС не работает из коробки - нафиг он такой нужен.

Разумеется скорость работы и потребление ресурсов тоже важны. Поэтому .Net проги это аццкий bloatware.
Мои проги даже с этими неродивыми "конверсиями" за которые ты меня записал в bloatware никогда
не сравнятся по потреблению ресурсов с этим чудом. Хотя реальный bloatware зависит от алгоритмов, которые
человек применяет, а не от способа взаимодействия с системой. Потому что нагородить можно много чего
и сказать что мол "так напишу", но так не напишу. Я не брезгаю тестировать свои проги даже на втором пентиуме.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Например, так появился FreeBASIC, после убийства QBasic.
Не Q, а QuickBasic, всё таки это разные вещи. Однако FB загаживали постепенно делая его
синтаксис c-подобным, а после этого спустя 20 лет его засрали, добавив туда ООП. И теперь
каждый новичёк "лохопет" который в общем-то не программирует вообще сразу лезет в дебри и
начинает своё изучение FB с "типа" классов, конструкторов, перегрузок и прочего добра, просто потому
что ктото ему сказал что "так правильно", а сам он думает, что "это круто". Вместо того, чтобы наработать
качественные модульные навыки. И это очень печально. Юникод на фоне этих проблем как муха
на фоне слона. В итоге QB программисты ничего не получили, один ЯП фактически поглотил другой.
В итоге читая каждый новый исходник видишь как будто новый язык.
И сейчас нас пеняют мелкими технич. даталями, хотя точно также можно пнуть например тех,
кто интегрировал туда mingw, положи компилятор в русское расположение на диске, создай в
его папке исходник и попробуй скомпилировать через *.BAT файл. Весело?
Но там люди более серьёзные это делали, которые по идее должны были все эти мелкие тех. детали
впитать с молоком матери, но, как обычно, что-то пошло не так. Не знаю, но может у китайцев работает,
о нас русских чё-то не особо подумали.
1
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.03.2020, 06:26
Цитата Сообщение от Power_Basic Посмотреть сообщение
Вот смотрите, в классе ISpeechVoiceEvents имеется метод EndStream, который является событием (EVENT), "выстреливающим" в самом конце записи, и при этом он возвращает номер последнего байта в потоке (StreamPosition), а также номер потока (StreamNumber).
Как я понял,номер потока - тут идет речь о разных голосах. Т.е у нас например спорят мужской и женский, вот в этом случае используется понятие номер потока. Как в жизни, один голос не может одновременно читать 6 книжек. Ну и соотв. при записи в файл то же правило.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
20.03.2020, 07:14  [ТС]
Флаг SPF_ASYNC не поможет? Или он только отвечает за остановку программы на этой функции?
https://docs.microsoft.com/en-... 65(v=vs.85)
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
20.03.2020, 09:21
Цитата Сообщение от Power_Basic Посмотреть сообщение
Ну дык я же так и делаю. Записать-то итоговый файл на диск по-любому надо.
Вы говорите - создать промежуточный WAV файл.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
20.03.2020, 16:29
Цитата Сообщение от The trick Посмотреть сообщение
Цитата Сообщение от Power_Basic
Но это же только один раз в самом конце всего процесса.
А какая разница? Писать по чуть-чуть, или сразу все, тем более на SSD.
Ну пожалуй, да. Это сильный аргумент. Мне как-то и в голову не приходило, что запись многочисленными фрагментами и запись "одним большим суммарным куском", с точки зрения нагрузки на диск, большой разницы не представляет.
Ну хорошо, убедили, аргумент "сохранения ресурсов диска" я убираю.

Цитата Сообщение от The trick Посмотреть сообщение
Цитата Сообщение от Power_Basic
Ничуть. Мы же всё делаем в памяти, а на диск сбрасываем только в самом конце и используем диск только 1 раз.
Нет. Вы же говорите что WAV файл бросаете на диск и утилита его конвертирует в mp3. В этом алгоритме как минимум 1 временный WAV файл создается огромного размера. В алгоритме который Вам тут предлагают вообще не нужен временный файл.
Ну да, да, всё правильно. Теперь, когда по ходу этого крайне полезного для меня обсуждения, учитывая подсказку locm'а как можно без особых проблем переконвертировать WAV в MP3 прямо в памяти, разумеется, я буду использовать именно такой подход. И тогда да, необходимость во временном WAV-файле на диске полностью отпадает.

Добавлено через 15 минут
Цитата Сообщение от The trick Посмотреть сообщение
Цитата Сообщение от Power_Basic
А где её создать-то?
В "Звуке" никто не ответит, это мы уже проходили
В "Си" мне ответят так, что я хрен чего пойму
А в бейсике это вообще вроде флуда, потому что к самому бейсику имеет самое отдалённое отношение.
На чем хотите писать программу, там и создавайте тему.
Да я не "хочу писать", она уже написана и вполне нормально работает, и сейчас я её, не спеша допиливаю

Но она написана на Power_Basic'е, вот в том-то и проблема. Такого подфорума здесь нет. А если создать тему в "общей куче" всех бейсиков, тогда её наверняка все проигнорируют, потому что и язык очень редкий, и вопрос очень сложный
Это я сейчас имею в виду вопрос записи в режиме нескольких параллельных аудиопотоков.

Добавлено через 5 минут
Цитата Сообщение от locm Посмотреть сообщение
Цитата Сообщение от Power_Basic
По этой схеме SSD мы используем только 1 раз.
Сначала пишите WAV на диск, а после читаете с диска, конвертируете в MP3 и опять записываете на диск.
Не нужно стремится записывать файл целиком. Можно записывать кусками и при этом предыдущие данные не изменяются, а новые помещаются в другие ячейки памяти SSD. То есть износ SSD будет одинаков при записи всех данных за раз и при записи кусками.
Ну да, да, согласен, мой аргумент в пользу такого подхода уже утратил силу, а с учётом вашей подсказки конвертации форматов прямо в памяти, и вовсе потерял всякий смысл.

Добавлено через 1 час 12 минут
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Цитата Сообщение от Power_Basic
Вот смотрите, в классе ISpeechVoiceEvents имеется метод EndStream, который является событием (EVENT), "выстреливающим" в самом конце записи, и при этом он возвращает номер последнего байта в потоке (StreamPosition), а также номер потока (StreamNumber).
Как я понял,номер потока - тут идет речь о разных голосах. Т.е у нас например спорят мужской и женский, вот в этом случае используется понятие номер потока. Как в жизни, один голос не может одновременно читать 6 книжек. Ну и соотв. при записи в файл то же правило.
Нет, такой аргумент точно не работает, сейчас объясню почему, но для этого мне придётся ещё раз рассказать весь алгоритм работы программы более подробно, да ещё и с предисловием

Короче говоря, началось всё с того, что мне захотелось написать своего собственного "создателя аудиокниг", но такого, чтобы все русские слова озвучивались русским движком, а все английские, соответственно, английским.
Причём (будете смеяться) такая идея у меня возникла при попытках озвучить "фирменными" программами для создания аудиокниг книги Лукина для самых-самых неопытных новичков Визуального Бейсика.
Ну просто пришла мысль, что уж такие-то азы я запроста смогу воспринимать даже на слух. Я сейчас имею в виду, разумеется, не русскую часть звучания, а английскую, ну то есть озвученные английским движком фрагменты исходного кода бейсика. Они же там, особенно поначалу, вообще примитивные. "Привет, мир" и всё такое

Одним словом, на данный момент алгоритм (уже написанной и работающей) программы выглядит следующим образом:

1. Загружаем весь исходный файл (в формате TXT) в память, а точнее, в огромную строку.
2. Начинаем парсить эту строку, выделяя русские и английские фрагменты и сразу же (последовательно) отправля каждый из них на запись в аудиопоток. Причём для записи русского фрагмента мы переключаемся на русский движок, для английского - на английский.
3. После окончания записи каждого такого фрагмента (а они очень часто могут состоять даже всего из одного слова) "выстреливает" событие EndStream, которое возвращает нам, как я уже говорил выше, номер аудиопотока и номер последнего байта в этом потоке.
4. Но, как выяснилось на практике, аудиопоток там накапливается, а не начинается каждый раз снова, как я изначально предполагал.
5. Когда весь исходный текст обработан, мы "пришиваем" к нему WAV-заголовок и сбрасываем на диск.
6. Там его подхватывает сторонняя утилита, которая конвертирует полученный файл в формат MP3. А это и есть наш "конечный продукт".

Ну то есть вот такой аргумент:

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Как я понял,номер потока - тут идет речь о разных голосах. Т.е у нас например спорят мужской и женский, вот в этом случае используется понятие номер потока.
точно не срабатывает, потому что у нас в данном случае как раз-таки, фактически, и происходит "разговор двух собеседников", но при этом значение StreamNumber всегда равно единице. Это я точно знаю, потому что пытался одно время запускать русскую и английскую озвучку в двух потоках (не путать сейчас с аудиопотоками!), чтобы как раз-таки добиться записи в разные аудиопотоки, но значение StreamNumber даже и тогда оставалось равным единице.
То есть даже при записи разными голосами запись всё равно идёт в один и тот же поток.

Добавлено через 16 минут
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Флаг SPF_ASYNC не поможет? Или он только отвечает за остановку программы на этой функции?
https://docs.microsoft.com/en-... 65(v=vs.85)
Флагами я тоже пробовал "играть" ещё в самом начале, не помогло
Короче, там разница между дефолтным флагом и флагом SPF_ASYNC состоит в том, что в первом случае запись аудиопотока должна происходить синхронно (работа программы блокируется до окончания записи), а во втором асинхронно (программа продолжает работу параллельно с записью аудиопотока). Так должно быть, но на практике оба этих подхода почему-то дают асинхронное выполнение, и это было для меня большой проблемой, которую я всё-таки преодолел, изрядно поплясав с бубном

Добавлено через 9 минут
Цитата Сообщение от The trick Посмотреть сообщение
Цитата Сообщение от Power_Basic
Ну дык я же так и делаю. Записать-то итоговый файл на диск по-любому надо.
Вы говорите - создать промежуточный WAV файл.
Ну его можно назвать одновременно и промежуточным и итоговым. "Итоговый" он, потому что это итог очень большой работы, а "промежуточный", потому что это всё-таки не самый конечный "продукт", а "полуфабрикат" для лёгкой конвертации с помощью сторонней утилиты.

Разумеется, после всех полученных советов необходимость в этом файле полностью отпала, но на данный момент (пока в код ещё не внесены соответствующие изменения) программа работает именно так.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
20.03.2020, 17:29
Цитата Сообщение от Power_Basic Посмотреть сообщение
То есть даже при записи разными голосами запись всё равно идёт в один и тот же поток.
Я же про то и говорю. Что сколько бы движков не было запущено, даже если в разных совершенно программах, все они работают строго по очереди. SAPI не позволяет параллельную работу.
Есть Бесплатная + с открытым исходным кодом на Делфи Exo - синтезатор речи Эхо.
Он с помощью голосовых движков умеет озвучивать двуязычные тексты, работать со словарями. Очень интересно запустить 2 экземпляра двуязычного текста! Тогда текст читается по очереди в обеих копиях, чередуя английский и русский.

Но есть и хорошая новость. При создании звукового файла обе копии программы работают одновременно!
Т.е. я попробовал на одном и том же тексте одновременно запустить 2 копии программы и записать в разные файлы. Оба звуковых файла были записаны совершенно одинаково и параллельно, с правильным чередованием русских и английских текстов.
Так что скорее всего многопоток возможен. Или проще ни чего не переделывать, а запускать несколько копий программы с разными кусками текста
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.03.2020, 17:29

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
220
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru