Ver Mensaje Individual
  #7  
Antiguo 14-06-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
  // Encontrar el final del párrafo
  S := Memo.Text;
  I := Memo.SelStart;
  B := PosEx(#$D#$A#$D#$A, S, I);

  if B = 0 then B := Length(S);

  // Encontrar el comienzo del párrafo
  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 [-]
// Extrae el párrafo actual de Memo1 y lo pone en Memo2
ExtraeParrafo(Memo1, Memo2.Lines);

// Saludos
Responder Con Cita