Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Suchen und Löschen von Text in Memos

  Alt 12. Apr 2010, 09:47
Zitat:
Code:
filelist.Free;
blacklist.Free;
Wo werden diese Listen denn erstellt?
Sowas sollte immer besser logisch zusammenhängend erstellt und freigegeben werden.


Zitat:
Delphi-Quellcode:
If AnsiPos(...) = 0
then {Falls Nein, mache nichts}
else {Falls Ja, mache:}
Hier hast'e es ja wohl selber mitbekommen
If AnsiPos(...) <> 0 then

Delphi-Quellcode:
uses XMLIntf, XMLDoc;

// 'ne private Methode deiner Form
procedure TForm1.CleanList(FileList, BlackList: TMemo);
var Files: IXMLDocument;
  FilesRoot: IXMLNodeList;
  BadWords: TStringList;
  i: Integer;
begin
  Files := TXMLDocument.Create(nil);
  Files.LoadFromXML(FileList.Text);
  FilesRoot := Files.DocumentElement.ChildNodes;
  BadWords := TStringList.Create;
  try
    BadWords.CaseSensitive := False;
    BadWords.Sorted := True;
    BadWords.Duplicates := dupIgnore;
    BadWords.AddStrings(BlackList.Lines);
    for i := FilesRoot.Count - 1 downto 0 do
      if BadWords.IndexOf(FilesRoot[i].Attributes['Name']) >= 0 then
        FilesRoot.Delete(i);
    FileList.Text := Files.XML.Text;
  finally
    BadWords.Free;
  end;
end;

procedure TForm1.b_cleanClick(Sender: TObject);
{Entfernt die vorhandenen Einträge aus der Blacklist aus der Liste}
var Start: TDateTime;
begin
  Start := Time;
  CleanList(mmo_filelist, mmo_blacklist);
  mmo_filelist.Lines.SaveToFile(dlgOpen_filelist.FileName);
  l_zeit.Caption := TimeToStr(Time - Start);
end;
Ungetestet, aber ausgehend von nachfolgender Dateiliste dürfte es so funktionieren,
wenn die entsprechenden Namen komplett mit einem Namen aus der BlackList übereinstimmen.
Ansonsten einfach die Vergleichfunktion ändern.
XML-Code:
<Root>
  <Directory Name="Auto">
      <xxxxxxxxxxxxxxxxxxxxx>
      <xxxxxxxxxxxxxxxxxxxxx>
    </Directory>
  <Directory Name="Haus">
      <xxxxxxxxxxxxxxxxxxxxx>
      <xxxxxxxxxxxxxxxxxxxxx>
      <xxxxxxxxxxxxxxxxxxxxx>
    </Directory>
  <Directory Name="Blume">
      <xxxxxxxxxxxxxxxxxxxxx>
      <xxxxxxxxxxxxxxxxxxxxx>
      <xxxxxxxxxxxxxxxxxxxxx>
    </Directory>
</Root>
$2B or not $2B
  Mit Zitat antworten Zitat