总是有人埋怨自己的专家分太低…………
这样吧!没有免费的午餐!出一道巨简单的题:
罗列操作文本文件的方法!大家各抒己见……
答的精彩的和罗列多者均有分!
(我……我……要让经常光顾得Delphi WIN32 SDK/API版的朋友专家分多多,哈哈……)

解决方案 »

  1.   

    我先说一个 用TStringList类,进行操作。
    先Create,再LoadFromFile,操作完后用SaveToFile
      

  2.   

    highlight ur dispatch ,u can use another way to deal with this question :)for example, use DLL
      

  3.   

    通过下面的函数,可以方便地对文件名进行操作:
    1. ExpandFileName
    将当前驱动器名(盘符)、路径名和指定的文件名合成一个绝对文件名。
    函数原型如下:
    function ExpandFileName(const FileName: string): string;
    返回值为合成的绝对文件名。
    可用ExpandFileName()返回含路径及文件名的完整字符串信息,再用
    ExtractFilePath()返回路径信息。
    例:myfilename:=expandfilename('UEDIT32.EXE');
        myfilepath:=extractfilepath(myfilename);
    2. ExpandUNCFileName
    获取一个以U N C 格式的包括网络驱动器名的绝对文件名。
    函数原型如下:
    function ExpandUNCFileName(const FileName: string): string;
    3. ExtractFileDir
    从绝对文件名中获取目录名。
    函数原型如下:
    function ExtractFileDir(const FileName: string): string;
    4. ExtractFileDrive
    从绝对文件名中获取驱动器号(盘号)。
    函数原型如下:
    function ExtractFileDrive(const FileName: string): string;
    5. ExtractFileExt
    从绝对文件名中获取文件名的扩展名。
    函数原型如下:
    function ExtractFileExt(const FileName: string): string;
    6. ExtractFileName
    从绝对文件名中获取文件名。
    函数原型如下:
    function ExtractFileName(const FileName: string): string;
    7. ExtractFilePath
    从绝对文件名中获取路径名。
    函数原型如下:
    function ExtractFilePath(const FileName: string): string;
    8. ExtractRelativePath
    从绝对文件名中获取相对于某一个路径的相对路径名。
    函数原型如下:
    function ExtractRelativePath(const BaseName, DestName: string): string;
    9. ExtractShortPathName
    将长文件名转化成短文件名。
    函数原型如下:
    function ExtractShortPathName(const FileName: string): string下面是我的个人所得税里面取得程序路径并把计算过程和结果存入当前路径的一个过程的
    源码。你可以看看。
    S:=DateToStr(Date);//取得程序运行的日期
        S:=S+'.txt';
        //GetDir(0,Path); //取得程序的路径
        Path:=ExTractFilePath(Application.exename);//取得程序运行的路径含"\"
        //Path:=Application.ExeName;//付值路径
        S:=Path+S; //确定文件名(如C:\windows\200153.txt)
        AssignFile(f,S); //关联文件    If Not FileExists(S) then  //判断文件是否存在
           begin
             Rewrite(f);
             //if Fgfh='Dh' then
                //application.MessageBox('使用逗号分割','提示',64)         if Fgfh='Fh' then
                // application.MessageBox('使用分号分割','提示',64)
                WriteLn(f,'姓名'+';'+'级别'+';'+'工龄'+';'+'赔缴'+';'
                     +'所得额'+';'
                     +'调增项目'+';'+'调增额'+';'+'扣除项目'
                     + ';'+'扣除额'+';'
                     +'应税所得额'+';'+'税率'+';'+'速算扣除数'+';'
                     +'个人所得税')
             else if Fgfh='Th' then
                //application.MessageBox('使用特殊符号(&)分割','提示',64)
                 WriteLn(f,'姓名'+'&'+'级别'+'&'+'工龄'+'&'+'赔缴'+'&'
                     +'所得额'+'&'
                     +'调增项目'+'&'+'调增额'+'&'+'扣除项目'
                     + '&'+'扣除额'+'&'
                     +'应税所得额'+'&' +'税率'+'&'+'速算扣除数'+'&'
                     +'个人所得税')
             else
                //application.MessageBox('使用逗号分割','提示',64);             WriteLn(f,'姓名'+','+'级别'+','+'工龄'+','+'赔缴'+','
                     +'所得额'+','
                     +'调增项目'+','+'调增额'+','+'扣除项目'
                     + ','+'扣除额'+','
                     +'应税所得额'+','+'税率'+','+'速算扣除数'+','
                     +'个人所得税');
                     
             CloseFile(f); //关闭文件
           end;
      

  4.   

    不太明白到底要做些什么?
    用MEMO!
      

  5.   

    楼上的,我要的读写文本文件,不是文件名!
    不过最后的例子倒是用了
    AssignFile(f,S);
    Rewrite(f);
    CloseFile(f); 
    这也算一种方法!
      

  6.   

    如果tstringlist.loadfromfile,tfilestream,assignfile,fileread,也算不一样的话,那么方法有无穷多个。可以写出来任何封装createfile,readfile等api的函数或者类,也可以用任何编译器做个dll让delphi的程序调用嘛。我要是写出来200个,楼主能给多少份阿:)
      

  7.   

    我再说一个:
    用包含文件编译指令
    var s:string;
    s:={$I FileName};//不知道是不是$I,忘啦!现在手头也没有Delphi!
    然后对s行操作!
      

  8.   

    呵呵我也来接分
    我就给两个东西
    1: API
    2:DELPHI帮助
    呵呵足够了吧!
      

  9.   

    老兄,这段到处发贴以聚人气,呵呵,不错,不错,偶支持我一般操作文件一般都是TStream或API,相信大家都知道,就不贴了。hoho,找灌水贴要紧
      

  10.   

    好!!!
    我也来问个问题:如何拒绝用户打开文本文件?也就是说,只要打开的是*.txt类型的文件,一率提示“拒绝存取”!:))))))))))))哈哈哈...........
      

  11.   

    fans问的问题,偶只能:GZ...
    再GZ...
    严重GZ...
    再次严重严重的GZ...
    hoho...
      

  12.   

    FANS 的问题:
    不知道HOOK可以不可以!
    还有以独占方式打开文件,不过这只能防止一个文件
      

  13.   

    思路有两个:1、在Win32中实现,Hook CreateFile或者OpenFile2、在驱动中实现,Hook ZwCreateFile或者ZwOpenFile不过只是理论上的,没有实现代码!
      

  14.   

    hook  
    hook
    ~~~~~~
    up
    up