1、一个回车是#13#10
2、
>>但即使操作时回车被略去,在目的流中相同的地方任可找到回车。
不明白,你不是要把源的回车复制到目的吗?
3、按照我的习惯,我会用两个TstringList进行处理,处理完毕再保存到文件。例如
var
i,iPos:integer;
stSrc,stDst : TStringList ;
s ,s1:string;
begin
 ...
 stSrc.LoadFromFile(...);
 for i := 0 to stSrc.count -1 do
  begin
   s := stSrc[i];
   iPos := pos('  ',s);
   if iPos = 0 then 
     stDst.add(s)
   else begin
     while pos('  ',s)>0 do 
      begin
        s := copy(s,1, pos('  ',s)+2);
        stDst.Add(s);
      end; 
   end;
  end;
  stDst.SaveToFile(...);
 ...
end;大概的思路就是这样,你测试一下吧。

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      F: TFileStream;
      P: Pointer;
      S,SCopy: String;
      I,CharCount,SpaceCount: Integer;
    begin
      F := TFileStream.Create('h:\新建 文本文档.txt',fmOpenRead);
      GetMem(P,F.Size);
      F.Read(P^,F.Size);
      FreeAndNil(F);
      S := PChar(P);
      FreeMem(P);
      SCopy := '';
      CharCount := Length(S);
      SpaceCount := 0;
      for I := 1 to CharCount do
      begin
        if S[I] = ' ' then
        begin
          Inc(SpaceCount);
        end else
        begin
          SCopy := SCopy + Copy(S,I,1);
          if SpaceCount > 1 then0D
            Insert(#13+#10+'  ',SCopy,Length(SCopy))
    0A      else if SpaceCount = 1 then Insert(' ',SCopy,Length(SCopy));
          SpaceCount := 0;
        end;
      end;
      GetMem(P,Length(SCopy));
    0A  P := PChar(SCopy);
      F := TFileStream.Create('h:\新建 文本文档.txt',fmOpenWrite);
      F.Write(P^,Length(SCopy));0D
      FreeAndNil(F);
    end;—————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
    I.Desire := '加不加分随你';
    —————————————————————————————————
        
      

  2.   

    我给你的只是一个思路而已,我也不知道是否正确,不过上面的代码的确有些问题。再看看下面的代码吧。
    var
    i,iPos:integer;
    stSrc,stDst : TStringList ;
    s ,s1:string;
    begin
     stSrc := TStringList.Create;
     stDst := TStringList.Create;
     stSrc.LoadFromFile(...);
     for i := 0 to stSrc.count -1 do
      begin
       s := stSrc[i];
       iPos := pos('  ',s);
       if iPos = 0 then
         stDst.add(s)
       else begin
         while pos('  ',s)>0 do
          begin
           iPos := pos('  ',s);
            s1 := copy(s,1, pos('  ',s)-1);
            stDst.Add(s1+'  ');
            s := copy(s,iPos+2,length(s));
          end;
          if trim(s)<> '' then stDst.Add(s);
       end;
      end;
      stDst.SaveToFile(...);
    end;