Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#20

Re: Zwei Stringlisten miteinander vergleichen. Wie am besten

  Alt 21. Nov 2008, 11: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;
  Mit Zitat antworten Zitat