我在备忘录中有如下几行:

111111.kll
222222.kll


我需要从每行中删除最后4个字符,以获得如下结果:

111111
222222

最佳答案

作为GolezTrol解决方案的替代方案,您可以直接处理Memo内容,而不用先在内存中复制它:

var
  i, LineStart, LineLen: Integer;
begin
  Memo1.Lines.BeginUpdate;
  try
    for i := 0 to Memo1.Lines.Count - 1 do
    begin
      LineStart := Memo1.Perform(EM_LINEINDEX, i, 0);
      LineLen := Memo1.Perform(EM_LINELENGTH, LineStart, 0);
      Memo1.Perform(EM_SETSEL, LineStart + LineLen - 4, LineStart + LineLen);
      Memo1.SelText := '';
    end;
  finally
    Memo1.Lines.EndUpdate;
  end;
end;

10-08 04:48