AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi In Listview enthaltene Werte Prüfen und einfärben
Thema durchsuchen
Ansicht
Themen-Optionen

In Listview enthaltene Werte Prüfen und einfärben

Ein Thema von SvenK · begonnen am 22. Dez 2005 · letzter Beitrag vom 23. Dez 2005
Antwort Antwort
SvenK

Registriert seit: 11. Dez 2005
3 Beiträge
 
#1

In Listview enthaltene Werte Prüfen und einfärben

  Alt 22. Dez 2005, 21:54
Hallo!

vorab: keine ahnung ob der Titel so richtig gewählt ist, wenn nein dann sry.

Also kurz zur Erklärung:
Ich schreibe an einem Programm was eine Webseite nach internen Links durchsucht und diesen Links dann folgt. Alle gefundenen Seiten speichere ich in das ListView. Caption ist meine URL, subItem[0] ist der Seitentitel und SubItem[1] ist der MD5Diggest aus dem Quelcode.


Ziel von mir ist es nun mit dem Programm zum einen eine Liste aller Unterseiten der Webseite anzufertigen. Das Funktioniert bereits wunderbar! Jetzt würde ich gerne wegen Suchmaschinen (daher der MD5Diggest) dem Benutzer anzeigen welche Seiten den gleichen Inhalt haben. Dies soll aber nur Optional gemacht werden was ja nichs hier zur Sache beiträgt

Also wie gesagt habe ich wie im angehängten Screenshot ein Listview mit den 3 Spalten.

Wie müsste ich nun vorgehen um möglichst resourcen schonend alle Items einzufärben die doppelt vorkommen. dabei sollen die Items die nur einmal vorkommen unberührt bleiben.

Am allerbesten wäre jetzt sogar noch das alle möglcihen doppelte Seiten immer mit einer anderen Farbe gemalt werden. Wie das beispiel im 2. Scrreenshot.

Über gute anregungen würde ich mich sehr freuen, weil ich steh komplett aufm schlauch wie ich das angehen soll

ps: schönes forum

Grüße
Sven
Miniaturansicht angehängter Grafiken
listview2_266.jpg   listview_137.jpg  
  Mit Zitat antworten Zitat
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
SvenK

Registriert seit: 11. Dez 2005
3 Beiträge
 
#3

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

  Alt 23. Dez 2005, 00:19
Besten dank!

ich habs zwar nicht genau so gemacht wie du es mir geschrieben hast, aber das war der denkanstoß den ich brauchte! nun färbt er die richtigen dinge ein.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz