Sinclair83
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору wvxwxvw Цитата: Спасибо. Нормальный вариант. Еще бы "ровно" как ни будь учитывать, на будущее, например, если есть 84 файл. | Пожалуйста. Добавлено. Теперь при создании базы можно выбирать до 147 wav-файлов включительно (подробности в файле звуковой схемы). Но это вовсе не означает, что нельзя собрать базу из меньшего кол-ва файлов (собирайте из того что есть). Можно ради эксперимента указать даже один wav-файл (программа при этом не должна "упасть"). Вобщем разберётесь. Решил немного доработать программу(ы) + добавить ещё один инструмент. Думаю, что он будет не лишним для тех, кто пользуется. Также добавил более осмысленные сообщения на разные случаи ошибок/остановок программы (в том числе за счёт этого исполняемые файлы немного прибавили в весе). Если кто уже скачал архив из готовых баз, тех, что предоставил wvxwxvw выше, то они не подойдут теперь. Извиняюсь, но так было нужно. Можно взять исходники отсюда и начать сборку самостоятельно. Немного истории или с чего всё началось... Вобщем, посмотрел на предыдущую версию конструктора и решил, что это совсем не нормально иметь для каждой базы свою уникальную пару из бинарника. Это просто ужасно. Теперь же, если при запуске конструктора рядом с осн. программой будет обнаружена несоответствующая ей(осн. программе) база, то будет предложено пропатчить осн. программу для нормальной работы с этой обновлённой базой. Как я уже сказал, то что собиралось и выкладывалось здесь ранее не подойдёт для патча. Таким образом вы можете обмениваться между собой своими базами или выкладывать их в публичный доступ не прикрепляя осн. программы. Достаточно только самой базы. Тому же кто загрузит базу, сделанную кем-то другим, достаточно будет лишь положить её рядом с осн. программой и пропатчить осн. программу (разово запустив конструктор и выбрав опцию патча). Иначе для чего бы вы думали я прошу указать бинарник в конструкторе? Далее. Для того, чтобы была возможность подкорректировать чужую базу или свою(у которой утеряны исходники) было решено создать дополнительный инструмент, о котором говорил выше. "Splitter.exe" - экстракция файлов из уже собранной базы. То есть процесс, обратный сборке. Иными словами - разборка. Не обязан находиться рядом с базой, тем более что извлекает файлы из неё и ложит возле себя. Только первоначальные имена файлов-исходников будут утеряны(не до того было). Останется только нумерация. Но ведь это не страшно и с этим в полне уже можно работать, не так ли? Тем более что у вас схема-подсказка на руках будет. Короче, суть заключалась в том, чтобы можно было разобрать базу, подкорректировать её и затем снова собрать. Теперь по-поводу того, что с определённого момента был исключён блок кода, отвечающий за расширенный формат. То есть за дату и день недели. Спешу сообщить, что вернул его обратно. Передаваемый параметр всё тот же: 1 ("единичка"). Но теперь имея даже "короткую" (83 файла - часы;минуты) базу и задав данный параметр программа не упадёт. Она и раньше не должна была падать просто молча закрываясь. Теперь же, в данном случае будет выдано сообщение о том, что база не полная. И тем не менее, если в ней имеются требуемые на данный момент фрагменты, то они будут произнесены и только потом выдано сообщение. Это правило не касается слова "ровно". Например, у вас есть "короткая" база и в ней нет файла со словом "ровно" (84-й файл). В этом случае программа не выдаст вышеоговоренного сообщения, когда на часах минуты показывают нули. Это такое исключение, чтобы не выводилось раздражающего сообщения понапрасну. То есть это не считается большой недостачей и 83-х файловая база приравнивается к полноценной 84-х файловой "короткой" базе (разве что говорить будет как прежде при нулях, только часы, без "ровно"). Параметром же вы, как бы, дополнительно сообщаете программе, что "у меня полная база". Хотя она и без него поймёт полная у вас база или нет. Кроме всего прочего, положил в архив парочку баз. Для демонстрации, так сказать. Программа на данный момент пропатчена под полную версию базы. Просто положите её рядом с программой, предварительно переименовав в "Sound.db" (это важно!) и проверьте. Затем можете сменить базу на "котроткую". Повторюсь, что для её подключения необходимо будет сначала пропатчить программу. Полная база - это ничто иное как сборная солянка. Поженил В будущем же можете изменять набор для базы в соответствии со своими предпочтениями. Вроде всё! Во внутренние детали уже не стал вдаваться. Итак сдал всё с потрохами Надеюсь, что произведённые изменения достаточны и наиболее значимые/веские, чтобы оправдать появление этого сообщения. Всем добра! Ссылка Добавлено: Эх-х-х... Промахнулся немного с переменной. Сказал тут выше про сообщение о неполной базе, а оно не появляется. Пожалуйста, перекачайте. Обещаю, что это ничего не сломает. Всё остальное в силе. Это просто как некий индикатор. То есть, что бы пользователь не думал почему это программа проговорила не всё. При тихом же её завершении это может привести в недоумение. Хорошо. Пример. Вот смотрите, допустим на часах 20 часов 30 минут. Допустим при сборке базы вы указали только 25 файлов, что соответствует полным 24-ём часам и только одной минуте. Так? Если же теперь запустить программу без параметра, то она скажет: "20 часов" и далее выдаст то самое сообщение, так как минута в базе только одна(а надо на данный момент минимум 30). А если при такой базе на часах будет X часов и 00 минут, то программа скажет "X часов" и не покажет никакого сообщения. Если же при нулях минут вы намеренно укажете параметр 1, то это исключение уже действовать не будет. И будет выдано сообщение. Вообще говоря, при заданном параметре должно считаться не менее 8 фраз. Без вариантов. Надеюсь понятно объяснил логику работы. Пробуйте. Тестируйте. И не забывайте отписываться о замеченных багах, если таковые обнаружатся. |