0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 12
|
||||||
1 | ||||||
Ошибка компиляции BAS-файла24.02.2015, 21:31. Показов 2130. Ответов 18
Метки нет (Все метки)
Для начала. Модуль писался отцом в 2009. Отца уже нету. EXE-шник работает. При запуске он составляет плейлисты с определенными параметрами. Проблема в том, что в ini-файле можно задать только одно время для формирования плейлистов. При добавлении второго времени модуль берет значение из последней строчки. То-есть составляет только один блок плейлистов. Мне же нужно, что б таких блоков создавалось два. На утро и на вечер для примера.
Вариантов реализации я видел 2. 1. Изменение параметров кода для получения возможности чтения из ini-файла нескольких значений времени. Для меня практически не подъемная задача, поскольку мне до понятий программирования как до луны на корточках. 2. Создание клона этого модуля с другим названием самого файла и с другим названием ini-файла в самом коде. Тогда за утренний блок будет отвечать один модуль, а за вечерний - другой. От отца у меня остались BAS-файл и скомпилированный из него рабочий EXE-шник. На его машине BAS ассоциирован с QBX.EXE. Рядом с QBX.EXE лежат файлы QBX.INI и QBX.KEY (видимо с настройками компиляции... не знаю). На сколько я понимаю - это компилятор именно QuickBasic 4.5? Вот тут я и столкнулся с проблемой. При попытке создать новый EXE-шник выдаёт 12 ошибок в синтаксисе...! Но отец же как-то его скомпилировал! Вот сам код. Кликните здесь для просмотра всего текста
Прикрепляю и сам BAS-файл. Может кто поможет иль подскажет.
0
|
24.02.2015, 21:31 | |
Ответы с готовыми решениями:
18
Как открыть BAS-файл для редактирования? Импорт файла *.bas с макросами для использования на другом ПК Ошибка компиляции файла Ошибка в компиляции файла Cython |
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 12
|
|
24.02.2015, 21:45 [ТС] | 2 |
Вот и сам файлик
0
|
Заблокирован
|
|
25.02.2015, 09:12 | 3 |
iVladimir, при всем уважении к произведению Вашего ОТЦА (от 2009 года)
Сообщение от гугл
Давайте посмотрим на жизнь с немножко новых реалий?
0
|
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 12
|
|
25.02.2015, 13:58 [ТС] | 4 |
Уже смотрю. Заказал новую программу на С++. Уже давненько. Но учитывая ее особенности дело продвигается туго. Возможно мне просто тугой исполнитель попался, я ж в этом не разбираюсь. Хотите - перешлю Вам в личку ТЗ на программу. Оцените, сколько такая работа может потребовать времени.
А внести изменения в эфир нужно сейчас.
0
|
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 12
|
|
25.02.2015, 15:16 [ТС] | 6 |
Возможно.... только
Только таких модулей около 20-ти. Этот самый маленький. И не в каждом я уверен, за что он отвечает.
Именно по этому я сделал ТЗ на новую программу. С интерфейсом и т.д. Вордовский документ на 25 страниц с рисунками и детальным описанием функций. Мне по большому счету по барабану, на чем она будет написана. Поиск фрилансера на сайте окончился для меня неподьемной суммой. А тот, которого нашел у себя в городе - тормозит ((
0
|
locm
|
25.02.2015, 16:21
#7
|
Не по теме: Чем больше сложность работы, тем выше цена. И если за перевод кода в первом сообщении можно взять 500 рублей (к примеру), то за всю работу может выйти 20 тысяч, а то и больше. Возможно ему была предложена скромная сумма и он занимается программой когда других дел нет. Но без детального описания сложно оценить реальную стоимость разработки этого приложения.
0
|
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 12
|
|
25.02.2015, 16:45 [ТС] | 8 |
locm, Согласен... немного отклонились от темы.
Мне все таки не дает покоя тот факт, что отец эти файлы скомпилировал. Возможно я просто в самом процессе что-то делаю не так. Задаю какие-то не такие параметры. Возможно кто-то попробует скомпилировать то, что есть. На всякий случай в архив положил QBX.EXE, QBX.INI и QBX.KEY. Может в них собака зарыта?
0
|
25.02.2015, 17:36 | 9 |
Сообщение было отмечено iVladimir как решение
Решение
Скомпилировать то не сложно, только работать это не будет, там видно модули связаны между собой + дополнительные папки, файлы. Нужен весь проект, целиком со всеми "потрохами"
Ну если нужен EXE именно этого MUSICDAY.BAS куска кода, то пожалуйте вот:
1
|
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 12
|
|
25.02.2015, 18:33 [ТС] | 10 |
Pro_grammer, Добрый человек. Кланяюсь тебе в ноги и бью челом. Работает скомпилированный тобой ЕХЕ-шник. Вот только я балда несусветная. Выложил сюда файл со старым названием ini-файла в коде.
Вот тут новый, правленый. Не откажи горемыке. Скомпилируй пожалуйста еще раз.
0
|
25.02.2015, 20:06 | 11 |
Да пожалуйста, хоть два раза. Там имя в DOS 8.3 должно быть, у вас больше, потому скомпилировалось с коротким именем MUSICD~1.EXE
В новом файле реально изменено только имя файла \musicday1.ini, а смысл было компилировать? Можно было просто скопировать целиком вашу драгоценную программу на другой диск ( или в другую папку), изменить содержание musicday.ini на то, что вам надо, и был бы тот же эффект!
1
|
25.02.2015, 20:22 | 12 |
Ещё один путь развития, без изменения готовых модулей.
Пишем программу, которая формирует musicday.ini по расписанию, хоть 5 раз в сутки новый файл. Эта же программа в нужный момент стирает старый файл musicday.ini, записывает туда новый, запускает по расписанию формирование блока плейлистов. Мы имеем так называемый лаунчер, который будет автоматизировать весь процесс. Это намного проще, чем писать программу с нуля на на 25 страниц описания. И стоить будет сущие копейки ( по сравнению), работа не сложная.
0
|
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 12
|
|
25.02.2015, 21:16 [ТС] | 13 |
Во первых спасибо большое. Завтра протестирую - отпишусь.
Далее... Не получится. Сам модуль запускается не расписанием. Его запуск прописан в родительском модуле с указанием путей расположения. Так же как и с десяток схожих модулей. Каждый отвечает за определенную рубрику. Это интересный вариант. О нем я не думал. Но в то же время опять таки все упирается в Учитывая наличие исходника существующей программы мне кажется такой вариант несколько сложнее. Хотя, в случае невозможности правки существующей программы это был бы идеальный вариант. Я б за Вас в церкви помолился за такой совет . Тут несколько иная ситуация. Рубрик много, модулей много. У каждого своя логика. Если Вам интересно - вот файл ТЗ. Там подробно все описано. Проблема в том, что все работает в дос-режиме. И если я умею понять логику и оперативно внести нужные изменения в расписание через правку кучи ini-файлов, то простой журналист в жизни не сможет даже с руководством по телефону добавить что-либо при необходимости. Именно по-этому я составил задание на планировщик плейлистов. Если интересно - оно в файле. Можете просмотреть. Тогда поймете о чем я. Логика работы всего пакета радиостанции на данный момент такая как и в ТЗ. Только в ТЗ я внес некоторые мелкие улучшения, существенно увеличил гибкость настроек и добавил графический интерфейс для удобства работы простым журналистам. Сама идея программы - автоматизация эфира на 95% с кучей защит от ошибок (как человеческих так и технических).
0
|
25.02.2015, 21:48 | 14 |
Кому как. Иногда проще с нуля программу написать, чем разбираться в чужом коде, который не очень то комментирован, и к тому же написан на устаревшем языке программирования.
А на какой ОС крутится программа, какова мощность компьютера?
0
|
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 12
|
|
25.02.2015, 22:17 [ТС] | 15 |
С мощностью проблем нет. Ось стоит ХР сп3 х86. Программа написана в жесткой привязке к планировщику плеера Wolosoft Raduga. Проблема в том, что у версии, которая корректно работает с семеркой замечены проблемы с кодировками кириллицы. Именно по-этому остаюсь привязан к ХП.
Абсолютно согласен и придерживаюсь того же мнения. Именно по-этому я и не искал возможности обновления модулей, а составил описание ТЗ на планировщик с такой гибкостью настроек, что его можно будет привязать к любому плееру. Хотя и планирую в дальнейшем расширить встроенным плеером сам планировщик.
0
|
26.02.2015, 06:55 | 16 | ||||||||||
Нужен образец реального ini файла, что бы знать, о чем идет речь?
Как создается этот musicday.ini? В коде есть запрет на запуск до 3-х часов ночи, там какая то автоматизация? Я тут внёс некоторое изменение в код. Теперь нет необходимости держать 2 клона, в начале запуска идет запрос, какой musicday.ini мы должны использовать, допустимые имена: musicday.ini musicday1.ini musicday2.ini и т.п. числом не ограничено. На запрос надо ввести соответствующую цифру и нажать "Enter", если цифры нет, то просто нажать "Enter". Естественно файлы musicday?,ini должны быть подготовлены и лежать там, где им положено. Изменения в исходном коде коде, добавлено 6 строка:
0
|
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 12
|
||||||
26.02.2015, 12:19 [ТС] | 17 | |||||
musicday.ini содержит две строки
dir = \\main\E\Audio\musicday\ start = 1030 Тот файл, который был без изменений кода, отрабатывает на ура. musicd~1 выдает ошибку 0DDD:00C9 musicdn если просто нажать Enter - тоже отрабатывает. Если нажать 1 - ошибка 0DDD:0103 Возможно проблема кроется именно именно в имени ini-файла. Скорее всего где-то в коде отец привязал его к имени папки или рубрики. Давайте попробуем поменять в коде не имя ini-файла, а путь к нему. Например так:
А вообще самый прекрасный вариант был бы, если бы модуль работал только с одним ini. Есть dir = \\main\E\Audio\musicday\ start = 1030 делает один блок Есть dir = \\main\E\Audio\musicday\ start = 1030 start = 1630 делает два блока и т.д.
0
|
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 12
|
|
27.02.2015, 11:54 [ТС] | 19 |
блин... вот же намудрил отец. По отдельности оба файла отрабатывают. Каждый берет данные из своего musicday.ini. Но если они работают вместе, то срабатывает только тот, который в очереди запуска стоит первым.
Я сейчас полазил по коду... Проблему нашел. Правда пока не придумал, как ее обойти. Отец зачем-то ввел в код защиту от повторного монтажа... При чем глупую на мой взгляд (хотя кто знает как он себе это видел). При монтаже блока информация об использованных файлах записывается в event.log. В коде этот лог встречается 3 раза в строках 31, 77 и 102. Этот файл каждый день очищается. При запуске модуля он сканирует лог на наличие в нем уже использованных сегодня файлов. Если находит - больше их не использует. Я проверил. Если удалить из лога в ручном режиме использованные файлы - при повторном монтаже он их смонтирует заново... Смысл защиты я интуитивно улавливаю. Обычные плейлисты с музыкой, если по какой-то причине прошло время их выхода и подошел следующий, просто удаляются. Плейлисты рубрик остаются висеть в задании, пока не исполнятся и только потом удаляются. То есть допустим рубрика на 10-30 прошла и плейлисты удалились. Подходит время проверки новых заданий и программа монтирует новые плейлисты на 10-30. И они опять идут в эфир. То есть просто убрать функцию проверки event.log нельзя. Пока что я вижу только один вариант обхода этой проблемы. Изменение кода для возможности считывать из ini 2 времени. Есть еще вариант. Не менять основной код, а добавить в конце функцию копирования с переименовкой... Добавлено через 7 минут Вижу я себе это так. Создается musicday1.ini. В нем прописывается одна строка с нужным временем... Хотя тут тоже геморрой. Долго описывать... Надо обдумать. Добавлено через 20 минут Проблема с простой переименовкой состоит в том, что время, указанное в ini-файле используется только для именовки первого плейлиста в рубрике. Остальные высчитывает в зависимости от продолжительности предыдущего файла. Пример: Лежит в папке на сегодня 3 файла 1.mp3 17:00 2.mp3 16:00 3.mp3 08:00 При указанном в ini-файле времени старта 10:30 она смонтирует 3 плейлиста: 1030 1.m3u 1047 2.m3u 1103 3.m3u Если в musicday1.ini будет прописано 1600, то оно должно грамотно переименовать 1600 1.m3u 1617 2.m3u 1633 3.m3u Вторая проблема в определении файлов, которым необходима переименовка. В папке, куда закидываются готовые файлы рубрики, кроме них лежит около 200 других сформированных плейлистов на день (другие рубрики, музыка и т.д.). Как назначить, какие именно файлы нуждаются в копировании и переименовке? Добавлено через 1 час 19 минут Pro_grammer, У меня пока нет возможности отправлять ЛС. Видимо завтра появится. Так что пишу пока здесь. На счет вашего предложения - не получится. Очень уж одно на другое завязано. У меня есть другая идея. Все вот эти тесты я отрабатываю на машине-клоне. Я могу вам предоставить к ней доступ через TeamViewer. Вот тогда вы действительно сможете увидеть всю эту картину целиком. Добавлено через 17 часов 30 минут По большому счету тему можно закрывать. Изначально поставленная задача решена. Побочная проблема к теме не относится. Всем спасибо за участие.
0
|
27.02.2015, 11:54 | |
27.02.2015, 11:54 | |
Помогаю со студенческими работами здесь
19
Ошибка при компиляции файла Ошибка при компиляции файла Ошибка при компиляции exe файла Ошибка компиляции ввода-вывод файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |