AGB  ·  Datenschutz  ·  Impressum  







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

zeichenkette mit delphi rausfiltern

Ein Thema von pillepalle · begonnen am 12. Sep 2007 · letzter Beitrag vom 13. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
pillepalle

Registriert seit: 19. Jun 2007
19 Beiträge
 
#1

zeichenkette mit delphi rausfiltern

  Alt 12. Sep 2007, 13:48
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
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: zeichenkette mit delphi rausfiltern

  Alt 12. Sep 2007, 13:54
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 hier.
  Mit Zitat antworten Zitat
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: zeichenkette mit delphi rausfiltern

  Alt 12. Sep 2007, 13:56
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
  Mit Zitat antworten Zitat
pillepalle

Registriert seit: 19. Jun 2007
19 Beiträge
 
#4

Re: zeichenkette mit delphi rausfiltern

  Alt 12. Sep 2007, 14:34
danke für die schnelle antwort

ich denke das ich dann regular expressions benutzen muss, sieht allerdings auf den ersten blick ziemlich kompliziert aus.
  Mit Zitat antworten Zitat
pillepalle

Registriert seit: 19. Jun 2007
19 Beiträge
 
#5

Re: zeichenkette mit delphi rausfiltern

  Alt 13. Sep 2007, 09:46
irgendwie klappt das bei mir nicht so wie ich will

habe zwar durch http://www.regular-expressions.info/completelines.html hinbekommen wie man komplette linien filtert aber das arbeit leider nicht nach dem muster von oben

kennt sich jemand damit besser aus?
  Mit Zitat antworten Zitat
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: zeichenkette mit delphi rausfiltern

  Alt 13. Sep 2007, 10:29
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:
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;
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.

Gruß
tr909
  Mit Zitat antworten Zitat
pillepalle

Registriert seit: 19. Jun 2007
19 Beiträge
 
#7

Re: zeichenkette mit delphi rausfiltern

  Alt 13. Sep 2007, 10:36
danke dir

naja ich werd dann mal weiter versuchen das hinzubekommen
  Mit Zitat antworten Zitat
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: zeichenkette mit delphi rausfiltern

  Alt 13. Sep 2007, 10:59
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.
http://www.wistedter-jungs.de/category/regexp/
http://weitz.de/regex-coach/
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: zeichenkette mit delphi rausfiltern

  Alt 13. Sep 2007, 11:07
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
  Mit Zitat antworten Zitat
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: zeichenkette mit delphi rausfiltern

  Alt 13. Sep 2007, 11:26
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:17 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