Ins unreine gedacht,
für jede Zeile einen Hash-wert erstellen und gleiche Zeilen/Hash-werte aus dem Topf entfernen.
Was übrig bleibt ist nicht gleich.
Gruß
K-H
Die beste Idee
IMHO.
Ich hab's mal quasi genauso programmiert, nur andersrum
Delphi-Quellcode:
procedure GetListDifferences(StringListMaster, StringListToCheck: TStringList;
var AddedList, MissingList: TStringList);
var
i: integer;
begin
AddedList.Clear;
for i := 0 to StringListToCheck.Count-1 do
if (StringListMaster.IndexOf(StringListToCheck[i]) = -1) then
AddedList.Append(StringListToCheck[i]);
MissingList.Clear;
for i := 0 to StringListMaster.Count-1 do
if (StringListToCheck.IndexOf(StringListMaster[i]) = -1) then
MissingList.Append(StringListMaster[i]);
end;
procedure GetTextFileDifferences(FileNameMaster, FileNameToCheck: string;
var AddedList, MissingList: TStringList);
var
StringListMaster, StringListToCheck: TStringList;
begin
AddedList.Clear;
MissingList.Clear;
if not FileExists(FileNameMaster) or not FileExists(FileNameToCheck) then
exit;
StringListMaster := TStringList.Create;
StringListToCheck := TStringList.Create;
try
StringListMaster.LoadFromFile(FileNameMaster);
StringListToCheck.LoadFromFile(FileNameToCheck);
GetListDifferences(StringListMaster, StringListToCheck, AddedList, MissingList);
finally
StringListMaster.Free;
StringListToCheck.Free;
end;
end;
Gruss,
blauweiss