Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
ну что опять не так, нормально компилируется все, и работает. смотри внимательнее, проверь пути, покажи окно с ошибкой. и почитай где-нибудь как обращаться с функциями и где они должны лежать.
Quote (Alex3A)
Непутевый, значит ключевое слово "путь" , смотри как ты задаешь путь к файлу.
Пишет что не найден файл по адресу C:\Program Files\NeoBook 5\Functions\GetHeaders хотя он и там есть и в папке с проектом
Добавлено (24 Август 2010, 17:47) --------------------------------------------- Вот так выглядит проверка даты изменения файла ( правда надо еще доделать что бы после закачки записывало в строку в которой нет совпадения самую последнюю дату изменения )
Добавлено (24 Август 2010, 18:05) --------------------------------------------- ПИ В файле pif.ini число строк должно совпадать с числом строк в файле suf.ini
Пишет что не найден файл по адресу C:\Program Files\NeoBook 5\Functions\GetHeaders хотя он и там есть и в папке с проектом
проверь еще раз все имена и пути (в т.ч. при вызове функции в команде call). Скомпилированный проект твой работает? А если скомпилировать его и положить отдельно, чтобы функция не была с ним в одной папке, будет работать? Если пишет файл не найден, то при компиляции он не будет положен в проект. И напоследок скомпилируй мою демку, будет ли вылазить это окно.
Добавлено (24 Август 2010, 18:08) --------------------------------------------- ну еще можешь дать мне исходник, я попробую скомпилировать у себя, как последний вариант
А если скомпилировать его и положить отдельно, чтобы функция не была с ним в одной папке, будет работать? Если пишет файл не найден, то при компиляции он не будет положен в проект. И напоследок скомпилируй мою демку, будет ли вылазить это окно.
Если файла GetHeaders нет в папке с программой ( скомпиленой ) то вылазит окно об ошибке , в прикреплении проект с всеми необходимыми файлами для теста
что-то я уже сам запутался... 1. Во время проектирования у меня понимает функцию только тогда, если она лежит в каталоге с необук в ...NeoBook 5\Functions\. Если она лежит вместе с файлом проекта - то непонимает. 2. При компиляции - если функции нет в папке Functions - ошибка. Но после компиляции такого проекта если функция лежит в одной с ним папке - он работает.
Вывод - раз появились сообщения что файл не найден - он действительно не найден, и не включен в приложение. Открой меню Book -> File list (Проект -> Список файлов) и найди там имя файла функции, если оно в конце отмечено звездочкой * (см. скриншот) ,значит нб его не определяет. посмотри по какому адресу она его ищет и удостоверься что он есть. Имя файла должно быть без расширения, путь не содержать русских символов. Проверь еще раз все, я положил файл по нужному адресу (в папку functions) и скомпилировало без проблем.
Чудеса , заново скопировал файл GetHeaders в C:\Program Files\NeoBook 5\Functions\ и заработало
кстати у меня бывало такое, когда я переустанавливал систему, и потом заново копировал свои функции туда, они не определялись в моих проектах, как впрочем и все внешние файлы (картинки и пр.), а потом магическим образом все нормализовывалось. Теперь видишь, я весь необук и проекты храню на диске D и при переустановке не трогаю, а потом просто ставлю нб в ту же папку поверх старой, и все нормально. Как задавать вопросы
DEMBEL, а может ли быть такое что сервер не будет отвечать на посылаемую команду так как она будет не подходить ( ну там изменят версию серверной ОС или еще там чего ) ?
DEMBEL, а может ли быть такое что сервер не будет отвечать на посылаемую команду так как она будет не подходить ( ну там изменят версию серверной ОС или еще там чего ) ?
для обработки подобных событий я и вывожу переменную статуса сервера [ServStat] Есть такие варианты: - команда не подойти не может (она не зависит от сервера), и не ответить на команду запроса сервер не может, он вернет какой-нибудь статус. Если сервак веба в дауне, за него ответит сервер ближайшего шлюза - ошибка 504. Если путь изменится - будет ошибка 404, ну смотри лучше на википедии описание. - они поставят защиту (напр., сервер будет проверять источник запроса, если неправильный - запретит доступ, выдаст ошибку 403 Forbidden) но это поправимо в большинстве случаев, функцию придется поправить.
Добавлено (24 Август 2010, 19:08) --------------------------------------------- но вся эта шняга именно в данном случае дрвеба маловероятна в силу специфики сервиса.
Фиговасто тогда получается , при первой ошибке типа 403 , 404 , 504 файлы сначала перекачает , а затем если ошибки на сервере не будут устранены то программа будет думать что файл не изменен так как в файл содержащий данные о последнем изменении будет записан код ошибки , а оператор ИФ не найдет среди них различия и соответственно не будет закачивать файлы которые могли уже за это время измениться , поэтому в код который я запостил выше надо еще вставить проверку ответов с ошибками сервера , тока сначала их надо будет где то раздобыть
Сообщение отредактировано Snow_Irbis - Вт, 24 Августа 2010, 19:15
обработку ошибок надо обязательно, хотя бы на случай если отключен интернет. Но ты и сам можешь большинство ошибок просимулировать (отключить инет, допустить в вызове неверный путь или имя сервера (если он предполагается измениться, что врядли) ит.д.) и посмотреть что вернется в ответе. И обработать эти ошибки в условиях, в зависимости от ответа. Хотя бы самые элементарные.
Quote (Snow_Irbis)
при первой ошибке типа 403 , 404 , 504 файлы сначала перекачает
как это перекачает? если доступ закрыт 403 или файла нет 404 или серв в дауне 504 что он будет качать? Тебе надо операцию скачки заключить в условиях, когда ответ 200, иначе ничего не качать. Как задавать вопросы
Да это я немного сморозил не то , я хотел сказать что если вдруг сервер в ответ на запрос даст не дату а например ":-)" то сначала программа перекачает файлы , а потом если сервер в ответ на запросы будет давать опять же этот ответ ":-)" то программа будет думать что файлы не изменены
эти вещи - общепринятые стандарты, сервер не может вернуть хрен знает что, и не может не вернуть статус. но в твоем скрипте это вещь непринципиальная, ведь мы просто сравниваем содержимое переменных, а не высчитываем время. Это нам и не нужно, т.к. в ответе всегда будет время, и время более позднее, чем сохраненное, что принципиально. А значит - переменные не совпадут - файл изменился, надо качать.
Добавлено (24 Август 2010, 19:41) --------------------------------------------- ну можешь еще размер проконтролировать впридачу.
Та вот щас уже тестируют программу , правда проверку по дате последнего изменения задействовал только для определенных файлов , теперь программа еще так сказать экономит трафик
ну давай, делай по уму, логически. с обработкой элементарных ошибок. и не забудь - при вообще ошибках самой функции при соединении с сервером переменные будут пустые. Как задавать вопросы