分享

DELPHI常用函数集及简要范例_Delphi_开发学院

 天河乘浪 2011-03-29
DELPHI常用函数集及简要范例时间:2009-10-29 09:16:06来源:网络 作者:未知 点击:111次
abs(x)    绝对值
arctan(x) 反正切
cos(x)    传回馀弦函数值
exp(x)    e的x次幂
frac(x)   取小数部分
int(x)    取整
ln(x)     自然对数
sin(x)    传回正弦函数值
sqr(x)    x*x
sqrt(x)   平方根
其它
pred(x)   pred('D')='C', pred(true)=1;
succ(x)   succ('Y')='Z', succ(pred(x))=x
ord(x)    求x在字符集中的序号,如ord('A')=65
chr(x)    chr(65)='A'
round(x)  四舍五入
trunc(x)  trunc(4.8)=4,trunc('-3.6')=-3
upcase(x) upcase('a')='A'
hi(I)     hi($2A30)=$2A
lo(I)     lo($2A30)=$30
random(n) 产生[0,n)间的随机整数
sizeof(name)  求出某类型或变量在内存中占用的字节数
swap(num)     swap($3621)=$2136
================================
Arithmetic routines  数学运算
================================
Abs    绝对值
---------------------------------------------------------
Unit  System
函数原型 function Abs(X);
说明  X为整数or实数.
范例
var
  r: Real;
  i: Integer;
begin
  r := Abs(-2.3);  { 2.3 }
  i := Abs(-157);  { 157 }
end;
----------------------------------------------------------
ArcTan   三角函数
----------------------------------------------------------
范例
Cos
var R: Extended;
begin
  R := Cos(Pi);
end;
----------------------------------------------------------
Sin
----------------------------------------------------------
范例
var
  R: Extended;
  S: string;
begin
  R := Sin(Pi);
  Str(R:5:3, S);
  Canvas.TextOut(10, 10, 'The Sin of Pi is ' + S);
end;
----------------------------------------------------------
Unit  System
函数原型 function ArcTan(X: Extended): Extended;
函数原型 function Cos(X: Extended): Extended;
函数原型 function Sin(X: Extended): Extended;
----------------------------------------------------------
说明  X为径度.
   Tan(x) === Sin(x) / Cos(x)
   ArcSin(x) = ArcTan (x/sqrt (1-sqr (x)))
   ArcCos(x) = ArcTan (sqrt (1-sqr (x)) /x)
   左边这三个不是函数,而是右边运算求得.
范例
var
  R: Extended;
begin
  R := ArcTan(Pi);
end;
范例  var
     R: Extended;
     S: string;
   begin
     R := Sin(Pi);
     Str(R:5:3, S);
     Canvas.TextOut(10, 10, 'The Sin of Pi is ' + S);
   end;
----------------------------------------------------------
Frac    求一个实数的小数部份
----------------------------------------------------------
Unit  System
函数原型 function Frac(X: Real): Real;
说明  X为实数.
范例  var
     R: Real;
   begin
     R := Frac(123.456);  { 0.456 }
     R := Frac(-123.456);  { -0.456 }
   end;
------------------------------------------
Int     求一个实数的整数部份
------------------------------------------
Unit  System
函数原型 function Int(X: Real): Real;
说明  X为实数.
范例  var
     R: Real;
   begin
     R := Int(123.456);  { 123.0 }
     R := Int(-123.456);  { -123.0 }
   end;
------------------------------------------
Pi     就是数学的Pi
------------------------------------------
Unit  System
函数原型 function Pi: Extended;
说明  它是一个函数,但我们就把它当作是预设的变数来用吧!
   Pi= 3.1415926535897932385
------------------------------------------
Sqr     X的平方
-----------------------------------------
范例
var
  S, Temp: string;
begin
   Str(Sqr(5.0):3:1, Temp);
   S := '5 squared is ' + Temp + #13#10;
   Str(Sqrt(2.0):5:4, Temp);
   S := S + 'The square root of 2 is ' + Temp;
   MessageDlg(S, mtInformation, [mbOk], 0);
end;
-----------------------------------------
Sqrt    X的平方根
------------------------------------------
Unit  System
函数原型 function Sqr(X: Extended): Extended;
函数原型 function Sqrt(X: Extended): Extended;
范例  var
     S, Temp: string;
   begin
     Str(Sqr(5.0):3:1, Temp);
     S := '5 squared is ' + Temp + #13#10;
     Str(Sqrt(2.0):5:4, Temp);
     S := S + 'The square root of 2 is ' + Temp;
     MessageDlg(S, mtInformation, [mbOk], 0);
   end;
------------------------------------------
Ln     自然对数
------------------------------------------
范例
var
   e : real;
   S : string;
begin
   e := Exp(1.0);
   Str(ln(e):3:2, S);
   S := 'e = ' + FloatToStr(e) + '; ln(e) = ' + S;
   Canvas.TextOut(10, 10, S);
end;
----------------------------------------
Exp    指数
------------------------------------------
Unit  System
函数原型 function Ln(X: Real): Real;
函数原型 function Exp(X: Real): Real;
范例  var
     e : real;
     S : string;
   begin
     e := Exp(1.0);
     Str(ln(e):3:2, S);
     S := 'ln(e) = ' + S;
     Canvas.TextOut(10, 10, S);
   end;
------------------------------------------
 Date and time routines 日期及时间函数
------------------------------------------
Date    传回目前的日期
Unit  SysUtils
函数原型 function Date: TDateTime;
范例  procedure TForm1.Button1Click(Sender: TObject);
   begin
     Label1.Caption := 'Today is  ' + DateToStr(Date);
   end;
------------------------------------------
DateTimeToStr 日期时间转换成内定型字串(1996/12/20 09:12:20 PM)
------------------------------------------
Unit  SysUtils
函数原型 function DateTimeToStr(DateTime: TDateTime): string;
范例  procedure TForm1.Button1Click(Sender: TObject);
   begin
     Label1.Caption := DateTimeToStr(Now);
   end;
--------------------------------------------------------
DateTimeToString 日期时间转换成自定型字串
-------------------------------------------------------
Unit  SysUtils
函数原型 procedure DateTimeToString(var Result: string; const Format:
    string; DateTime: TDateTime);
范例  procedure TForm1.FormCreate(Sender: TObject);
   var
     s:string;
   begin
     DateTimeToString(s,'dddd,mmmm d,yyyy  "at" hh:mm
    AM/PM',Now);
     Label1.Caption :=s;
   end;
结果  星期五,十二月 20,1996 at 09:20 PM
-----------------------------------------------------------------------------
****  Format格式叁考下面.FormatDateTime.
--------------------------------------------------------
DateToStr   日期转换成内定型字串.(1996/12/20)
--------------------------------------------------------
Unit  SysUtils
函数原型  function DateToStr(Date: TDateTime): string;
范例
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := 'Today is  ' + DateToStr(Date);
end;
# Date, DateToStr Example
--------------------------------------------------------
DayOfWeek  求叁数日期是星期几.
--------------------------------------------------------
Unit  SysUtils
函数原型 function DayOfWeek(Date: TDateTime): Integer;
说明  传回值是一整数,1~7.
   星期日为1.
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  ADate: TDateTime;
  days: array[1..7] of string;
begin
  days[1] := 'Sunday';
  days[2] := 'Monday';
  days[3] := 'Tuesday';
  days[4] := 'Wednesday';
  days[5] := 'Thursday';
  days[6] := 'Friday';
  days[7] := 'Saturday';
  ADate := StrToDate(Edit1.Text);
  ShowMessage(Edit1.Text + ' is a ' + days[DayOfWeek(ADate)];
end;
# StrToDate, DayOfWeek Example
--------------------------------------------------------
DecodeDate  将TDateTime型态的日期变数,转为Word型态.
--------------------------------------------------------
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  Present: TDateTime;
  Year, Month, Day, Hour, Min, Sec, MSec: Word;
 begin
  Present:= Now;
  DecodeDate(Present, Year, Month, Day);
  Label1.Caption := 'Today is Day ' + IntToStr(Day) + ' of Month '
    + IntToStr(Month) + ' of Year ' + IntToStr(Year);
  DecodeTime(Present, Hour, Min, Sec, MSec);
  Label2.Caption := 'The time is Minute ' + IntToStr(Min) + ' of Hour '
    + IntToStr(Hour);
end;
# DecodeDate, DecodeTime Example
--------------------------------------------------------
DecodeTime  将TDateTime型态的时间变数,转为Word型态.
--------------------------------------------------------
Unit  SysUtils
函数原型 procedure DecodeDate(Date: TDateTime; var Year, Month,Day: Word);
函数原型 procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec,MSec: Word);
范例  procedure TForm1.Button1Click(Sender: TObject);
   var
     Present: TDateTime;
     Year, Month, Day, Hour, Min, Sec, MSec: Word;
   begin
     Present:= Now;
     DecodeDate(Present, Year, Month, Day);
     Label1.Caption := 'Today is Day ' + IntToStr(Day) + ' of
    Month ' + IntToStr(Month) + ' of Year ' + IntToStr(Year);
     DecodeTime(Present, Hour, Min, Sec, MSec);
     Label2.Caption := 'The time is Minute ' +IntToStr(Min) + ' of
    Hour ' + IntToStr(Hour);
   end;
--------------------------------------------------------
EncodeDate  将Word型态的日期变数,转为TDateTime型态.
--------------------------------------------------------
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  MyDate: TDateTime;
begin
  MyDate := EncodeDate(StrToInt(Edit1.Text), StrToInt(Edit2.Text), StrToInt(Edit3.Text));
  Label1.Caption := DateToStr(MyDate);
end;
-------------------------------------------------------
EncodeTime  将Word型态的时间变数,转为TDateTime型态.
--------------------------------------------------------
Unit  SysUtils
函数原型 function EncodeDate(Year, Month, Day: Word): TDateTime;
函数原型 function EncodeTime(Hour, Min, Sec, MSec: Word):
    TDateTime;
范例  procedure TForm1.Button1Click(Sender: TObject);
   var
     MyDate: TDateTime;
     MyTime: TDateTime;
   begin
     MyDate := EncodeDate(83, 12, 31);
     Label1.Caption := DateToStr(MyDate);
     MyTime := EncodeTime(0, 45, 45, 7);
     Label2.Caption := TimeToStr(MyTime);
   end;
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  MyTime: TDateTime;
begin
  MyTime := EncodeTime(0, 45, 45, 7);
  Label1.Caption := TimeToStr(MyTime);
end;
--------------------------------------------------------
FormatDateTime 将日期时间依Format的格式转换给一字串.
--------------------------------------------------------
Unit  SysUtils
函数原型 function FormatDateTime(const Format: string; DateTime:
    TDateTime): string;
****  类似DateTimeToString.
Format格式
c  内定值ShortDateFormat的格式.(1996/12/20 09:20:15 PM).
d  日期,前面不补0.(1-31)
dd  日期,前面补0.(01-31)
ddd  星期.(星期日).
Dddd  中文2.01版,同上.
ddddd 日期.(1996/12/20)
dddddd 日期.(1996年12月20日)
m  月份,前面不补0.(1-12)
mm  月份,前面补0.(01-12)
mmm 中文显示.(十二月)
mmmm 中文2.01版,同上.
Yy  年度.(00-99)
yyyy  年度.(0000-9999)
h  小时.(0-23)
hh  小时.(00-23)
n  分钟.(0-59)
nn  分钟.(00-59)
s  秒钟.(0-59)
ss  秒钟.(00-59)
t  时间.(09:20 PM)
tt  时间.(09:20:15 PM)
am/pm 单独显示am or pm.(若大写,则显示大写)
a/p  单独显示a or p.
范例
The following example assigns 'The meeting is on Wednesday, February 15, 1995 at 10:30 AM' to the string variable S.
S := FormatDateTime('"The meeting is on " dddd, mmmm d, yyyy, " at " hh:mm AM/PM',
   StrToDateTime('2/15/95 10:30am'));//???
--------------------------------------------------------
Now    传回目前的日期时间.
--------------------------------------------------------
Unit  SysUtils
函数原型 function Now: TDateTime;
范例
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := DateTimeToStr(Now);
end;
# Now, DateTimeToStr Example
--------------------------------------------------------
StrToDate   将字串转为TDateTime型态的日期.
--------------------------------------------------------
Unit  SysUtils
函数原型 function StrToDate(const S: string): TDateTime;
范例  procedure TForm1.Button1Click(Sender: TObject);
   var
     ADate: TDateTime;
   begin
     ADate := StrToDate(Edit1.Text);
     Label1.Caption := DateToStr(ADate);
   end;
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  ADate: TDateTime;
  days: array[1..7] of string;
begin
  days[1] := 'Sunday';
  days[2] := 'Monday';
  days[3] := 'Tuesday';
  days[4] := 'Wednesday';
  days[5] := 'Thursday';
  days[6] := 'Friday';
  days[7] := 'Saturday';
  ADate := StrToDate(Edit1.Text);
  ShowMessage(Edit1.Text + ' is a ' + days[DayOfWeek(ADate)];
end;
# StrToDate, DayOfWeek Example
--------------------------------------------------------
StrToDateTime 将字串转为TDateTime型态的日期时间.
--------------------------------------------------------
Unit  SysUtils
函数原型 function StrToDateTime(const S: string): TDateTime;
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  ADateAndTime: TDateTime;
begin
  ADateAndTime := StrToDateTime(Edit1.Text);
  Table1.FieldByName('TimeStamp').AsDateTime := ADateAndTime;
end;
--------------------------------------------------------
StrToTime   将字串转为TDateTime型态的时间.
--------------------------------------------------------
Unit  SysUtils
函数原型 function StrToTime(const S: string): TDateTime;
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  ATime: TDateTime;
begin
  ATime := StrToTime(Edit1.Text);
  if ATime < 0.50 then
    ShowMessage('Good Morning')
  else
    ShowMessage('Good Afternoon');
end;
--------------------------------------------------------
Time    传回目前的时间.
--------------------------------------------------------
Unit  SysUtils
函数原型 function Time: TDateTime;
范例
procedure TForm1.Timer1Timer(Sender: TObject);
var
  DateTime : TDateTime;
  str : string;
begin
  DateTime := Time;  // store the current date and time
  str := TimeToStr(DateTime); // convert the time into a string
  Caption := str;  // display the time on the form's caption
  { Note This could have been done with the following line of code:
    Caption := TimeToStr(Time); }
end;
# Time, TimeToStr Example
--------------------------------------------------------
TimeToStr   时间转换成内定型字串.(09:20:15 PM)
--------------------------------------------------------
Unit  SysUtils
函数原型 function TimeToStr(Time: TDateTime): string;
 GetMem procedure  配置记忆体程序
New    配置指位器P的记忆体空间,
     大小为P所指型态的大小.
--------------------------------------------------------
Dispose   释放New所配置的记忆体.
--------------------------------------------------------
Unit  System
函数原型 procedure New(var P: Pointer);
函数原型 procedure Dispose(var P: Pointer);
范例  type
     PListEntry = ^TListEntry;
     TListEntry = record
     Next: PListEntry;
     Text: string;
     Count: Integer;
   end;
   var
     List, P: PListEntry;
   begin
     ...
     New(P);
     P^.Next := List;
     P^.Text := 'Hello world';
     P^.Count := 1;
     List := P;
     ...
     Dispose(P);
     …
   end;
范例
type
  Str18 = string[18];
 var
  P: ^Str18;
begin
  New(P);
  P^ := 'Now you see it...';
  Dispose(P); { Now you don't... }
end;
--------------------------------------------------------
GetMem   配置指位器P的记忆体空间,大小可自行设定.
--------------------------------------------------------
范例
var
  F: file;
  Size: Integer;
  Buffer: PChar;
begin
  AssignFile(F, 'test.txt');
  Reset(F, 1);
  try
    Size := FileSize(F);
    GetMem(Buffer, Size);
    try
      BlockRead(F, Buffer^, Size);
      ProcessFile(Buffer, Size);
    finally
      FreeMem(Buffer);
    end;
  finally
    CloseFile(F);
  end;
end;
--------------------------------------------------------
FreeMem   释放GetMem所配置的记忆体.
--------------------------------------------------------
Unit  System
函数原型 procedure GetMem(var P: Pointer; Size: Integer);
函数原型 procedure FreeMem(var P: Pointer[; Size: Integer]);
范例  var
     F: file;
     Size: Integer;
     Buffer: PChar;
   begin
     AssignFile(F, 'test.txt');
     Reset(F, 1);
     try
    Size := FileSize(F);
    GetMem(Buffer, Size);
    try
     BlockRead(F, Buffer^, Size);
     ProcessFile(Buffer, Size);
    finally
     FreeMem(Buffer);
    end;
     finally
    CloseFile(F);
     end;
   end;
====================================
 File-management routines 档案管理常式
====================================
--------------------------------------------------------
ChangeFileExt 变更档案的副档名
--------------------------------------------------------
Unit  SysUtils
函数原型 function ChangeFileExt(const FileName, Extension: string):
    string;
范例  procedure TForm1.Button1Click(Sender: TObject);
   var
     S: String;
     P1:String;
     P2:String;
   begin
     P1:='abc.txt';
     P2:='.ini';
     S := ChangeFileExt(P1,P2);
     Label1.Caption:=S;
   end;
结果  S== 'abc.ini'
   P1:='abc'
   P2:='.ini'
   S== 'abc.ini'
   P1:='c:\windows\abc.txt'
   P2:='.ini'
   S=='c:\windows\abc.ini'
   P1:='abc.txt'
   P2:='ini'
   S=='abcini'
   **注意:P2的第一位元必须有一点'.ini'
范例
procedure TForm1.ConvertIcon2BitmapClick(Sender: TObject);
var
  s : string;
  Icon: TIcon;
begin
  OpenDialog1.DefaultExt := '.ICO';
  OpenDialog1.Filter := 'icons (*.ico)|*.ICO';
  OpenDialog1.Options := [ofOverwritePrompt, ofFileMustExist, ofHideReadOnly ];
  if OpenDialog1.Execute then
  begin
    Icon := TIcon.Create;
    try
      Icon.Loadfromfile(OpenDialog1.FileName);
      s:= ChangeFileExt(OpenDialog1.FileName,'.BMP');
      Image1.Width := Icon.Width;
      Image1.Height := Icon.Height;
      Image1.Canvas.Draw(0,0,Icon);
      Image1.Picture.SaveToFile(s);
      ShowMessage(OpenDialog1.FileName + ' Saved to ' + s);
    finally
      Icon.Free;
    end;
  end;
end;
#  SaveToFile, Create, Height, Width, Canvas, ChangeFileExt example
--------------------------------------------------------
ExpandFileName 将档案名称加在目前所在之路径全名之後
--------------------------------------------------------
Unit  SysUtils
函数原型 function ExpandFileName(const FileName: string): string;
说明  设目前目录为 c:\windows   档案名称为  abc.txt
   则结果为  c:\windows\abc.txt
****  此函数并不是求abc.txt的所在路径.
范例  procedure TForm1.Button1Click(Sender: TObject);
   var
     S: String;
   begin
     S:=ExpandFileName('abc.txt');
     Label1.Caption:=S;
   end;
范例
procedure TForm1.Button1Click(Sender: TObject)
begin
  ListBox1.Items.Add(ExpandFileName(Edit1.Text));
end;
------------------------------------------------------------------
DirectoryExists   目录是否存在------------------------------------------------------------------
Unit
FileCtrl
uses FileCtrl;
procedure TForm1.Button1Click(Sender: TObject);
begin
  if not DirectoryExists('c:\temp') then
    if not CreateDir('C:\temp') then
    raise Exception.Create('Cannot create c:\temp');
end;
--------------------------------------------------------
ForceDirectories    目录
---------------------------------------------------------
Unit    FileCtrl
函数原型     function ForceDirectories(Dir: string): Boolean;
procedure TForm1.Button1Click(Sender: TObject);
var
  Dir: string;
begin
  Dir := 'C:\APPS\SALES\LOCAL';
  if DirectoryExists(Dir) then
    Label1.Caption := Dir + ' was created'
end;
--------------------------------------------------------
ExpandUNCFileName 同上(只是得到网路上的路径)
--------------------------------------------------------
Unit  SysUtils
函数原型 function ExpandUNCFileName(const FileName: string):string;
ExtractFileDir   分析字串中的路径
Unit SysUtils
函数原型 function ExtractFileDir(const FileName: string): string;
说明  设S字串为 c:\windows\abc.txt
   则结果为 c:\windows
****  功能在於由任何部份传来的叁数,加以分析它的路径
范例  procedure TForm1.Button1Click(Sender: TObject);
   var
     S: String;
     P1:String;
   begin
     P1:='c:\windows\abc.txt';
     S:=ExtractFileDir(P1);
     Label1.Caption:=S;
   end;
   S=='c:\windows'
   P1:='abc.txt'
   S=='
   P1:='c:abc.txt'
   S=='c:'
   P1:='c:\abc.txt'
   S=='c:\'
--------------------------------------------------------
ExtractFileDrive 分析字串中的磁碟机名称
--------------------------------------------------------
Unit  SysUtils
函数原型 function ExtractFileDrive(const FileName: string): string;
****  功能同上,只是传回磁碟机名称.
范例  procedure TForm1.Button1Click(Sender: TObject);
   var
     S: String;
     P1:String;
   begin
     P1:='c:\windows\abc.txt';
     S:=ExtractFileDrive(P1);
     Label1.Caption:=S;
   end;
   S:='c:'
   P1:='abc.txt'
   S=='
--------------------------------------------------------
ExtractFileExt  分析字串中的档案名称的副档名
--------------------------------------------------------
Unit  SysUtils
函数原型 function ExtractFileExt(const FileName: string): string;
范例  procedure TForm1.Button1Click(Sender: TObject);
   var
     S: String;
     P1:String;
   begin
     P1:='c:\windows\abc.txt';
     S:=ExtractFileExt(P1);
     Label1.Caption:=S;
   end;
   S=='.txt'
   P1:='c:\windows\abc'
   S=='
范例 MyFilesExtension := ExtractFileExt(MyFileName);
--------------------------------------------------------
ExtractFileName 分析字串中的档案名称(只传回档案名称)
--------------------------------------------------------
Unit  SysUtils
函数原型 function ExtractFileName(const FileName: string): string;
范例  procedure TForm1.Button1Click(Sender: TObject);
   var
     S: String;
     P1:String;
   begin
     P1:='c:\windows\abc.txt';
     S:=ExtractFileName(P1);
     Label1.Caption:=S;
   end;
   S=='abc.txt'
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  BackupName: string;
  FileHandle: Integer;
  StringLen: Integer;
  X: Integer;
  Y: Integer;
begin
  if SaveDialog1.Execute then
  begin
    if FileExists(SaveDialog1.FileName) then
    begin
      BackupName := ExtractFileName(SaveDialog1.FileName);
      BackupName := ChangeFileExt(BackupName, '.BAK');
      if not RenameFile(SaveDialog1.FileName, BackupName) then
        raise Exception.Create('Unable to create backup file.');
    end;
    FileHandle := FileCreate(SaveDialog1.FileName);
    { Write out the number of rows and columns in the grid. }
    FileWrite(FileHandle,
      StringGrid1.ColCount, SizeOf(StringGrid1.ColCount));
    FileWrite(FileHandle,
      StringGrid1.RowCount, SizeOf(StringGrid1.RowCount));
    for X := 0 to StringGrid1.ColCount ? 1 do
    begin
      for Y := 0 to StringGrid1.RowCount ? 1 do
      begin
        { Write out the length of each string, followed by the string itself. }
        StringLen := Length(StringGrid1.Cells[X,Y]);
        FileWrite(FileHandle, StringLen, SizeOf(StringLen));
        FileWrite(FileHandle,
          StringGrid1.Cells[X,Y], Length(StringGrid1.Cells[X,Y]);
      end;
    end;
    FileClose(FileHandle);
  end;
end;
##FileExists, RenameFile, FileCreate, FileWrite, FileClose, ExtractFileName Example
--------------------------------------------------------
ExtractFilePath 分析字串中的路径
--------------------------------------------------------
Unit  SysUtils
函数原型 function ExtractFilePath(const FileName: string): string;
说明  设S字串为 c:\windows\abc.txt
   则结果为 c:\windows范例  procedure TForm1.Button1Click(Sender: TObject);
   var
     S: String;
     P1:String;
   begin
     P1:='c:\windows\abc.txt';
     S:=ExtractFilePath(P1);
     Label1.Caption:=S;
   end;
范例
begin
  with Session do
  begin
    ConfigMode := cmSession;
  try
    AddStandardAlias('TEMPDB', ExtractFilePath(ParamStr(0)), 'PARADOX');
  finally
      ConfigMode := cmAll;
  end;
end;
##ConfigMode, AddStandardAlias, ExtractFilePath example
--------------------------------------------------------
FileSearch   寻找档案在磁碟机中的正确路径
--------------------------------------------------------
Unit  SysUtils
函数原型 function FileSearch(const Name, DirList: string): string;
范例  var
     s:string;
   begin
     s:= FileSearch('abc.txt', 'c:\window\');
     Label1.Caption:=s;
   end;
说明  找到传回c:\window\abc.txt 找不到传回空字串.
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  buffer: array [0..255] of char;
  FileToFind: string;
begin
  GetWindowsDirectory(buffer, SizeOf(buffer));
  FileToFind := FileSearch(Edit1.Text, GetCurrentDir + ';' + buffer);
  if FileToFind = ' then
    ShowMessage('Couldn't find ' + Edit1.Text + '.')
  else
    ShowMessage('Found ' + FileToFind + '.');
end;
##FileSearch, ShowMessage Example
--------------------------------------------------------
FileAge   传回档案的日期及时间(DOS型态).
--------------------------------------------------------
Unit  SysUtils
函数原型 function FileAge(const FileName: string): Integer;
说明  就是档案总管中档案内容裹面的修改日期.
范例  procedure TForm1.Button1Click(Sender: TObject);
   var
     S: String;
     FileDate1:Integer;
     DateTime1:TDateTime;
   begin
     FileDate1 := FileAge('c:\delphi_d\delphi_help1.txt');
     DateTime1 := FileDateToDateTime(FileDate1);
     S := DateTimeToStr(DateTime1);
     Label1.Caption:=S;
   end;
--------------------------------------------------------
FileDateToDateTime 将DOS型态的日期时间转换为TDateTime型态.
--------------------------------------------------------
Unit  SysUtils
函数原型 function FileDateToDateTime(FileDate: Integer):TDateTime;
-----------------------------------------------------------------------------
DateTimeToFileDate 将TDateTime型态的日期时间转换为 DOS型态.
-----------------------------------------------------------------------------
Unit  SysUtils
函数原型 function DateTimeToFileDate(DateTime: TDateTime):Integer;
FileGetDate  传回档案的日期及时间(DOS型态).
Unit  SysUtils
函数原型 function FileGetDate(Handle: Integer): Integer;
说明  就是档案总管中档案内容裹面的修改日期.
范例  procedure TForm1.Button1Click(Sender: TObject);
   var
     FileHandle:Integer;
     S: String;
     FileDate1:Integer;
     DateTime1:TDateTime;
   begin
     FileHandle :=FileOpen('c:\delphi_d\delphi_help2.txt',
    fmOpenReadWrite);
     if FileHandle > 0 then
    Begin
     FileDate1 := FileGetDate(FileHandle);
     DateTime1 := FileDateToDateTime(FileDate1);
     S := DateTimeToStr(DateTime1);
     FileClose(FileHandle);
    End
     else
     S := 'Open File Error';
     Label1.Caption:=S;
   end;
-----------------------------------------------------------------------------
FileSetDate  设定档案的日期及时间(DOS型态).
-----------------------------------------------------------------------------
Unit  SysUtils
函数原型 function FileSetDate(Handle: Integer; Age: Integer): Integer;
说明  传回值为0表示成功.
-----------------------------------------------------------------------------
DeleteFile   删除档案
-----------------------------------------------------------------------------
Unit  SysUtils
函数原型 function DeleteFile(const FileName: string): Boolean;
范例 一 DeleteFile('DELETE.ME');
范例 二           if FileExists(FileName) then
                        if MessageDlg('Do you really want to delete ' + 
                           ExtractFileName(FileName) + '?'), []) = IDYes then
                            DeleteFile(FileName);
##FileExists, DeleteFile Example
-----------------------------------------------------------------------------
RenameFile  更改档名
-----------------------------------------------------------------------------
Unit  SysUtils
函数原型 function RenameFile(const OldName, NewName: string):Boolean;
范例              
 procedure TForm1.Button1Click(Sender: TObject);
var
  BackupName: string;
  FileHandle: Integer;
  StringLen: Integer;
  X: Integer;
  Y: Integer;
begin
  if SaveDialog1.Execute then
  begin
    if FileExists(SaveDialog1.FileName) then
    begin
      BackupName := ExtractFileName(SaveDialog1.FileName);
      BackupName := ChangeFileExt(BackupName, '.BAK');
      if not RenameFile(SaveDialog1.FileName, BackupName) then
        raise Exception.Create('Unable to create backup file.');
    end;
    FileHandle := FileCreate(SaveDialog1.FileName);
    { Write out the number of rows and columns in the grid. }
    FileWrite(FileHandle,
      StringGrid1.ColCount, SizeOf(StringGrid1.ColCount));
    FileWrite(FileHandle,
      StringGrid1.RowCount, SizeOf(StringGrid1.RowCount));
    for X := 0 to StringGrid1.ColCount ? 1 do
    begin
      for Y := 0 to StringGrid1.RowCount ? 1 do
      begin
        { Write out the length of each string, followed by the string itself. }
        StringLen := Length(StringGrid1.Cells[X,Y]);
        FileWrite(FileHandle, StringLen, SizeOf(StringLen));
        FileWrite(FileHandle,
          StringGrid1.Cells[X,Y], Length(StringGrid1.Cells[X,Y]);
      end;
    end;
    FileClose(FileHandle);
  end;
end;
-----------------------------------------------------------------------------
DiskFree   磁碟机剩馀空间(Bytes)
-----------------------------------------------------------------------------
Unit  SysUtils
函数原型 function DiskFree(Drive: Byte): Integer;
范例  var
     S: string;
   begin
     S := IntToStr(DiskFree(0) div 1024) + ' Kbytes free.';
     Label1.Caption:=S;
   end;
说明  Drive
   0=目前磁碟机,1=A磁碟机,2=B磁碟机...传回值若为-1,表示磁碟机侦测错误.
范例
var
  S: string;
  AmtFree: Int64;
  Total:   Int64;
begin
  AmtFree := DiskFree(0);
  Total := DiskSize(0);
  S := IntToStr(AmtFree div Total) + 'percent of the space on drive 0 is free: ' (AmtFree div 1024) + ' Kbytes free. ';
  Canvas.TextOut(10, 10, S);
end;
##DiskFree, DiskSize Example
-----------------------------------------------------------------------------
DiskSize   磁碟机空间大小(Bytes)
-----------------------------------------------------------------------------
Unit  SysUtils
函数原型 function DiskSize(Drive: Byte): Integer;
范例  var
     S: string;
   begin
     S := IntToStr(DiskSize(0) div 1024) + ' Kbytes free.';
     Label1.Caption:=S;
   end;
说明  Drive
   0=目前磁碟机,1=A磁碟机,2=B磁碟机....传回值若为-1,表示磁碟机侦测错误.
##DiskFree, DiskSize Example
-----------------------------------------------------------------------------
FileExists   判断档案是否存在.
-----------------------------------------------------------------------------
Unit  SysUtils
函数原型 function FileExists(const FileName: string): Boolean;
类似                FileExists, RenameFile, FileCreate, FileWrite, FileClose, ExtractFileName Example
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  BackupName: string;
  FileHandle: Integer;
  StringLen: Integer;
  X: Integer;
  Y: Integer;
begin
  if SaveDialog1.Execute then
  begin
    if FileExists(SaveDialog1.FileName) then
    begin
      BackupName := ExtractFileName(SaveDialog1.FileName);
      BackupName := ChangeFileExt(BackupName, '.BAK');
      if not RenameFile(SaveDialog1.FileName, BackupName) then
        raise Exception.Create('Unable to create backup file.');
    end;
    FileHandle := FileCreate(SaveDialog1.FileName);
    { Write out the number of rows and columns in the grid. }
    FileWrite(FileHandle,
      StringGrid1.ColCount, SizeOf(StringGrid1.ColCount));
    FileWrite(FileHandle,
      StringGrid1.RowCount, SizeOf(StringGrid1.RowCount));
    for X := 0 to StringGrid1.ColCount ? 1 do
    begin
      for Y := 0 to StringGrid1.RowCount ? 1 do
      begin
        { Write out the length of each string, followed by the string itself. }
        StringLen := Length(StringGrid1.Cells[X,Y]);
        FileWrite(FileHandle, StringLen, SizeOf(StringLen));
        FileWrite(FileHandle,
          StringGrid1.Cells[X,Y], Length(StringGrid1.Cells[X,Y]);
      end;
    end;
    FileClose(FileHandle);
  end;
end;
##FileExists, DeleteFile Example
##FileExists, RenameFile, FileCreate, FileWrite, FileClose, ExtractFileName Example
-----------------------------------------------------------------------------
FileOpen   开档.
-----------------------------------------------------------------------------
Unit  SysUtils
函数原型 function FileOpen(const FileName: string; Mode:
    Integer):Integer;
****  开档失败传回-1.
说明  以下有关档案读取都属低阶,如Dos Int 21h中有关档案的部
   分.
   fmOpenRead   = $0000;
   fmOpenWrite   = $0001;
   fmOpenReadWrite  = $0002;
   fmShareCompat  = $0000;
   fmShareExclusive  = $0010;
   fmShareDenyWrite  = $0020;
   fmShareDenyRead  = $0030;
   fmShareDenyNone  = $0040;
   fmOpenRead   Open for read access only.
   FmOpenWrite   Open for write access only.
   FmOpenReadWrite  Open for read and write access.
   fmShareCompat  Compatible with the way FCBs are
        opened.
   fmShareExclusive  Read and write access is denied.
   fmShareDenyWrite  Write access is denied.
   fmShareDenyRead  Read access is denied.
   fmShareDenyNone  Allows full access for others.
范例
procedure OpenForShare(const FileName: String);
var
  FileHandle : Integer;
begin
  FileHandle := FileOpen(FileName, fmOpenWrite or fmShareDenyNone);
  if FileHandle > 0 then
    {valid file handle}
  else
    {Open error: FileHandle = negative DOS error code}
end;
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  iFileHandle: Integer;
  iFileLength: Integer;
  iBytesRead: Integer;
  Buffer: PChar;
  i: Integer
begin
  if OpenDialog1.Execute then
  begin
    try
      iFileHandle := FileOpen(OpenDialog1.FileName, fmOpenRead);
      iFileLength := FileSeek(iFileHandle,0,2);
      FileSeek(iFileHandle,0,0);
      Buffer := PChar(AllocMem(iFileLength + 1));
      iBytesRead = FileRead(iFileHandle, Buffer, iFileLength);
      FileClose(iFileHandle);
      for i := 0 to iBytesRead-1 do
      begin
        StringGrid1.RowCount := StringGrid1.RowCount + 1;
        StringGrid1.Cells[1,i+1] := Buffer[i];
        StringGrid1.Cells[2,i+1] := IntToStr(Integer(Buffer[i]));
      end;
    finally
      FreeMem(Buffer);
    end;
  end;
end;
##FileOpen, FileSeek, FileRead Example
-----------------------------------------------------------------------------
FileCreate   建档
-----------------------------------------------------------------------------
Unit  SysUtils
函数原型 function FileCreate(const FileName: string): Integer;
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  BackupName: string;
  FileHandle: Integer;
  StringLen: Integer;
  X: Integer;
  Y: Integer;
begin
  if SaveDialog1.Execute then
  begin
    if FileExists(SaveDialog1.FileName) then
    begin
      BackupName := ExtractFileName(SaveDialog1.FileName);
      BackupName := ChangeFileExt(BackupName, '.BAK');
      if not RenameFile(SaveDialog1.FileName, BackupName) then
        raise Exception.Create('Unable to create backup file.');
    end;
    FileHandle := FileCreate(SaveDialog1.FileName);
    { Write out the number of rows and columns in the grid. }
    FileWrite(FileHandle,
      StringGrid1.ColCount, SizeOf(StringGrid1.ColCount));
    FileWrite(FileHandle,
      StringGrid1.RowCount, SizeOf(StringGrid1.RowCount));
    for X := 0 to StringGrid1.ColCount ? 1 do
    begin
      for Y := 0 to StringGrid1.RowCount ? 1 do
      begin
        { Write out the length of each string, followed by the string itself. }
        StringLen := Length(StringGrid1.Cells[X,Y]);
        FileWrite(FileHandle, StringLen, SizeOf(StringLen));
        FileWrite(FileHandle,
          StringGrid1.Cells[X,Y], Length(StringGrid1.Cells[X,Y]);
      end;
    end;
    FileClose(FileHandle);
  end;
end;
##FileExists, RenameFile, FileCreate, FileWrite, FileClose, ExtractFileName Example
-----------------------------------------------------------------------------
FileClose   关档
-----------------------------------------------------------------------------
Unit  SysUtils
函数原型 procedure FileClose(Handle: Integer);
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  BackupName: string;
  FileHandle: Integer;
  StringLen: Integer;
  X: Integer;
  Y: Integer;
begin
  if SaveDialog1.Execute then
  begin
    if FileExists(SaveDialog1.FileName) then
    begin
      BackupName := ExtractFileName(SaveDialog1.FileName);
      BackupName := ChangeFileExt(BackupName, '.BAK');
      if not RenameFile(SaveDialog1.FileName, BackupName) then
        raise Exception.Create('Unable to create backup file.');
    end;
    FileHandle := FileCreate(SaveDialog1.FileName);
    { Write out the number of rows and columns in the grid. }
    FileWrite(FileHandle,
      StringGrid1.ColCount, SizeOf(StringGrid1.ColCount));
    FileWrite(FileHandle,
      StringGrid1.RowCount, SizeOf(StringGrid1.RowCount));
    for X := 0 to StringGrid1.ColCount ? 1 do
    begin
      for Y := 0 to StringGrid1.RowCount ? 1 do
      begin
        { Write out the length of each string, followed by the string itself. }
        StringLen := Length(StringGrid1.Cells[X,Y]);
        FileWrite(FileHandle, StringLen, SizeOf(StringLen));
        FileWrite(FileHandle,
          StringGrid1.Cells[X,Y], Length(StringGrid1.Cells[X,Y]);
      end;
    end;
    FileClose(FileHandle);
  end;
end;
##FileExists, RenameFile, FileCreate, FileWrite, FileClose, ExtractFileName Example
============================================
****  它是以Handle为叁数.
============================================
FileRead   读取档案
-----------------------------------------------------------------------------
Unit  SysUtils
函数原型 function FileRead(Handle: Integer; var Buffer; Count: Integer):Integer;
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  iFileHandle: Integer;
  iFileLength: Integer;
  iBytesRead: Integer;
  Buffer: PChar;
  i: Integer
begin
  if OpenDialog1.Execute then
  begin
    try
      iFileHandle := FileOpen(OpenDialog1.FileName, fmOpenRead);
      iFileLength := FileSeek(iFileHandle,0,2);
      FileSeek(iFileHandle,0,0);
      Buffer := PChar(AllocMem(iFileLength + 1));
      iBytesRead = FileRead(iFileHandle, Buffer, iFileLength);
      FileClose(iFileHandle);
      for i := 0 to iBytesRead-1 do
      begin
        StringGrid1.RowCount := StringGrid1.RowCount + 1;
        StringGrid1.Cells[1,i+1] := Buffer[i];
        StringGrid1.Cells[2,i+1] := IntToStr(Integer(Buffer[i]));
      end;
    finally
      FreeMem(Buffer);
    end;
  end;
end;
##FileOpen, FileSeek, FileRead Example
-----------------------------------------------------------------------------
FileWrite   写入档案
-----------------------------------------------------------------------------
Unit  SysUtils
函数原型 function FileWrite(Handle: Integer; const Buffer; Count: Integer): Integer;
范例
procedure TForm1.Button1Click(Sender: TObject);
var
  BackupName: string;
  FileHandle: Integer;
  StringLen: Integer;
  X: Integer;
&nb
 
本篇文章来源于:开发学院 http://edu.   原文链接:http://edu./2009/1029/17012.php

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多