Wiki-KopieMirror

Dies ist ein Mirror des Wikis von pascal.chat. Bearbeiten, Verlauf und Anmeldung finden dort statt.

CompareFiles/de

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

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

pascal
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:

pascal

  ...

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

  ...

Aufruf unter Linux:

pascal

  ...

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

  ...

From the Free Pascal wiki, page "CompareFiles/de", as it stood on 2020-02-11 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Version 1, zuletzt geändert von WikiArchive .