请各位高手看一下我的如下代码, 我发现我形成的文件是一个二进制文件,我本来想得到一个文本文件的,不知道在何处进行设置,先谢谢了.
procedure TFrmMain.writeToLogFile(szLog: string);
var
  f    :TFileStream;
  szTmp:string;
begin
    if fileexists('YantraTobartector.log') then
    begin
        f:=TFileStream.Create('YantraTobartector.log',fmOpenReadWrite or fmShareDenyWrite);
    end
    else
    begin
        f:=TFileStream.Create('YantraTobartector.log',fmCreate );
    end;
    szTmp:=DateTimeToStr(Now);
    szTmp:=szTmp + ' ';
    szTmp:=szTmp + szLog + chr(13);
    f.Seek(0,2);
    f.WriteBuffer(szTmp,Length(sztmp));
    f.Free;
end;

解决方案 »

  1.   

    你这样写当然是二进制文件了。
    用TextFile,然后用Writeln方法即可。
      

  2.   

    可是我现在还不知道如何使用TextFile, 我的联机文档中还没有这个帮助, 能否给我个例子?
      

  3.   

    var
      F: TextFile;
      S: string;
    begin
      AssignFile(F,'a.txt' ); //打开文件
      reset( f );
      readln( f,s );//读取一行
      ...
      CloseFile(F);//关闭文件
    end;
      

  4.   

    纯文本文件的话用 TextFile 就可以了,
    AssignFile之后
    读取用
    Reset
    Readln
    写入用
    Rewrite
    Writeln
    之后记得CloseFile。简单一点的话可以用TStringList的LoadFromFile过程。
    读取成功之后可用TStringList的strings属性访问文本的每一行。二进制文件的话用TFileStream比较好。
    在Create的时候指定文件名,
    之后可用Read/Write/Seek等过程读写数据。具体可参照Delphi的Help
    读写的时候注意文件共享问题。
      

  5.   

    我现在想实现记录日志文件的功能,如果向下面这种写法总是报错,我现在非常晕乎,不知道哪位肯帮忙.
    procedure TFrmMain.writeToLogFile(szLog: string);
    var
      szTmp:string;
      F    :TextFile;
    begin
        AssignFile(F,'YantraTobartector.log');
        szTmp:=DateTimeToStr(Now);
        szTmp:=szTmp + ' ' + szLog;
        Writeln(F,szTmp);
        CloseFile(F);
    end;
      

  6.   

    少了一个 Rewrite(F)吧
    procedure TFrmMain.writeToLogFile(szLog: string);
    var
      szTmp:string;
      F    :TextFile;
    begin
        AssignFile(F,'YantraTobartector.log');
        Rewrite(F);
        szTmp:=DateTimeToStr(Now);
        szTmp:=szTmp + ' ' + szLog;
        Writeln(F,szTmp);
        CloseFile(F);
    end;
      

  7.   

    楼上的弟兄,如果我加入了Rewrie(F)这句话, 那么我的日志文件不就不能保留以前的内容了吗?我想在文件的末尾加入"新"的内容进去.
      

  8.   

    那就用append(f);
    writeln(f,'adf');应可以了;