我想把unix下的文本文件转换成windows下的,插入回车符,下面是我的代码,但是感觉好慢,帮忙改进优化下,谢谢。procedure tform1.insert13;
var
f:file of char;
c:char;
j:longint;
begin
assignfile(f,'c:\temp.txt');rewrite(f);
c:=#13;
for j:=1 to length(memo1.text) do
  begin
    if memo1.text[j]=#10 then
    begin
      write(f,c);
      write(f,memo1.text[j]);
    end
    else
      write(f,memo1.text[j]);
end;
closefile(f);
end;

解决方案 »

  1.   

    var
    s:TStringList;
    i:Integer;
    mstr:string;
    begin
    s:=TStringList.Create;
    s.LoadFromFile('文件名');
    for i:=0 to s.Count-1 do
    begin
    mstr:=s[i];
    mstr:=StringReplace(mstr,#10,#13,[rfReplaceAll]);
    s[i]:=mstr;
    end;
    s.SaveToFile('文件名');
    s.Free;
      

  2.   


    procedure tform1.insert13
    var
      i:integer;
    begin
      Memo1.Lines.LoadFromFile('c:\temp.txt');
      for i := 0 to memo1.Lines.Count -1 do
      begin
        Memo1.Lines.Strings[i] := StringReplace(Memo1.Lines.Strings[i], #10, #13,
        [rfReplaceAll]);
      end;
      Memo1.Lines.LoadFromFile('c:\temp.txt');
    end;不过貌似也很慢
      

  3.   

    如果是Delphi2007可以直接设置
    Memo1.LineBreak := #13#10
    Memo1.SaveToFile(...(*文件名*));
      

  4.   

    Memo1.Lines.LineBreak := #13#10 
    Memo1.Lines.SaveToFile(...(*文件名*));
      

  5.   

    印象中对于Memo,好象并不需要进行任何设置,只需要打开Unix格式的文本文件,再保存就会变成Windows格式(除非是Kylix编译的程序).
      

  6.   

    对于同一个文件,相同的环境下,我的代码大概要6秒,1,2楼大概是2秒,6楼方法最快,存一下再读取就用了0.08秒,看来还是系统自带的最快啊。//这个函数计算开机以来的时间,可以精触到纳秒!
    function gettime: double;
    var int1,int2:int64;
    begin
      QueryperformanceCounter(int1);
      Queryperformancefrequency(int2) ;
      result:=int1/int2;
    end;