No me queda claro eso de que los Memo no se llevan con los párrafos. Si en una hoja impresa hay párrafos, ¿cómo no los va a haber en un archivo de texto?
Para mi, un doble salto de línea ($0D$0A$0D$0A en Windows) marca el final de un párrafo.
Aquí una rutina para extrer el párrafo actual de un Memo. Seguro hay algún detalle que revisar.
Código Delphi
[-]
uses StrUtils;
procedure ExtraeParrafo(Memo: TMemo; Parrafo: TStrings);
var
S: String;
I, A, B: Integer;
begin
S := Memo.Text;
I := Memo.SelStart;
B := PosEx(#$D#$A#$D#$A, S, I);
if B = 0 then B := Length(S);
S := ReverseString(S);
I := Length(S) - (I + 1);
A := PosEx(#$A#$D#$A#$D, S, I);
if A > 0 then A := Length(S) - A;
Parrafo.Text := Copy(Memo.Text, A, B - A);
end;
Ejemplo de uso:
Código Delphi
[-]
ExtraeParrafo(Memo1, Memo2.Lines);
// Saludos