Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Вопрос из разряда элементарных, но раз "новый вопрос - новая тема", то вот вам
Сразу предупрежу, в этом вопросе всплывет не самая моя хорошая сторона
В общем, к сути. Понадобилось мне сравнивать некоторые файлы, точнее изменения в них, и чтобы не читать все файлы и искать в них изменения, решила просто сравнивать хэш-суммы.
Имеется две папки с идентичной структурой подпапок и файлов (конфиги от игры (да, я иногда поигрываю в компьютерные игры )), в одной старые конфиги, в другой новые. И иногда, в свежих обновлениях, разработчики игры любят изменять скрытые параметры, но мое любопытство не дает мне покоя и запилила проект для этого Но вот что-то не выходит. Почему-то при получении даже у измененных файлов приходит в обоих случаях MD5 одного из файлов. Огрызок кода:
Да уж... Но, это всяк лучше, чем "имею аккаунт в с...сети."
ЦитатаCallisto ()
Есть там отличающиеся файлы, но в обоих переменных MD5 одинаковая
Для поиска подобных ошибок существует отладчик, смотри какие КОНКРЕТНО файлы проверяются, т.е. какие истинные их имена (с путями) попадают в команду zmGetFileHash. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
hpwIniRead "[INIFile]" "[Section]" "[ListBox1]" "" "[File]" SetVar "[File_1]" "[PubDir][Distribute_1]\[File].xml" zmGetFileHash "[File_1]" "[MD5_1]" "MD5" . Тут должно получиться 0900B41002994A39819C67D94D1B5D4C, оно так и есть
SetVar "[File_2]" "[PubDir][Distribute_2]\[File].xml" zmGetFileHash "[File_2]" "[MD5_2]" "MD5" .А вот тут я ожидаю D0D2895B323A19E9B9ED1DAF966689D5, но получается, как в [MD5_1]
Добавлено (23 Июля 2015, 21:31) ---------------------------------------------
Чтоб в отладчике точно знать какой путь, но пути разные, как и положено. Но все равно, как-то не сходится Пожалуйста, не надо ко мне на "Вы", а то чувствую себя бабулькой)
Ну, хорошо - пусть будут не истинные, а ФАКТИЧЕСКИЕ. ЧТО КОНКРЕТНО (БУКВАЛЬНО) СОДЕРЖИТСЯ В ПЕРЕМЕННОЙ [File_1] ?
В конце-концов, возьми сделай тестовый проект с одной единственной кнопкой диалога выбора файлов, выбери вручную файлы, и сравни хэш-суммы . - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Ну ладно новеньким, но тебе не простительно. Надежда ж на то что остальное все правильно, и поиск идет в другом направлении.
ЦитатаPeter ()
Для поиска подобных ошибок существует отладчик, смотри какие КОНКРЕТНО файлы проверяются, т.е. какие истинные их имена (с путями) попадают в команду zmGetFileHash.
Добавлено (23 Июля 2015, 22:02) ---------------------------------------------
ЦитатаPeter ()
В конце-концов, возьми сделай тестовый проект с одной единственной кнопкой диалога выбора файло
Есть такая команда FileRead.
Что в принципе я и сделал. Только проект был сначала на рабочем столе. Пишет нет такого файла. ! знак поставил, нет файла. Кинул в С диск. Нет файла. Кинул уже на другой диск, думаю что то система блокирует. И там нет файла. Начал с путями разбираться.
Потому и поубывал бы!!!
Добавлено (23 Июля 2015, 22:07) --------------------------------------------- Peter, но интересно другое, хеш сумму то находит. А сумма чего? И ведь когда имя файла другое, и хэш сумма другая.
Кажется, что проблема в какой-то мелочи, но ответ от меня ускользает
Цитата
zmFunctions
Ну, а что он мне не сообщил, что по такому пути файла нет?
А как-то раз я проект два дня мучила и всю голову сломала, а оказалось, что вместо латинской "С" у меня затесалась в одном месте кириллическая Пожалуйста, не надо ко мне на "Вы", а то чувствую себя бабулькой)
Да, согласно скриншоту пути в переменных разные, а вот файлов-то на месте (по этим путям) получается....
А то, что плагин возвращает какую-то абстрактную хэш-сумму, видимо моя недоработка, увы.. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Ну, а как же защита от дурака? Ну, или от дуры, как в моем случае
Как говориться: "Создай самый простой интерфейс и жизнь создаст еще более глупого user-а" Пожалуйста, не надо ко мне на "Вы", а то чувствую себя бабулькой)
Ну, а что он мне не сообщил, что по такому пути файла нет?
Цитатаmishem ()
Оказывается во всем Петр виноват. Ух уж этот Петр.
То чудо в перьях делалось из расчета на грамотных пользователей. Но, все приходит с опытом.
Кстати, в подобных случаях и не предусматривается извещение об отсутствии файла, и просто выводится сообщение об ошибке - не в детском саду. Не даром имеется FileExists во всех языках. И эта команда (функция) имеет ещё одно замечательное достоинство - она приучает думать о потенциальных ошибках.
Кстати, не секрет, что в сети давно гуляет фраза типа "грамотный программист, переходя дорогу с односторонним движением, смотрит в обе стороны."
Добавлено (23 Июля 2015, 22:40) ---------------------------------------------
ЦитатаCallisto ()
Создай самый простой интерфейс и жизнь создаст еще более глупого user-а"
Ох, ка это верно! Особенно когда смотришь в интерфейс каждой новой операционки от мелкософта в последнее время. А восторги этого самого "user-a" только растут!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Во втором случае путь [PubDir]Trash не существует, однако продолжает выдавать хэш данного файла, равный файлу из папки Images. В других случаях, когда и путь и имя файла разные, и не существуют, то все ок, он не выдает ничего.
Добавлено (23 Июля 2015, 23:27) --------------------------------------------- ппц, как тебе такое удалось только... разбивал путь на части и забыл обнулить переменную с папкой?
После первой проверки в плагине данные не обнуляются. Имя файла сохраняется и все еще валидное. Например
Да, более-чем вероятно, я и накосячил где-то, но я уж сто раз говорил, что оный трэш не следует воспринимать слишком серьезно. Я как-то глянул в его код, так чуть худо не стало - там надо ВСЕ (тотально все) переделывать! А ведь работает же ещё что-то. Бывает...
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Тоже столкнулся с проблемой. И самое главное какая то не понятная проблема.
Внизу два файла базы данных. Содержимое разное. Если имена файлов 1, то хеш сумма одинаковая, независимо md5, crc и т.д. Стоит изменить имя на любое другое, все встает на свои места.
Что еще интересно, создал текстовые файлы с именами 1, с ними все в порядке. Полтергейст какой то.
Добавлено (13 Января 2016, 07:04) --------------------------------------------- Если кто не понял, это с помощью плагина Петра сравниваю. Код примерно такой