rtf文件太大(20M)。要考虑分次读入。你可以试一下,用word打开一个4M的.doc(不说20M),看看是什么状态!—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
             毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
  I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————
       

解决方案 »

  1.   

    分次读入的示例:
    procedure TForm1.Button1Click(Sender: TObject);
    var f: TFileStream;
      I,ITimes,INum,IPos: Integer;
      p: Pointer;
    begin
      ITimes := 5; //假设分5次读入
      f := TFileStream.Create('h:\DLL的标准定义和调用方法.txt',fmOpenRead);
      INum := f.Size div ITimes;
      GetMem(p,INum);
      IPos := 0;
      for I := 0 to ITimes do
      begin
        f.Position := IPos;
        f.Read(p^,INum);
        Memo1.Lines.Clear;
        Memo1.Lines.Add(PChar(p));
        Inc(IPos,INum);
      end;
      FreeMem(p);
      FreeAndNil(f);
    end;
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
    I.Desire := '加不加分随你';
    —————————————————————————————————
           
      

  2.   

    分次读入的思想很好,但我的文档中有图象,如果用Trichedit.lines.loadfrommemory方法的话,会出现乱码,我自己定义了
    一个Trichedit.loadformmenmory方法能够加载图片,但问题是如果我的分块的起始或终点选择不恰当的话,比如说设在了图片信息中一点,用Trichedit.loadformmenmory方法就会出错,我该怎么办,欢迎大家讨论