Comparer deux fichiers texte ligne par ligne
Par Delphi Source - March 21, 2026 · Vues: 15 · Catégories: Snippets · Tags: #Fichier

Comparer deux fichiers texte ligne par ligne

Comparer deux fichiers texte ligne par ligne, avec la possibilité d’ignorer les espaces inutiles. Idéal pour vérifier des sauvegardes, comparer des versions de fichiers ou détecter des modifications discrètes.

function CompareTextFiles(const File1, File2: string;
  const IgnoreWhiteSpaces: Boolean = True): Boolean;
var
  SL1, SL2: TStringList;
  I: Integer;
  Line1, Line2: string;
begin
  Result := False;
  SL1 := TStringList.create;
  SL2 := TStringList.create;
  try
    // Charge les fichiers en mémoire
    SL1.LoadFromFile(File1, TEncoding.UTF8);
    SL2.LoadFromFile(File2, TEncoding.UTF8);

    // Si nombre de lignes différent, on arrête
    if SL1.Count <> SL2.Count then
      Exit;

    // Compare chaque ligne
    for I := 0 to SL1.Count - 1 do
    begin
      Line1 := SL1[I];
      Line2 := SL2[I];

      if IgnoreWhiteSpaces then
      begin
        Line1 := Trim(Line1);
        Line2 := Trim(Line2);
      end;

      if Line1 <> Line2 then
        Exit;  // différence trouvée → fin
    end;

    // pas de différence détectée
    Result := True;
  finally
    SL1.Free;
    SL2.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  AreSame: Boolean;
begin
  AreSame := CompareTextFiles('C:\Proj\Unit1.pas', 'C:\Backup\Unit1.pas');
  if AreSame then
    ShowMessage('Les fichiers sont identiques')
  else
    ShowMessage('Différences détectées !');
end;


Un petit clic (J'aime) qui fait plaisir !