CompareFiles/de

From Lazarus wiki
Jump to navigationJump to search

Deutsch (de)


Das Unterprogramm prüft, ob beide Dateien identisch sind.

Mit dem Unterprogramm können sowohl Binär- als auch Textdateien verglichen werden.


uses
  FileUtil, ...;

  ...

function funDateienSindGleich(const conStrDateiname1, conStrDateiname2: string): boolean;
var
  txtDatei1: file of char;
  txtDatei2: file of char;
  chrZeichen1: char;
  chrZeichen2: char;
  blnDateienSindGleich: boolean = True;

begin

  Result := False;

  // Wenn beiden Dateien eine unterschiedliche Grösse haben,
  // dann beende das Unterprogramm
  if FileSize(conStrDateiname1) <> FileSize(conStrDateiname2) then
    exit;

  AssignFile(txtDatei1, UTF8ToSys(conStrDateiname1));
  Reset(txtDatei1);

  AssignFile(txtDatei2, UTF8ToSys(conStrDateiname2));
  Reset(txtDatei2);

  while (not EOF(txtDatei1)) or (not EOF(txtDatei2)) do
  begin
    Read(txtDatei1, chrZeichen1);
    Read(txtDatei2, chrZeichen2);
    // Wenn beide Zeichen unterschiedlich sind,
    // dann beende die Schleife
    if chrZeichen1 <> chrZeichen2 then
    begin
      blnDateienSindGleich := False;
      break;
    end;
  end;

  CloseFile(txtDatei1);
  CloseFile(txtDatei2);

  Result := blnDateienSindGleich;

end;

Aufruf unter Windows:

  ...

  if funDateienSindGleich('E:\Test.txt', 'E:\Test1.txt') then 
    ...

  ...

Aufruf unter Linux:

  ...

  if funDateienSindGleich('/home/user/Test.txt', '/home/user/Test1.txt') then 
    ...

  ...