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
 
Cumgrinder

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

Re: Suchen und Löschen von Text in Memos

  Alt 11. Apr 2010, 16:16
Ah, da hab ich schon ne Menge antworten. Super - Klingt alles viel versprechend.

Zitat:
Die Blacklist sieht wie XML aus, warum wird das nicht gleich als XML genutzt?
Ja ist richtig. Die Sache ist ich hab nicht sonderlich (eher null) Ahnung von XML. Weiss garnicht mal wozu das gut ist

Werde mich mal dransetzen und versuchen eure Vorschläge umzusetzen. Ich meld mich dann
Danke


Nachtrag:

Hab mal eure Ratschläge umgesetzt:

- Application.Messages in 1000er Schritten
- Listen werden in TStringList-Element geladen und gehandelt
- Es wird die Fileliste durchgegangen und nach Einträgen in der Blacklist gesucht anstatt für jedes Element der Blacklist einmal die Filelist durchzugehen.

Es funktioniert super.
Das mit DualCore war auf dem ersten Blick zu kompliziert für mich. Aber auch mit nur einem Kern war nach 22 Sekunden alles Fertig.


Delphi-Quellcode:
procedure TForm1.b_cleanClick(Sender: TObject);
{Entfernt die vorhandenen Einträge aus der Blacklist aus der Liste} 
var y,j,i,k:Integer;
var start,ende,dauer:TDateTime;
var item:string;
begin
  i:=0;
  blacklist.CaseSensitive:=False;
  filelist.CaseSensitive:=False;
  start:=Time;
  For y := 0 to filelist.Count Do
    Begin
      If y mod 1000 = 0 {Alle 1000 Zeilen ein GUI Update}
      Then
        Begin
         l_gesamt.Caption:=(IntToStr(y)+' von '+inttostr(filelist.count));
         Application.ProcessMessages;
        end;
      If y < filelist.Count {Da TStringList während der Prozedur immer kleiner wird, muss diese Abfrage rein}
      then
       Begin
          If Copy(filelist[y],1,19) = '      <Directory Name="{Falls Element der Stringlist so anfängt, muss Dateiname Extrahiert und geprüft werden}
          Then
            begin
              item:=(Copy(filelist[y],20,(length(filelist[y])-21))); {Dateiname herausfinden}
              If blacklist.IndexOf(AnsiLowerCase(item)) <> -1 {Gibt es den Dateinamen in der Blacklist?}}
              Then {Wenn ja}
               Begin
                k:=y; {Markiere Anfang}
                While copy(filelist[k],1,16)<>'      </Directory>{Markiere Ende}
                Do Inc(k);
                For j:= y to k {Lösche}
                do filelist.Delete(y);
                inc(i) {Counter Hoch}
                end;
               End;
       end;
    end;
  filelist.SaveToFile('D:\Text.txt'); {Abspeichern}
  filelist.Free;
  blacklist.Free;
  ende:=time;
  dauer:=ende-start; {Zeit berechnen}
  l_zeit.Caption:=timetostr(dauer);
  l_gesamt.Caption:=inttostr(i)+' Datensätze entfernt';
end;
  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 01:36 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