我对文本文件操作时,程序运行只能写入文本中最后的数据,要写入全部怎样该?????
 我的程序如下:
var
    f:text;
    i:integer;
    T1:integer;
    str:array[1..2] of  string;
begin
 for T1:=1 to paramcount do
 begin
  str[T1]:= ParamStr(T1);
  if str[1]='/r:' then
    begin
     if str[2]='1111'  then
     begin
       assign(f,'1.txt');
       rewrite(f);
       append(f);
       writeln(f,str[T1]);
       writeln(str[T1]);
       close(f);
     end;
    end;
end;
例如:
qq /r: 1111 2222 4444 6666 7777
现在只能写入7777!
要把1111 2222 4444 6666 7777全部写到文本文件中去,怎样改???

解决方案 »

  1.   

    先把rewrite(f);去掉再说
    用了它每次写入都会清除以前的
      

  2.   

    rewrite会先删除原来的文件,然后再创建一个新文件,原来的记录当然就没有了
      

  3.   

    年轻人,先弄清 assign(f,'1.txt');
           rewrite(f);
           append(f);
           writeln(f,str[T1]);
           writeln(str[T1]);
           close(f);
    这几个函数是干什么用的吧还写在循环里,真是让我无话可说
      

  4.   

    同上~
    rewrite(f)是覆盖~
    append(f)是追加~
      

  5.   

    hoho,不要这样说吗,
    犯错误才会有提高,
    所以犯错无罪,bug有理,
    我们过去犯错,现在犯错
    将来还要犯错,
    大家都年轻人嘛,怕什么?
    hellolongbin,还老气横秋的
    说别人是年轻人,笑死了...
      

  6.   

    baiduan(-_-小猩猩 @_@ 大金刚-_-) 
    说的很中肯,谢谢,又让我学习了一点做人的道理,呵呵
      

  7.   

    用TStrings来操作文本文件更方便.
      

  8.   

    建立一个TStringlist的实例,把文件读倒里面,随便你怎么操作,容易得很了