请各位推荐关于delphi文件操作的:书籍,代码或思路......:主要是  有类型文件  的比如,可以自己建立数据结构的文件:它的相关命令,函数如何调用...
怎么好像资料很少呀?
请教大家提供

解决方案 »

  1.   

    我这里有一本中国水利水电出版社的《delphi深度编程及其项目应用开发》但是,例子少,函数讲到的不多...
      

  2.   

    [email protected]发给我好了,多谢!!
      

  3.   

    Delphi编程中的文件操作--------------------------------------------------------------------------------
    http://tech.sina.com.cn 2000/09/18  软件世界 李冬梅
      1、Delphi中拷贝文件的几种方法   {方法一:用File stream }
      Procedure FileCopy( Const sourcefilename, targetfilename: String );
      Var
      S, T: TFileStream;
      Begin
      S := TFileStream.Create( sourcefilename, fmOpenRead );
      try
      T := TFileStream.Create( targetfilename,fmOpenWrite or fmCreate );
      try
      T.CopyFrom(S, S.Size ) ;
      finally
      T.Free;
      end;
      finally
      S.Free;
      end;
      End;   { 方法二:使用内存块进行读写 }   procedure FileCopy(const FromFile, ToFile: string);
      var
      FromF, ToF: file;
      NumRead, NumWritten: Word;
      Buf: array[1..2048] of Char;
      begin
      AssignFile(FromF, FromFile);
      Reset(FromF, 1); 
      AssignFile(ToF, ToFile);
      Rewrite(ToF, 1); 
      repeat
      BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
      BlockWrite(ToF, Buf, NumRead, NumWritten);
      until (NumRead = 0) or (NumWritten <> NumRead); 
      CloseFile(FromF);
      CloseFile(ToF);
      end;   2、控制INI文件   要利用.INI文件做程序有关数据的存储工作,就需要能读和写.INI文件,所以列了如下方法给大家参考:   {方法一:用 Windows API 函数}   ① 从.INI文件中获取字符串
      var
      strResult:array[0..30] of Char;
      begin
      GetPrivateProfileString(' desktop ', 'wallpaper', 
      'c:\windows\newwall.bmp' , strResult, 100, 
      'c:\windows\win.ini' );
      edit1.text:=strResult; //显示取得字符串
      end;
      ② 从.INI文件中获取整数
      var
      nResult: integer;
      begin
      nResult := GetPrivateProfileString(' desktop ', ' tilewallpaper', 
      0 , 'c:\windows\win.ini' );
      edit1.text:=intostr(nResult); //显示取得整数
      end;
      ③ 向.INI文件写入字符串
      WritePrivateProfileString('desktop', 'wallpaper',
      strWrite ,'c:\windows\win.ini');
      { 方法二:使用TiniFile进行读写 }
      ① 从.INI文件中读字符串
      var MyIni: TIniFile;
      begin
      MyIni := TIniFile.Create('c:\windows\win.ini');
      edit1.text:=MyIni.ReadString('Desktop', 'Wallpaper', '');
      end;
      ② 向.INI文件中写入字符串
      var MyIni: TIniFile;
      begin
      MyIni := TIniFile.Create('c:\windows\win.ini');
      MyIni.WriteString('desktop', 'wallpaper', 'c:\a.bmp');
      end;   3、用Delphi实现将纯文本资料转入数据库   在我们日常工作中,常会碰到这样一个难题:一大堆收集好的纯文本格式,比较规整的资料怎样才能将它们分离,转到自己已经建好的数据库中进行管理呢?例如,有一段人事档案资料document.txt,内容如下:   张强,25,助理工程师,   王宏,30,工程师,   李远,45,高级工程师,   要将它转入数据库中,document.db结构如下:   姓名,年龄,职称   怎么办呢?现在通过使用delphi编程,很好地解决了这个难题。Delphi提供了许多功能强大,丰富的字符处理函数和过程,常用的有:   ① function Length(S:String):Integer  //返回串的长度   ② function Copy(S:String; Index,Count: Integer):String   //给出一个字符串中串的拷贝   ③ function Pos(Substr:String; S:String); Integer     //查找子串在字符串中的位置   ④ Procedure Delete(Var S:String; Index,Count: Integer);   //从一个字符串中去除子串   利用Delphi提供的已有函数和过程基础上编制自己的三个函数,实现了纯文本格式资料转入数据库功能。只要Delphi支持的数据库都可以支持。   Document.txt中每行数据为一个字符串,字符串中每个被分割的数据为一个字段,分割每个字段的字符为分割符,这里是逗号,也可以是、;#等符号。具体思想是:先将字符串进行调整,然后把串中每个字符同分割符比较,将不是分割符的字符追加到MyStr串中,最后得到一个字段的内容。通过一个循环,就可以将一个字符串分成几个字段。   Function GetSubStr(var aString:string; SepChar:String): String;   //得到字符串中一个子串   因要改变参数aString的值,所以将它用var定义。   Function GetSubStrNum(aString, SepChar: String): Integer;   //计算一个字符串要被分割成几个字段。   参数:aString是所需分割的一个字符串,   SepChar是分割符。
      Function GetSubStrNum(aString:String;SepChar:String):integer;
      var
      i:Integer;
      StrLen:Integer;
      Num:Integer;
      begin
      StrLen:=Length(aString);
      Num:=0;
      For i:=1 to StrLen do
      If Copy(aString,i,1) = SepChar then
      Num:=Num+1;
      result:=Num;
      end;
      Function GetSubStr(var aString:String;SepChar:String):String;
      var
      Mystr:String;
      StrLen:Integer;
      SepCharPos:Integer;
      begin
      StrLen:=Length(aString);
      SepCharPos:=Pos(SepChar,aString); //计算分割符在子串中的位置
      MyStr:=Copy(aString,1,SepCharPos-1); //将分割符前所有字符放到mystr串中
      Delete(aString,1,SepCharPos); //除去分割符和分割符前的子串
      GetSubStr:=MyStr; //返回一个字段
      end;   有了上面三个函数,现在介绍一下具体的应用:   ① 首先建立一个窗体Forml,加入一个RichEditl(或Menol),一个按钮Buttonl和一个Tablel,设置Tablel的属性:   Tablell.DataBaseName:= 'c:\test';   Tablell.TableName:= 'document.db';   ② 分别加入以下程序:   const
      SepChar=',' ;
      procedure TForm1.FormCreate(Sender: TObject);
      begin
      RichEdit1.Lines.LoadFromFile('c:\test\test.txt');
      end;
      procedure TForm1.Button1Click(Sender: TObject);
      var
      i,j,num:Integer;
      MyLine:String;
      item:array[1..3] of string;
      begin
      For i:=0 to RichEdit1.Lines.Count-1 do
      begin
      MyLine:=Richedit1.Lines[i];
      num:=GetSubStrNum(myline,SepChar);
      for j:=1 to num do
      item[j]:=GetSubStr(myline,SepChar);
      table1.open;
      with table1 do
      begin
      table1.insert;
      table1name.Asstring:=item[1];
      table1age.Asinteger:=strtoint(item[2]);
      table1title.Asstring:=item[3];
      table1.post;
      end;
      table1.close;
      end;
      end; 
      

  4.   

    去看help,这是最好的书.我就是这么学的.