AGB  ·  Datenschutz  ·  Impressum  







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

Suchen und Löschen von Text in Memos

Ein Thema von Cumgrinder · begonnen am 11. Apr 2010 · letzter Beitrag vom 13. Apr 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#11

Re: Suchen und Löschen von Text in Memos

  Alt 13. Apr 2010, 07:37
Zitat:
For y := 0 to filelist.Count Do
Das ist etwas, welches ständig erwähnt wird.

Wenn der Index (hier y) über eine For-Schleife durchgezählt wird,
dann Löschen immer rückwärts
und Einfügen immer vorwärts,
(beim bloßen Verändern des Inhalts der Einträge ist es egal)
denn durch diese Operationen verschieben sich die Indize der Einträge.

Oder man nutzt eine While-Schleife und paßt den Index an.


1 und 2 sollen mit gelöscht werden:
Code:
0 1 2 3 4     A

y
0 1 2 3 4

  y
0 2 3 4

    y
0 2 3 4       U

      y
0 2 3 4

        y
0 2 3 4 -     I

          y
0 2 3 4 -     X
[/code]
A = Ausgangsbelegung
U = die 2 wird übergangen, da sie vorgerutscht ist, aber y weiterzählte
I = Out of Index, da das Schleifenende sich nicht anpaßt und nun ein Eintrag fehlt
X = erst Recht Out of Index, da .Count=5, aber der höchte Index um Eines kleiner war (0-basierender Index)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Cumgrinder

Registriert seit: 11. Apr 2010
7 Beiträge
 
#12

Re: Suchen und Löschen von Text in Memos

  Alt 13. Apr 2010, 16:55
Zitat von himitsu:
Das ist etwas, welches ständig erwähnt wird.

Wenn der Index (hier y) über eine For-Schleife durchgezählt wird,
dann Löschen immer rückwärts
und Einfügen immer vorwärts,
(beim bloßen Verändern des Inhalts der Einträge ist es egal)
denn durch diese Operationen verschieben sich die Indize der Einträge.
Kleine Änderung große Wirkung!
Jetzt funktioniert das Programm nahezu perfekt.
  Mit Zitat antworten Zitat
Cumgrinder

Registriert seit: 11. Apr 2010
7 Beiträge
 
#13

Re: Suchen und Löschen von Text in Memos

  Alt 13. Apr 2010, 21:13
Die Blacklist hat inzwischen fast 20000 Zeilen.
Wenn ich die Zeilen sortiere, kann ich den Vorgang dann beschleunigen ?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#14

Re: Suchen und Löschen von Text in Memos

  Alt 13. Apr 2010, 22:27
Ja, denn die StringList hat für eine sortierte Liste eine besserer Suchmethode, welche durchschnittlich mit nur Log2(SL.Count div 2) Vergleichen einen String in der Liste finden kann.

Wärend es, bei einer unsortierten Liste, durchschnittlich (SL.Count div 2) Vergleiche nötig sind,
da im Extrem alle Strings/Zeilen geprüft werden müssen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Cumgrinder

Registriert seit: 11. Apr 2010
7 Beiträge
 
#15

Re: Suchen und Löschen von Text in Memos

  Alt 13. Apr 2010, 22:31
Was muss ich tun damit er den für die sortierten Listen optimierten Suchalgorithmus benutzt? Irgendeine Variable setzen?
Oder macht er das automatisch?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#16

Re: Suchen und Löschen von Text in Memos

  Alt 13. Apr 2010, 23:28
Das geht automatisch.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 02:38 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