Показать сообщение отдельно
  #12  
Старый 26.12.2011, 10:04
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,107
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Так, все хороши. Отставить наезды друг на друга.

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;
Ответить с цитированием