![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() зддравствуйте)
есть программка, которая вычисляет хэш файла. всё по-нубовски, к оболочке одной программы я прикрутила модуль вычисления хэша md5. а теперь тупой вопрос: каким образом можно реализовать, чтобы при изменении файла (и соответственно изменении вычисленного хэша) выводилось сообщение об этом? хэш.rar |
#2
|
||||
|
||||
![]() Я бы сделал так:
Создал бы файл со списком файлом нужной папки, и хешей тех файлов. (надежно этот файл закодировал - так как мало ли ![]() После этого 3 варианта: - периодически (по таймеру) запускать прогу и сверять хеши. - периодически вручном режиме запускать прогу. - отслеживать изменения файлов средствами винды ( как по мне самый ненадежный метод, так можно например подделать дату изменения файла и т.д.) |
#3
|
|||
|
|||
![]() ну так то да, но моих знаний на это не хватит))
сейчас прога просто выводит выбираемые файлы и их хэш списком. что нужно добавить, чтобы они их сравнивала? |
#4
|
|||
|
|||
![]() добавить второй список
сравнивать можно построчно, или если свместо списков мемо - через text |
#5
|
||||
|
||||
![]() Цитата:
Тогда, вам батенька, в раздела работа. |
#6
|
|||
|
|||
![]() я не батенька. и я тоже могу сделать вывод: вы не прочитали моё сообщение. я между прочим написала, что я использовала готовый модуль вычисления хэша. и да, знаний 0 ^^
а по теме, я прошу конкретно сказать, что именно икуда надо дописать, чтобы понял человек, который до этого делал в делфи только элментарные вещи)) зы список реализован как TListView Последний раз редактировалось Mew Kid, 25.12.2011 в 19:45. |
#7
|
||||
|
||||
![]() Цитата:
![]() П.с.: и уж сообщение читал. То что взята готовая реализация, тоже увидел. Но если вы реализовали вычисление хеша файла - то как сравнивать текстовые строки будете знать по определению. А если это не так - то вся та прога не ваша. Если чесно это уже ппц, пошли блин безопасники. Поступают золотые детки, типа если безопасник, та это же престижно и круто. НО если ты безопасник - это это в первую очередь голова с мозгом. Лдано, кому я рассказываю... Последний раз редактировалось Konrad, 25.12.2011 в 20:33. |
#8
|
|||
|
|||
![]() зачем сидеть на форуме помощи и посылать тех, кто её просит?
филосораптор.жпг отзывчивые люди, помогите пожалуйста!!! я немножко разобралась, и теперь вопрос изменился. как сделать поиск по значениям в столбцах в TListView? Konrad, а вам я ответила в личку) |
#9
|
|||
|
|||
![]() Если просящий ничего не знает и не хочет разбираться, а хочет, что бы за него все сделали и подали на блюдечке, то за просто так никто делать не будет ничего.
Цитата:
|
#10
|
||||
|
||||
![]() Справка, конечно, предусмотрена для тех, кто "обязан" отвечать лодырям. Ладно, смотрим справку.
Код:
with ListView do begin ListItem.Item[Номер строки].SubItems.Strings[Номер колонки]; end; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#11
|
|||
|
|||
![]() Да, не обратил внимание, не увидел, что там ListView
|
#12
|
|||
|
|||
![]() Так, все хороши. Отставить наезды друг на друга.
Mew Kid, объясняю так, что бы было понятно. К сожалению, ты просто "попала под раздачу", хотя часть вины за это на тебе все-таки есть. Если программирование не является твоим профильным предметом, так об этом и надо написать. И вопрос надо ставить в более корректной форме, а не "что мне тут надо написать, а лучше просто напишите и дайте мне". Вообще, данный форум создан для общения единомышлинников и студентам тут помогают, скажем так, своеобразно. Тебе с удовольствием подскажут путь решения твоей проблемы, но делать за тебя просто так никто ничего не будет. Исключением из этого правила обычно является одна из 3х следующих ситуаций: 1. Задача настолько проста, что кто-то просто может "накидать" код прямо здесь. Обычно такой код не проверяется и фактически соответсвует описанному выше правилу помощи - показывает путь решения проблемы, просто не словами, а кодом. 2. Задача просто кого-то заинтересовала и он решил написать свой код. Ну тут комментировать нечего, просто попалась интересная задача для конкретного человека. Или ему было просто интересно ее решить. Зачастую такие решения бывает очень трудно потом сдать преподавателю, т.к. в этом случае код может быть достаточно запутанный в следствии оптимизации или по другим причинам, да и не уверен, что в таком случае будут отслежены все возможные варианты (граничные случаи). 3. Ну и, собственно, случай "отсылки в раздел Работа". Тут все посто. Если не можешь или не хочешь делать сам, то готовое решение "под ключ" можно просто купить. Обычно в работу отсылают либо типовые задачи (читай, учебные), либо задачи, где по условию понятно, что работы там далеко не на 5-10 минут и при этом задача не сильно интересна. Конрад и все остальные, я понимаю, что халявщики реально достали, но давайте все-таки вести себя более сдерджано. Если нет желания решать задачу "за просто так", то корректно перенаправьте ТС в раздел Работа без эмоциональных комментариев. Все-таки, в большинстве своем, не дети уже, а, стоит надеяться, взрослые профессионалы. А эмоции можно выссказать в ЗР. Теперь по существу вопроса. Пусть есть некоторая функция function md5file(AFileName : String) : String, которая вычисляет md5 для файла по его имени. Пусть при первом запуске мы получили список файлов и их md5 и сохранили их в некоторый ListView, где в элементах в св-ве Caption хранится имя файла (полное), а в св-ве SubItems[0] - соотв. md5 (примерно так можно сохранить данную информацию в ListView). Тогда код проверки будет примерно такой: Код:
var I : Integer; F : Boolean; S : String; begin S := ''; F := False; For I := 0 To ListView.Items.Count-1 Do If ListView.Items[i].SubItems[0] <> md5File(ListView.Items[i].Caption) Then Begin F := True; S := S + 'Изменен файл ' + ListView.Items[i].Caption + #13#10; End; If F Then ShowMessage(S) Else ShowMessage('Измененных файлов нет.'); end; |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Mew Kid (26.12.2011)
|
#13
|
|||
|
|||
![]() lmikle, спасибо) я всё поняла)
и я не халявщица, я просто не знаю некоторых вещей, и при этом не знаю другого способа узнать их, кроме как спросить) |