Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Сравнение файлов 2

Delphi , Файловая система , Файлы

Сравнение файлов 2

Автор: [NIKEL]
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Сравнение двух файлов

Функция сравнивает два файла, возвращает true если сходны

Зависимости: Sysutils, Classes
Автор:       [NIKEL], Norilsk
Copyright:   Собственное написание ([NIKEL])
Дата:        13 мая 2002 г.
***************************************************** }

function CompareFiles(const FirstFile, SecondFile: string): Boolean;
var
  f1, f2: TMemoryStream;
begin
  Result := false;
  f1 := TMemoryStream.Create;
  f2 := TMemoryStream.Create;
  try
    //загружаем файлы...
    f1.LoadFromFile(FirstFile);
    f2.LoadFromFile(SecondFile);
    if f1.Size = f2.Size then //сравниваем по размеру...
      //двоичное сравнение в памяти
      Result := CompareMem(f1.Memory, f2.memory, f1.Size);
  finally
    f2.Free;
    f1.Free;
  end
end;

Пример использования:

if CompareFiles(Opendialog1.FileName, Opendialog2.FileName) then
  ShowMessage('Файлы одинаковы!');

Привет! Я переведу текст на русский язык:

Головная часть Головная часть содержит информацию о авторе, правах собственности и дате создания.

  • UBPFD - это акроним, означающий "Непофициальный файловый разница Borland Pascal" (на русском).
  • Автором является NIKEL из Норильска, Россия.
  • Уведомление о правах собственности указывает, что код принадлежит NIKEL.
  • Дата создания - 13 мая 2002 года.

Функция CompareFiles Функция CompareFiles принимает два параметра типа строка: FirstFile и SecondFile, которые представляют пути файлов для сравнения. Она возвращает булевое значение, указывающее, являются ли файлы идентичными или нет.

Вот, что функция делает:

  1. Создает два объекта TMemoryStream, f1 и f2, используя метод Create.
  2. Загружает содержимое первого файла в f1 с помощью метода LoadFromFile.
  3. Загружает содержимое второго файла в f2 с помощью метода LoadFromFile.
  4. Сравнивает размеры двух файлов с помощью свойства Size. Если они равны, то функция продолжает сравнивать их содержимое.
  5. Использует функцию CompareMem (часть runtime-библиотеки Delphi) для выполнения бинарного сравнения содержимого файлов в памяти. Эта функция возвращает булевое значение, указывающее, являются ли два буфера идентичными.
  6. Устанавливает переменную Result в результате сравнения.
  7. Наконец, освобождает память потоков с помощью метода Free.

Пример использования Пример использования показывает, как использовать функцию CompareFiles:

  • Открывает два файла с помощью компонентов OpenDialog1 и OpenDialog2.
  • Вызывает функцию CompareFiles с именами файлов в качестве аргументов.
  • Если результат true, отображает сообщение об ошибке, указывающее, что файлы идентичны.

В целом, это код обеспечивает простой и эффективный способ сравнивать содержимое двух файлов в Delphi.

Статья описывает функцию CompareFiles для сравнения размера и содержимого двух файлов в Delphi, которая возвращает true если файлы идентичны.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Файлы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:59:17/0.0055201053619385/1