Difference between revisions of "CompareFiles/de"

From Free Pascal wiki
Jump to navigationJump to search
(OUGH!!! `if someBoolean = true then …`! My eyes are bleeding!)
m (Fixed syntax highlighting; deleted category already in page template)
 
Line 1: Line 1:
 
{{CompareFiles}}
 
{{CompareFiles}}
<br>
+
 
<br>
+
 
Das Unterprogramm prüft, ob beide Dateien identisch sind.<br>
+
Das Unterprogramm prüft, ob beide Dateien identisch sind.
Mit dem Unterprogramm können sowohl Binär- als auch Textdateien verglichen werden.<br>
+
 
<br>
+
Mit dem Unterprogramm können sowohl Binär- als auch Textdateien verglichen werden.
<syntaxhighlight>
+
 
 +
 
 +
<syntaxhighlight lang=pascal>
 
uses
 
uses
 
   FileUtil, ...;
 
   FileUtil, ...;
Line 54: Line 56:
 
end;
 
end;
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
+
 
 
Aufruf unter Windows:
 
Aufruf unter Windows:
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang=pascal>
  
 
   ...
 
   ...
Line 66: Line 69:
  
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
+
 
 
Aufruf unter Linux:
 
Aufruf unter Linux:
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang=pascal>
  
 
   ...
 
   ...
Line 78: Line 82:
  
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
 
<br>
 
--[[User:Olaf|Olaf]] 08:10, 30 August 2013 (CEST)
 
 
 
{{AutoCategory}}
 
[[Category:Code Snippets/de]]
 

Latest revision as of 01:00, 12 February 2020

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

  ...