Einzelnen Beitrag anzeigen

d7user1
(Gast)

n/a Beiträge
 
#17

AW: Code wird nicht ausgeführt - warum?

  Alt 19. Mär 2014, 23:17
ich melde mich noch ein letztes mal. die letzte stunde habe ich mir das mit dem bagage mal genauer angeguckt.

wenn ich vorher ein item angeklickt habe, habe ich mir das dazu passende item in der stringlist mit zwei verschachtelten for-schleifen gesucht.
bei wenigen dateien kein problem. aber dann habe ich es mit 13.000 probiert. rein rechnerich beenden sich die schleifen nicht für 13.000 * 13.000 duchläufe.

das war aber alles zu lange. ein durchlauf war noch nach 5 minuten nicht beendet.

jetzt gebe ich jedem listitem bei der erstellung (Items.Add) daten bei .Data mit auf dem weg.

suche ich nun den passenden eintrag in der stringlist sieht das so aus:

Delphi-Quellcode:
 with ListView1 do
  begin
for i := 0 to Items.Count - 1 do
    begin
     if not Items[i].Checked then
      begin
       IndexInSL := TMeineDaten(Items[i].Data).MeinIndex;
       WertInSL := WerteListe.Strings[IndexInSL];

       if WertInSL[1] = '_then
        WerteListe.Strings[IndexInSL] := Copy(WertInSL, 2, Length(WertInSL))
       else
        WerteListe.Strings[IndexInSL] := '_' + WertInSL;
      end;
    end;
end;
statt 13.000 * 13.000 durchläufen gibt es nun nur noch 13.000 und statt 5 minuten und mehr dauert das alles nur noch 400 millisekunden.
  Mit Zitat antworten Zitat