(Gast)
n/a Beiträge
|
Re: Zwei Stringlisten miteinander vergleichen. Wie am besten
21. Nov 2008, 12:30
Hallo,
Delphi-Quellcode:
function ...
Var
iIndex : Integer;
begin
Result := true;
// Gleiche Zeilenzahl ist nicht zwingend gleichbedeutend mit gleichem Inhalt!!!
if alte_StringList.Count <> aktuelle_StringList.Count then begin
if alte_StringList.Text <> aktuelle_StringList.Text then begin
// Ist aktuelle_StringList keine Stringliste?
// warum der Cast?
// TStringList(aktuelle_StringList).Sorted := true;
// TStringList(alte_StringList).Sorted := true;
aktuelle_StringList.Sort;
alte_StringList.Sort;
// Hier wird geprüft, ob alles aus Aktuelle auch in Alte ist.
// Es wird nicht geprüft, was in Alte ist, aber nicht in Aktuelle.
for I := 0 to aktuelle_StringList.Count -1 do begin
// Wenn nicht gefunden ist IndexOf = -1, gibt einen Fehler, wenn er im Delete steht.
iIndex := alte_StringList.IndexOf(aktuelle_StringList[i]);
if iIndex > -1 then alte_StringList.Delete(i)
else begin // ein Unterschied gefunden
Result := False;
break;
end;
end;
// Ist Alte hier nicht leer, dann gibt es in Alte etwas, was nicht in Aktuelle enthalten ist.
if not Result and (alte_StringList.Count <> 0) do begin
Result := False;
end;
alte_StringList.Assign(aktuelle_StringList);
end;
end;
aktuelle_StringList.Free;
end;
|
|
Zitat
|