Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: In Listview enthaltene Werte Prüfen und einfärben

  Alt 22. Dez 2005, 22:30
Hallo Sven,

wenn du Gleichheit über den Hash feststellst, dann ist es wohl das Beste, wenn du eine invertierte Liste erzeugst, in der du über den Hash-Wert schnell die Anzahl der URLs bestimmen kannst. Eine sortierte StringList könnte dir da nützlich sein, in deren Objects du einfach den Zähler unterbringst.

Delphi-Quellcode:
// getippt und nicht getestet

var
  sl: TStringlist; // sorted = true; duplicates = dupIgnore

procedure Checkin(s: TStrings; hash: string);
var
  index: integer;
begin
  index := s.IndexOf(hash);
  if index < 0
    then s.AddObject(hash, Pointer(1))
    else s.Objects[index] := Pointer(Succ(Integer(s.Objects[index])));
end;

begin
  CheckIn(sl, hash);
end;
Zum Färben kannst du dann schnell auf die Anzahl zugreifen:

Delphi-Quellcode:
function IsUnique(s: TStrings; hash: string): boolean;
begin
  with s do
    Result := not Assigned(Objects[IndexOf(hash)]);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat