DELPHI常用函数集及简要范例

转自:CSDN
------------------------------------------------------------------
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)
-----------------------------------------------------------------------------<

posted on 2004-12-10 15:07  路人甲2  阅读(2707)  评论(1编辑  收藏  举报

导航