Also zuerst einmal musst du nicht für jedes Stichwort das komplette Memo erneut durchlaufen, es reicht also wenn du EINE for-Schleife hernimmst und da dann alle if-Abfragen reinpackst:
Delphi-Quellcode:
for i := 0 to Memo1.Lines.Count - 1 do
begin
if Pos('Ihre Artikelnummer:', Memo1.Lines[i]) > 0 then
Memo2.Lines.Add(Trim(Copy(Memo1.Lines[i], 20, Length(Memo1.Lines[i])-19)));
if Pos('Artikel', Memo1.Lines[i]) > 0 then ... usw.
end;
mit dem Copy kopierst du erstmal alles aus dieser Zeile nach "Ihre Artikelnummer:" (also ab Zeichen 20) und entfernst dann davon noch mit Trim() die Leerzeichen an Anfang und ggf. Ende.
(um auf die Zeilen des Memos zuzugreifen reicht übrigens auch Memo1.Lines[i], das .Strings kann man sich hier sparen)