Einzelnen Beitrag anzeigen

Benutzerbild von Coder
Coder

Registriert seit: 27. Feb 2004
Ort: Bochum
203 Beiträge
 
Delphi 3 Professional
 
#1

StrList zeilenw. kopiern unter Berücksichtg. Schwarzen Liste

  Alt 9. Apr 2010, 23:21
Hallo,

ich weiß nicht mehr weiter.
Seit heute Nachmittag hab ich allesmögliche probiert.
Ich blick schon fast durch meinen eigenen Code nicht mehr.
  • Ich möchte eine Stringliste {Listbox1} zeilenweise in eine andere {Listbox3} kopieren, (!) FALLS je Zeile - in einer Listbox2 festgehaltenen - Zeichenketten NICHT vorkommen.(Schwarze Liste)
  • lediglich wenn ein bestimmter Zeichenkettenstring zutrifft, soll die Zeile in Listbox4 kopiert werden (nicht in Listbox3 !!!)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Erg : String;
  j, k: Integer;
begin
  listbox3.Clear;
  listbox4.Clear; // EDIT: hier stand gerade eben noch "Listbox2.clear"
  Erg := '';
  for j := 0 to listbox1.items.Count - 1 do
  begin
    for k := 0 to ListBox2.items.Count - 1 do
    begin
      if Pos(ListBox2.Items.Strings[k], listbox1.items.Strings[J]) < 1 then
      begin
        Erg := listbox1.items.Strings[J];
      end;
    end;
    if Erg <> 'then Listbox3.items.Add(listbox1.items.Strings[J]) else
      Memo4.Lines.Add(listbox1.items.Strings[J]);
    Erg := '';
  end;
Den Aspekt, daß falls der bsondere Satz enthalten ist, hab ich noch gar nicht berückschtigt - weil schon der Rest nicht klappt.

Beispielliste Listbox1

* Knieoperation Patient Müller
* Magenspiegelung Dr. Kranich
* Magensonde Patient Röhrig
* Rückenmarksnarkose Patient Liebig
* Reanimation Dr. Schmitt
* Skalpell ausgerutscht Dr. Tattrich

Beispielliste Listbox2
* Knieoperation
* Spiegelung
* Skalpell

Der besondere Satz soll
"Reanimation" lauten und die Zeile {"Reanimation Dr. Schmitt"} in Listbox 4 kopieren, nicht aber in listbox 3

Listbox3 soll dann später enthalten:
* Magensonde Patient Röhrig
* Rückenmarksnarkose Patient Liebig


1) Seht Ihr was ich falsch mache?
2) Habt Ihr eine Idee, wie man die Berücksichtigung des "besonderen Substrings" darin einfädeln kann?

EDIT:
a) Ich habe meinen letzten, annähernd funktionierden Code gepostet.
Die davor wage ich wegen der Unübersichtlichkeit und Unzweckmäßigkeit erst gar nicht.
bei obigem, werden zu 90% richtige Strings aussortiert, doch 10% sind unkorrekter Weise auch mit in Listbox3.
b) Erg wird doch auf '' gesetzt?
ICQ: 204141443
Delphi 3 Professional, Intel 2x 2,4Ghz, 3 GB-Graka, Sound-onBrd, --
außerdem D2S, D3Pro, D4S, D5S, D6S, D7S + Indy, Lazarus, VB5Std, VC++5Pro, Tasm4+5 - was braucht man mehr?
-
  Mit Zitat antworten Zitat