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 !