CompareFiles/de

From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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 
    ...

  ...