Ich denke ListBox4 und nicht Memo4 ... was macht also das Memo4 in deinem Code?
Wozu der String "Erg", wenn du ihn eh nur wie einen Boolean verwendest, in einer IF-Abfrage?
Deine Abfrage "If Pos(..." sollte besser andersrum sein, denn du willst ja wissen ob
mindestens einer der Strings enthalten ist.
"Pos > 0" = mindestens Einer enthalten, da bei ersten auffinden reagiert wird
"Pos < 1" aka "Pos = 0" = alle enthalten enthalten, da beim ersten
nichtauffinden reagiert wird
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
j, k: Integer;
b: Boolean;
begin
ListBox3.Clear;
ListBox4.Clear;
for j := 0 to ListBox1.Items.Count - 1 do
begin
b := False;
for k := 0 to ListBox2.Items.Count - 1 do
if Pos(ListBox2.Items.Strings[k], ListBox1.Items.Strings[j]) > 0 then
b := True;
if b then ListBox3.Items.Add(ListBox1.Items.Strings[j])
else ListBox2.Items.Add(ListBox1.Items.Strings[j]);
end;
noch ein bissl optimiert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
j, k: Integer;
b: Boolean;
s: String;
begin
ListBox3.Clear;
ListBox4.Clear;
for j := 0 to ListBox1.Items.Count - 1 do
begin
s := ListBox1.Items.Strings[j];
b := False;
for k := 0 to ListBox2.Items.Count - 1 do
if Pos(ListBox2.Items.Strings[k], s) > 0 then
begin
b := True;
Break; // wozu weitersuchen, wenn schon gefunden
end;
if b then ListBox3.Items.Add(s) else ListBox2.Items.Add(s);
end;
PS: Müssen eigentlich die Strings aus LisbBox2 genau enthalten sein, also beide Stings übereinstimmem,
oder können sie auch nur ein Teil des eines Strings aus der ListBox1 sein?
PSS: Wie ist es mit Groß-/Kleinschreibung?