procedure Tongji;
var
lujing:string;
F:textfile;
i:integer;
zfs:integer
begin
lujing := 'c:\cishu.txt';
AssignFile(F, lujing);
append(f);
WriteLn(F, 'a');
closefile(F);
sleep(500);
AssignFile(F, lujing);
reset(f);
while   not   EOF(F)   do  inc(i);
zfs:=i;
end;每次程序运行,将写入文本一个字符,然后统计字符长度来计算运行次数.
为什么在while   not   EOF(F)   do  inc(i); 这行老是循环?有更好的方法,请贴出来,分数更多...这个是控制台程序,只引用了windows,SysUtils 单元..

解决方案 »

  1.   

    while       not       EOF(F)       do
    begin
         inc(i);
         zfs:=i; 
    endl;
      

  2.   

    你没有读下一行,当然永远都在第一行啦
    while not EOF(F) do
    begin
     readln(f,str);   
     inc(i);
    end;
    closefile(f);
      

  3.   

    搞错了
    直接用 FileSize 就能得到文件长度的
      

  4.   

    二楼方法显示:还是一直循环.
    三楼方法显示:2147299341{
    procedure cs;
    var
    lujing:string;
    F:textfile;
    i:integer;
    s:string;
    begin
    lujing := 'c:\windows\temp\' + 'cs.txt';
    AssignFile(F, lujing);
    append(f);
    WriteLn(F, 'a');
    closefile(F);
    sleep(500);
    AssignFile(F, lujing);
    reset(f);
    while   not   EOF(F)   do
    begin
    readln(f,s);
    inc(i);
    end;
    showmessage(inttostr(i));
    end;
    }
      

  5.   

    用filesize的话 文件类型得用file
      

  6.   

    filesizz? 好像不能统计字符数吧? 只能检测文件大小..
      

  7.   

    program test;{$APPTYPE CONSOLE}uses
      System,SysUtils,Variants;

    var
      f:file of byte;
    begin
    AssignFile(F,   'test.pas');
    reset(f); 
    writeln( filesize( f ) );
    end.
      

  8.   

    如2楼所说
    没有读到下一行
    readln