打印本文 打印本文 关闭窗口 关闭窗口
DELPHI常用函数集及简要范例
作者:武汉SEO闵涛  文章来源:敏韬网  点击数19874  更新时间:2009/4/23 18:30:33  文章录入:mintao  责任编辑:mintao
nbsp;    Rewrite(F);
     Write(F,Rec);

     Rec.pp_No:=''''0002'''';
     Rec.pp_Sum:=58.2;
     Write(F,Rec);

     Rec.pp_No:=''''0003'''';
     Rec.pp_Sum:=258.242;
     Write(F,Rec);

     seek(F,1);
     Read(F,Rec2);

     seek(F,1);
     Truncate(F);  {删除,只剩第0笔}

     Canvas.TextOut(5,10,Rec2.pp_No);
     Canvas.TextOut(5,30,Rec2.pp_Name);
     Canvas.TextOut(5,50,Format(''''%d'''',[Rec2.pp_Age]));
     Canvas.TextOut(5,70,Format(''''%f'''',[Rec2.pp_Sum]));

     CloseFile(F);
   end;

结果  pp_No存入6 Bytes
   pp_Name存入11 Bytes
   pp_Age存入4 Bytes(Integer 4 Bytes)
   pp_Sum存入8 Bytes(Double 8 Bytes)

   整个Record以16的倍数存档.
EXAMPLE
var F: TextFile;
begin
  AssignFile(F, ''''NEWFILE.$$$'''');
  Rewrite(F);
  Writeln(F, ''''Just created file with this text in it...'''');
  CloseFile(F);
end;
-----------------------------------------------------------------------------
Seek    移动档案指标.
-----------------------------------------------------------------------------
Unit  System
函数原型 procedure Seek(var F; N: Longint);
说明  Seek从0开始.
Example
var
   f: file of Byte;
   size : Longint;
   S: string;
   y: Integer;
 begin
   if OpenDialog1.Execute then
   begin
     AssignFile(f, OpenDialog1.FileName);
     Reset(f);
     size := FileSize(f);
     S := ''''File size in bytes: '''' + IntToStr(size);
     y := 10;
     Canvas.TextOut(5, y, S);
     y := y + Canvas.TextHeight(S) + 5;
     S := ''''Seeking halfway into file...'''';
     Canvas.TextOut(5, y, S);
     y := y + Canvas.TextHeight(S) + 5;
     Seek(f,size div 2);
     S := ''''Position is now '''' + IntToStr(FilePos(f));
     Canvas.TextOut(5, y, S);
     CloseFile(f);
   end;
 end;
## FileSize, Seek, FilePos Example
-----------------------------------------------------------------------------
Truncate   将目前档案指标位置之後的档案内容全部删除.
-----------------------------------------------------------------------------
Unit  System
函数原型 procedure Truncate(var F);
范例  
var

   f: file of Integer;
   i,j: Integer;
 begin
   AssignFile(f,''''TEST.INT'''');
   Rewrite(f);
   for i := 1 to 6 do
     Write(f,i);
   Writeln(''''File before truncation:'''');
   Reset(f);
   while not Eof(f) do
   begin
     Read(f,i);
     Writeln(i);
   end;
   Reset(f);
   for i := 1 to 3 do
     Read(f,j); { Read ahead 3 records }
   Truncate(f); { Cut file off here }

   Writeln;
   Writeln(''''File after truncation:'''');
   Reset(f);
   while not Eof(f) do
   begin
     Read(f,i);
     Writeln(i);
   end;
   CloseFile(f);
   Erase(f);
 end;
-----------------------------------------------------------------------------
FilePos   传回目前档案的位置.
-----------------------------------------------------------------------------
Unit  System
函数原型 function FilePos(var F): Longint
说明  F 不可为 Text File
   档头 :FilePos(F):=0;
   档尾 :Eof(F):=True;
范例  var
     f: file of Byte;
     S: string;
   begin
     S:= ''''c:\ka\abc.txt'''';
     AssignFile(f, S);
     Reset(f);
     Seek(f,1);
     Label1.Caption := ''''现在位置 : '''' + IntToStr(FilePos(f));
   end;
Example
var
   f: file of Byte;
   size : Longint;
   S: string;
   y: Integer;
 begin
   if OpenDialog1.Execute then
   begin
     AssignFile(f, OpenDialog1.FileName);
     Reset(f);
     size := FileSize(f);
     S := ''''File size in bytes: '''' + IntToStr(size);
     y := 10;
     Canvas.TextOut(5, y, S);
     y := y + Canvas.TextHeight(S) + 5;
     S := ''''Seeking halfway into file...'''';
     Canvas.TextOut(5, y, S);

     y := y + Canvas.TextHeight(S) + 5;
     Seek(f,size div 2);
     S := ''''Position is now '''' + IntToStr(FilePos(f));
     Canvas.TextOut(5, y, S);
     CloseFile(f);
   end;
 end;
##FileSize, Seek, FilePos Example
-----------------------------------------------------------------------------
FileSize   档案长度.
-----------------------------------------------------------------------------
Unit  System
函数原型 function FileSize(var F): Integer;
说明  F 不可为 Text File
   如果F为record file,则传回record数,
   否则传回Byte数.
## FileSize, Seek, FilePos Example
-----------------------------------------------------------------------------
Eof     测试档案是否结束.
-----------------------------------------------------------------------------
Unit  System
函数原型 function Eof(var F): Boolean;
函数原型 function Eof [ (var F: Text) ]: Boolean;
范例  var
     F1, F2: TextFile;
     Ch: Char;
   begin
     if OpenDialog1.Execute then
    begin
      AssignFile(F1, OpenDialog1.Filename);
      Reset(F1);
      if SaveDialog1.Execute then
     begin
       AssignFile(F2, OpenDialog1.Filename);
       Rewrite(F2);
       while not Eof(F1) do
      begin
       Read(F1, Ch);
       Write(F2, Ch);
      end;
       CloseFile(F2);
     end;
      CloseFile(F1);
    end;
   end;
Example
var

  F1, F2: TextFile;
  Ch: Char;
begin
  if OpenDialog1.Execute then begin
    AssignFile(F1, OpenDialog1.Filename);
    Reset(F1);
    if SaveDialog1.Execute then begin
      AssignFile(F2, SaveDialog1.Filename);
      Rewrite(F2);
      while not Eof

 << 上一页  [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]  ...  下一页 >> 

打印本文 打印本文 关闭窗口 关闭窗口