Einzelnen Beitrag anzeigen

Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: StrList zeilenw. kopiern unter Berücksichtg. Schwarzen L

  Alt 10. Apr 2010, 00:23
Erstens: Was passiert denn zur Zeit, wenn du den Code ausführst? Zweitens: Warum leerst du Listbox2 vor der Schleife? Dann ist die "Blacklist" doch weg..

[Edit] Außerdem müsstest du Erg beio jedem Durchlauf wieder auf '' setzen, sehe ich das richtig? Sonst ist ja immer das Ergebnis des vorherigen Durchlaufs noch mit drinnen.


[Edit2]Okay, dann zur inneren Schleife. Es darf ja keins der Elemente der Blacklist vorkommen. Wenn nun abewr das erste der Blacklist nicht vorkommt, wird Erg direkt gesetzt. Kommt danach noch ein Wort aus der Blacklist vor, zum Beispiel das zweite, ist Erg immer noch gefüllt und wird somit in Listbox3 geschrieben. Ich hoffe ich habe dieses mal nicht übersehen...


[Edit3]Ich hab das ganze mal bei mir ausprobiert und es mir erlaubt ein bisschen am Code zu werkeln Anstelle der Erg-Variable nutze ich eine Boolsche Veriable, die beinhaltet, ob der Eintrag "okay" ist oder nicht. Unabhängig davon wird vor der Schleife auf den Sonderstring überprüft (ich hoffe, der Sonderstring darf auch die Inhalte der Blacklist enthalten). Hier der Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  B: Boolean;
  j, k: Integer;
begin
  listbox3.Clear;
  listbox4.Clear;
  for j := 0 to Listbox1.Items.Count - 1 do
  begin
    if Pos('reanimation', LowerCase(listbox1.items.Strings[J])) > 0 then
    begin
      Listbox4.Items.Add(listbox1.items.Strings[J]);
    end
    else
    begin
      B := True;
      for k := 0 to ListBox2.Items.Count - 1 do
      begin
        if Pos(LowerCase(ListBox2.Items[k]), LowerCase(Listbox1.Items[J])) > 0 then
        begin
          B := False;
        end;
      end;
      if B then
      begin
        Listbox3.items.Add(listbox1.items.Strings[J]);
      end;
    end;
  end;2
end;
Ich hoffe, das hilft. Bei mir ergab es die richtigen Ergebnisse. Abgesehen von dem Ausbessern des Logikfehlers (aus [Edit2]) habe ich auch die Groß- und Kleinschreibung durch das LowerCase ignoriert.

Gruß
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat