var 
filea:textfile; 
begin 
filecreate('c:\a.txt'); 
assignfile(filea,'c:\a.txt'); 
write(filea,'a'); 
closefile(filea); 
end; 
老是在write处提示I/O错误103……为什么啊? 
如果在filecreate后面加上rewrite(filea);,则在该行提示I/O错误32……不知道是为什么…… 
如果文件已存在,不写filecreate('c:\a.txt');一句的话,可以正常写入文本……不晓得是为什么…… 恳请各位大哥大姐帮帮忙啊~万分感谢

解决方案 »

  1.   

    var 
    filea:textfile; 
    begin 
    filecreate('c:\a.txt'); 
    assignfile(filea,'c:\a.txt'); //建立文件变量与文件的联系//缺少的内容是,建立联系后,必须打开文件,可以使用这两个函数:reset()[这个函数是以读的形式打开已经存在的文件,不能写入数据,如果文件不存在则报错。rewrite()[这个函数用于打开文件并且向文件中写入数据,如果文件不存在,则建立文件,并且打开。
    //我想你的错误就在,虽然建立了文件变量与文件的联系,但是没有打开文件,所以不能写入文件。打开之后才能写入数据。
    //那就要加上一句:
    rewrite(filea);         //以写的形式打开文件。
    write(filea,'a');          //写入数据。
    closefile(filea); 
    end; 注意:
    reset(filename) 和 read()配套使用,用于读取已经存在文件。文件必须存在。
    rewrite(filename)和write()配套使用,用于写入已经存在文件。文件不存在建立文件并且写入。个人意见,仅供参考!!
      

  2.   

    我懂了……发出来给大家看看~共同进步~呵呵
    在TxtHandle:=FileCreate('c:\a.txt');之后,要加上与之相匹配的关闭文件的命令:
    FileClose(TxtHandle);
    TxtHandle是Integer变量……
    感谢大家的帮助