morgn,
vereinfachen kannst du deinen code auf jeden fall schon mal so (würd ich jetzt mal sagen, keine garantie

):
Delphi-Quellcode:
function TrenneParaAb(const Zeichen: String; var Para:String):String;
var
i : integer;
begin
result:='';
If Pos(Zeichen,Para) > 0 then begin
i:=Pos(Zeichen,Para);
result:=copy(Para,1,Pred(i));
delete(Para,1,(i+Pred(length(Zeichen))));
end;
end;
was du mit speicherverprassen meinst, hab ich noch nicht ganz verstanden.