![]() |
zeichenkette mit delphi rausfiltern
Hi leute,
ich habe eine datei mit folgendem inhalt: 03[11:27] * haywire (bomba@*.connect.net.au) has joined #blubb [11:27] <@bot-name1> #22 114x [8.9M] bli.zip [11:27] <+biber2> #23 55x [1.3M] bla [11:27] <&5luzis> #24 17x [401K] blubb.rar 02[11:28] * wdsnnv (vdds@*.t-ipconnect.de) Quit (Ping timeout) 03[11:28] * luisdiver (luisdiver@*.telepac.pt) has joined #blubb 03[11:28] * barrybreen (asdfa@*.connect.net.au) has joined #blubb 03[11:29] * remb (remb@*.cable.ntl.com) has joined #blubb [11:30] <5luzis> blablah chitchat blablah ich will nun aus dieser datei alle zeilen gelöscht haben die nicht dem folgendem muster entsprechen: [11:27] <bot-name1> #22 114x [8.9M] bli.zip [11:27] <+biber2> #23 55x [1.3M] bla [11:27] <&5luzis> #24 17x [401K] blubb.rar Datei öffnen und ausgeben bekomm ich hin, aber mit was ich nun da dran soll weiss ich leider nicht danke schonmal :) |
Re: zeichenkette mit delphi rausfiltern
Hallo,
wenn es wirklich um Regeln geht, dann fallen mir spontan reguläre Ausdrücke ein. Damit kann man so ziemlich jede Regel aufstellen, sei sie noch so komplex. Eine entsprechende Unit, die du dazu einbinden musst, findest zu beispielsweise ![]() |
Re: zeichenkette mit delphi rausfiltern
Also entweder mit regulären Ausdrücken, oder, wenn die zeile eindeutig durch # gekennzeichnet ist, einfach die Datei in ne StringList laden und mit ner Schleife durchgehen. Wenn wenn in der Zeile # nicht vorkommt (if pos('#',list[i])00) dann diese löschen.
Gruß tr909 |
Re: zeichenkette mit delphi rausfiltern
danke für die schnelle antwort
ich denke das ich dann regular expressions benutzen muss, sieht allerdings auf den ersten blick ziemlich kompliziert aus. |
Re: zeichenkette mit delphi rausfiltern
irgendwie klappt das bei mir nicht so wie ich will
habe zwar durch ![]() kennt sich jemand damit besser aus? |
Re: zeichenkette mit delphi rausfiltern
Also wenn du es schaffst mit Regulären Ausdrücken zu bestimmen ob die Zeile gelöscht werden soll oder nicht, könntest dud ann folgendes versuchen.
Delphi-Quellcode:
FindWithRegExp (list[i],exp) wäre dann Eine Funktion , die Prüft ob der Ausdruck in exp auf list[i] passt und dann true bzw false zurück gibt. Mangels Kenntnissen von Regulären Ausdrücken kann ich dir dabei jedoch nicht helfen.
procedure DeleteLines (fname_in, fname_out, exp: string);
var list : TStrings; i : integer; begin list := TStringList.Create; try list.LoadFromFile(fname_in); i := 0; while i < list.Count do begin if not FindWithRegExp (list[i],exp) then list.Delete(i) else inc(i); end; list.SaveToFile(fname_out); finally list.Free; end; end; Gruß tr909 |
Re: zeichenkette mit delphi rausfiltern
danke dir :)
naja ich werd dann mal weiter versuchen das hinzubekommen |
Re: zeichenkette mit delphi rausfiltern
Viel Erfolg. Ich habs gerade auch mal probiert und die von Matze angesprochene Komponente TPerlRegEx benutzt. Funktioniert sehr gut.
Aber bevor ich hier ne Lösung reinstelle kannst du es ja erstmal selbst versuchen. Gruß tr909 *edit* Noch ein paar links die mir geholfen haben. ![]() ![]() |
Re: zeichenkette mit delphi rausfiltern
Hallo pillepalle,
du hast ja bisher kein Muster angegeben. An Hand deiner Beispieldaten würde ich vermuten, dass alle Zeilen entfernt werden sollen, welche eine Speichergrößenangabe in eckigen Klammern aufweisen. Wie sieht denn dein nicht funktionierendes Muster aus? Grüße vom marabu |
Re: zeichenkette mit delphi rausfiltern
So wie ich das sehe will er alle entfernen die keine Größenangabe aufweisen. Scheint wohl dafür gut zu sein um download-links aus irc-Chans zu grabben ;)
Gruß tr909 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 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