AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Listview von doppelten Einträgen befreien.

Ein Thema von padavan · begonnen am 26. Okt 2005 · letzter Beitrag vom 26. Okt 2005
 
marabu

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

Re: Listview von doppelten Einträgen befreien.

  Alt 26. Okt 2005, 06:46
Hallo ihr beiden, zwei Dinge hätte ich noch.

Zum einen macht es mich stutzig, dass ein Löschen bei gleicher Caption und differierenden SubItems nicht verlustfrei ist - eventuell vorhandene SubItems sollten doch gerettet werden, oder habe ich das falsch verstanden?

Und zum anderen dient eine ListView der Visualisierung und ist kein Datenspeicher. Hier eine alternative Vorgehensweise beim Einsatz einer virtuellen ListView. Nehmen wir an, die Daten wären in einer StringList gespeichert und die Zeilen hätten folgenden Aufbau:
Code:
Caption1=SubItem1,SubItem2,SubItem3
Dann kann man sie folgendermaßen löschen:
Delphi-Quellcode:
procedure LootSubItems(s: TStrings; iFrom, iTo: integer);
var
  i: integer;
  sFrom, sTo: TStrings;
begin
  sFrom := TStringList.Create;
  sFrom.CommaText := s.Values[s.Names[iFrom]];
  sTo := TStringList.Create;
  sTo.CommaText := s.Values[s.Names[iTo]];
  for i := 0 to Pred(sFrom.Count) do
    if sTo.Count <= i then
      sTo.Add(sFrom[i])
    else if sFrom[i] <> 'then
      sTo[i] := sFrom[i];
  s.Values[s.Names[iTo]] := sTo.CommaText;
  sFrom.Free;
  sTo.Free;
end;

procedure KillDuplicates(s: TStrings);
var
  iLow, iHigh: integer;
begin
  for iLow := 0 to s.Count - 2 do
    for iHigh := Pred(s.Count) downto Succ(iLow) do
      if s.Names[iLow] = s.Names[iHigh] then
      begin
        LootSubItems(s, iHigh, iLow)
        s.Delete(iHigh);
      end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
 


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 11:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz