Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
это там у них php скрипт на самом сервере высчитывает md5, а прога просто читает результат. ты тоже можешь так сделать, если ты сам файл этот выкладываешь - просто заранее посчитаешь md5. А ты хочешь удаленно залезть на сервер и посчитать md5 файла - без скачки этого файла на ПК этого не сделать. разницу ощущаешь?
Тогда фиговастенько , так как файл я сам не выкладываю , а узнать в какой файл сохраняет данные пхп скрипт наверное нельзя
Quote (DEMBEL)
функцию neobook для подсчета md5 файла я тебе дам.
Ок давай , пусть будет на всякий случай может пригодиться
функцию neobook для подсчета md5 файла я тебе дам.
токо тут засада есть - эту функцию можно применить только для очень маленьких файлов. там же надо прочитать каждый байт в файле, преобразовать и т.д. Скрипт работает медленно, поэтому я вспомнил почему не стал делать для файлов, а только для строк (чтобы пароли хранить и пр.), наверное в твоем случае лучше плагин включать. скока файл весит? Как задавать вопросы
тем более, раз файлов много - плагин используй, только вот где их взять, ссылки давно дохлые... мож у кого завалялся хотябы NeoCipher... Как задавать вопросы
Я уж и сам думал об этом MD5 и проч.... Плагин буржуйский сходу в своих завалах отыскал не сразу, потому сделал функцию (zmGetFileHash) в своем. Можно взять здесь. Пример использования в дэмке на страничке "файлы и папки". Пока все это для тестирования!
Также, кроме MD5, функция позволяет получить CRC файла. Не знаю, насколько это будет востребовано, но... пусть будет. Если просто CRC недостаточно, то можно переделать на CRC32.
Получение хэша строки пока не делал.
В прикреплении к этому сообщению - буржуйский плагин (нашел я его). Правда, он без дэмки, но там все и так понятно.
Quote (Snow_Irbis)
вот допустим если в файле есть строки
Вопрос не понятен - в каком файле, и где именно нахоятся эти строки?
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
ого, вы тут настрочили , не осилил все дословно прочитать.... краем глаза понял, что идет речь о мд файлов, есть плаг NeoDouble вычисляет (строк и файлов) MD5 и SHA1 и еще парачка вроде, что то на сайте не нашел где этот плаг, но вот прямая ссылка(2мб) Но вот с файлами на сервере не знаю, будет ли работать?! Peter, а может эту полезную функцию добавить в твой плагин-1000 приятных мелочей?!
Добавлено (22 Август 2010, 10:19) ---------------------------------------------
Quote (Peter)
В прикреплении к этому сообщению - буржуйский плагин (нашел я его).
он не работает с урлом
Добавлено (22 Август 2010, 10:21) ---------------------------------------------
Нужно сделать так что бы программа из каждой строки начинающейся с знака + или = брала имя файла и переносила в другой текстовый файл и через разделитель ну скажем | переносило контрольную сумму в CRC32 , ну а потом сверять контрольную сумму файла из єтого файла с контрольной суммой файла на ПК и при не совпадении перекачивать файл . Ну так как это геморно я решил пойти немного другим путем так что пока этот вопрос не актуален
Quote (Сергей)
Но вот с файлами на сервере не знаю, будет ли работать?!
Только что его установил , опция проверки хеша есть но только не для юрлов
Quote (DEMBEL)
а проверять хеш файла на сервере - все равно его качать придется чтобы посчитать, поэтому работать с урлом смысла нет
Ну дело в том либо контрольная сумма в оригинале с сервера проверяется так как я описал по списку , либо все таки оно как то проверяться по юрлам , так как скриптов проверящих хеш на сервере нет
Ну так если этот файл текстовой, то в чем проблема? Все необходимое для этого в NeoBook имеется. Делайте!
Quote (Сергей)
он не работает с урлом
И не будет работать.
Quote (DEMBEL)
а проверять хеш файла на сервере - все равно его качать придется чтобы посчитать, поэтому работать с урлом смысла нет
Совершенно справедливо! Недаром честенько на страницах закачки рядом с ссылкой указывается, например, MD5 файла, т.е. скачай и проверь, если сомневаешься.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Нужно сделать так что бы программа из каждой строки начинающейся с знака + или = брала имя файла и переносила в другой текстовый файл и через разделитель ну скажем | переносило контрольную сумму в CRC32 , ну а потом сверять контрольную сумму файла из єтого файла с контрольной суммой файла на ПК и при не совпадении перекачивать файл .
да без проблем, можно даже не переносить в отдельный файл, этот тоже подойдет. читать первый символ каждой строки, если начинается с + или = читать всю строчку, брать имя и сrc, в качестве разделителя тут будет запятая, потом с помощью strparse разобрать строку на отдельные переменные и сравнивать по очереди имеющиеся файлы по crc. В переменных будут лежать имена сравниваемых файлов и crc. Как задавать вопросы
Ну так если этот файл текстовой, то в чем проблема?
Уже нет проблем , реализовал по другому , сделал два списка файлов , по одному списку файлов закачиваются определенные файлы всегда , по другому только те которых нет в рабочей папке или их размер отличается от размера файлов в рабочей папки от файлов на сервере , такой способ реализации я счел наиболее простым Все спасибо за помощь
Да, изврщения ваших умов не имеют границ Размер файла на сервере, время его последнего изменения, и многое другое, знает сам сервер, хранящий энтот файл, и его просто надо спросить об этом, а не заниматся всякими мд и срц Протокол FTP, команды SIZE-размер, MDTM-время модификации.
Добавлено (23 Август 2010, 15:14) --------------------------------------------- Да и по http, можно установить в заголовке условия закачки файла, если он изменен.
при обращении к файлу (и не только) по http возвращается ответ сервера, где все написано (есть ли такой файл вообще, время последней модификации и др.), это можно прочитать. дай путь к твоему файлу на сервере, для примера... а если ты качаешь обновления дрвеба, там же новые файлы баз разве не с новым именем выкладываются (и как в этом случае узнавать появились ли новые)? Как задавать вопросы
Протокол передачи данных FTP в данном случае не подходит по ряду причин , одна из которых эта та что если в случае создания своего сервера обновлений нужно будет организовывать анонимный доступ , а он организовывается только в случае выделенного IP-адреса , а это так сказать не оправданные
БРРР...
Quote (Snow_Irbis)
Расскажи по подробнее
Тебе как фсе иль разжевать? ФСЕЕЕ! Ф запросе хттп есть заголовки, ф том числе и дающие возможность проверить был ли изменен файл со времени последнего скачивания, если он изменился сервер даст новый, если нет то нет.
Quote (Snow_Irbis)
403 Форбиден
Говорит что для тебе этого файла не дадут, непаложено
Quote (Snow_Irbis)
либо сведения типа компания Др.Веб
Чего попросил то и дали Проси что нада и как полагается.
Возвращается либо 403 Форбиден , либо сведения типа компания Др.Веб
давай ссылку (можно в лс), поглядим почему 403 вылазит
Добавлено (23 Август 2010, 17:55) --------------------------------------------- я седня попутно поломал новый плеер vkонтакте выяснил как и откуда ссылки на файлы дергать, а видео они на zshare держат
Тут попутный вопрос решил попробывать замутить создание списка программой но не понятно чего все строки начинающиеся с символа = сносятся , хотя по такой же аналогии так как и надо только убирает символ + из строки , в чем причина ?
покажи как туда зайти на сайте веба, как-то ведь ты нашел ссылку. в общем, если туда откуда-нибудь заходит нормально, покажи откуда, попробуем это в программе просимулировать. Как задавать вопросы
покажи как туда зайти на сайте веба, как-то ведь ты нашел ссылку. в общем, если туда откуда-нибудь заходит нормально, покажи откуда, попробуем это в программе просимулировать.
DEMBEL, ну думаю время создания мало чем поможет , так как не у всех одинаковые часовые пояса , и на сервере может быть по времени утро , но это утро по времени уже прошло в другом часовом поясе и тогда программа сочтет что файл не изменен , так не пойдет
Отправляем запрос на сервер и читаем что он скажет, в частности дату последней модификации и размер запрашиваемого содержимого. Ничего при этом не скачиваем, просто спрашиваем. Функция сделана для задач Snow_Irbis, поэтому я много чего повыкидывал, возвращаются только два заголовка.
Переменная [ServStat] - статус сервера (200 - все нормально, 404 - содержимое не найдено, 503/504 - сервак в дауне и др., подробнее см. здесь) Переменная [LastMod] - дата и время последнего изменения в формате GMT (мировое время) Переменная [ConLen] - размер содержимого в байтах
При ошибке в написании сетевого пути к содержимому и вообще ошибках функции при соединении с сервером переменные будут пустые. Проверять можно любое содержимое (файлы, вебстраницы и пр.), адрес должен включать префикс http://
======
Snow_Irbis, при первом запуске функции в своем проекте сохраняй дату изменения (и размер) где-нибудь (в реестре, файле), при повторных запусках просто проверяй совпадают ли сохраненные данные с новыми (сравнивай переменные между собой в условии If), если нет - то файл изменился, надо качать. Как работать с функциями надеюсь обьяснять не надо. Поддерживается в Neobook версии 5.6.2 и выше. Файл функции должен находиться в одной папке с проектом, либо в папке Functions каталога установки Neobook. Компилированный проект сразу включает в себя и функцию.
Проверяй как работает, есть ли ошибки? Протестируй на собственных выложенных файлах или вебстраницах, реагирует ли на изменения.
Snow_Irbis, при первом запуске функции в своем проекте сохраняй дату изменения (и размер) где-нибудь (в реестре, файле), при повторных запусках просто проверяй совпадают ли сохраненные данные с новыми (сравнивай переменные между собой в условии If)
Правильно ли я думаю сделать что бы оно писало в файл дату последнего изменения ?
Добавлено (24 Август 2010, 02:31) --------------------------------------------- Только что проверил правильно , набивает в файл данные , завтра уже доделаю сравнивание
Пи Вот только есть вопрос пишет при компиляции что файл GetHeaders не найден хотя он в той же папке что и проэкт
Сообщение отредактировано Snow_Irbis - Вт, 24 Августа 2010, 02:31
ну что опять не так, нормально компилируется все, и работает. смотри внимательнее, проверь пути, покажи окно с ошибкой. и почитай где-нибудь как обращаться с функциями и где они должны лежать. Как задавать вопросы