DELPHI常用函數集及簡(jiǎn)要范例時(shí)間:2009-10-29 09:16:06來(lái)源:網(wǎng)絡(luò ) 作者:未知 點(diǎn)擊: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) 產(chǎn)生[0,n)間的隨機整數
sizeof(name) 求出某類(lèi)型或變量在內存中占用的字節數
swap(num) swap($3621)=$2136
================================
Arithmetic routines 數學(xué)運算
================================
Abs 絕對值
---------------------------------------------------------
Unit System
函數原型 function Abs(X);
說(shuō)明 X為整數or實(shí)數.
范例
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;
----------------------------------------------------------
說(shuō)明 X為徑度.
Tan(x) === Sin(x) / Cos(x)
ArcSin(x) = ArcTan (x/sqrt (1-sqr (x)))
ArcCos(x) = ArcTan (sqrt (1-sqr (x)) /x)
左邊這三個(gè)不是函數,而是右邊運算求得.
范例
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 求一個(gè)實(shí)數的小數部份
----------------------------------------------------------
Unit System
函數原型 function Frac(X: Real): Real;
說(shuō)明 X為實(shí)數.
范例 var
R: Real;
begin
R := Frac(123.456); { 0.456 }
R := Frac(-123.456); { -0.456 }
end;
------------------------------------------
Int 求一個(gè)實(shí)數的整數部份
------------------------------------------
Unit System
函數原型 function Int(X: Real): Real;
說(shuō)明 X為實(shí)數.
范例 var
R: Real;
begin
R := Int(123.456); { 123.0 }
R := Int(-123.456); { -123.0 }
end;
------------------------------------------
Pi 就是數學(xué)的Pi
------------------------------------------
Unit System
函數原型 function Pi: Extended;
說(shuō)明 它是一個(gè)函數,但我們就把它當作是預設的變數來(lái)用吧!
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 日期及時(shí)間函數
------------------------------------------
Date 傳回目前的日期
Unit SysUtils
函數原型 function Date: TDateTime;
范例 procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := 'Today is ' + DateToStr(Date);
end;
------------------------------------------
DateTimeToStr 日期時(shí)間轉換成內定型字串(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 日期時(shí)間轉換成自定型字串
-------------------------------------------------------
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;
說(shuō)明 傳回值是一整數,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型態(tài)的日期變數,轉為Word型態(tài).
--------------------------------------------------------
范例
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型態(tài)的時(shí)間變數,轉為Word型態(tài).
--------------------------------------------------------
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型態(tài)的日期變數,轉為T(mén)DateTime型態(tài).
--------------------------------------------------------
范例
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型態(tài)的時(shí)間變數,轉為T(mén)DateTime型態(tài).
--------------------------------------------------------
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 將日期時(shí)間依Format的格式轉換給一字串.
--------------------------------------------------------
Unit SysUtils
函數原型 function FormatDateTime(const Format: string; DateTime:
TDateTime): string;
**** 類(lèi)似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 小時(shí).(0-23)
hh 小時(shí).(00-23)
n 分鐘.(0-59)
nn 分鐘.(00-59)
s 秒鐘.(0-59)
ss 秒鐘.(00-59)
t 時(shí)間.(09:20 PM)
tt 時(shí)間.(09:20:15 PM)
am/pm 單獨顯示am or pm.(若大寫(xiě),則顯示大寫(xiě))
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 傳回目前的日期時(shí)間.
--------------------------------------------------------
Unit SysUtils
函數原型 function Now: TDateTime;
范例
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := DateTimeToStr(Now);
end;
# Now, DateTimeToStr Example
--------------------------------------------------------
StrToDate 將字串轉為T(mén)DateTime型態(tài)的日期.
--------------------------------------------------------
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 將字串轉為T(mén)DateTime型態(tài)的日期時(shí)間.
--------------------------------------------------------
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 將字串轉為T(mén)DateTime型態(tài)的時(shí)間.
--------------------------------------------------------
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 傳回目前的時(shí)間.
--------------------------------------------------------
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 時(shí)間轉換成內定型字串.(09:20:15 PM)
--------------------------------------------------------
Unit SysUtils
函數原型 function TimeToStr(Time: TDateTime): string;
GetMem procedure 配置記憶體程序
New 配置指位器P的記憶體空間,
大小為P所指型態(tài)的大小.
--------------------------------------------------------
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的第一位元必須有一點(diǎn)'.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 將檔案名稱(chēng)加在目前所在之路徑全名之後
--------------------------------------------------------
Unit SysUtils
函數原型 function ExpandFileName(const FileName: string): string;
說(shuō)明 設目前目錄為 c:\windows 檔案名稱(chēng)為 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 同上(只是得到網(wǎng)路上的路徑)
--------------------------------------------------------
Unit SysUtils
函數原型 function ExpandUNCFileName(const FileName: string):string;
ExtractFileDir 分析字串中的路徑
Unit SysUtils
函數原型 function ExtractFileDir(const FileName: string): string;
說(shuō)明 設S字串為 c:\windows\abc.txt
則結果為 c:\windows
**** 功能在於由任何部份傳來(lái)的叁數,加以分析它的路徑
范例 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 分析字串中的磁碟機名稱(chēng)
--------------------------------------------------------
Unit SysUtils
函數原型 function ExtractFileDrive(const FileName: string): string;
**** 功能同上,只是傳回磁碟機名稱(chēng).
范例 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 分析字串中的檔案名稱(chēng)的副檔名
--------------------------------------------------------
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 分析字串中的檔案名稱(chēng)(只傳回檔案名稱(chēng))
--------------------------------------------------------
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;
說(shuō)明 設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;
說(shuō)明 找到傳回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 傳回檔案的日期及時(shí)間(DOS型態(tài)).
--------------------------------------------------------
Unit SysUtils
函數原型 function FileAge(const FileName: string): Integer;
說(shuō)明 就是檔案總管中檔案內容裹面的修改日期.
范例 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型態(tài)的日期時(shí)間轉換為T(mén)DateTime型態(tài).
--------------------------------------------------------
Unit SysUtils
函數原型 function FileDateToDateTime(FileDate: Integer):TDateTime;
-----------------------------------------------------------------------------
DateTimeToFileDate 將TDateTime型態(tài)的日期時(shí)間轉換為 DOS型態(tài).
-----------------------------------------------------------------------------
Unit SysUtils
函數原型 function DateTimeToFileDate(DateTime: TDateTime):Integer;
FileGetDate 傳回檔案的日期及時(shí)間(DOS型態(tài)).
Unit SysUtils
函數原型 function FileGetDate(Handle: Integer): Integer;
說(shuō)明 就是檔案總管中檔案內容裹面的修改日期.
范例 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 設定檔案的日期及時(shí)間(DOS型態(tài)).
-----------------------------------------------------------------------------
Unit SysUtils
函數原型 function FileSetDate(Handle: Integer; Age: Integer): Integer;
說(shuō)明 傳回值為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;
說(shuō)明 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;
說(shuō)明 Drive
0=目前磁碟機,1=A磁碟機,2=B磁碟機....傳回值若為-1,表示磁碟機偵測錯誤.
##DiskFree, DiskSize Example
-----------------------------------------------------------------------------
FileExists 判斷檔案是否存在.
-----------------------------------------------------------------------------
Unit SysUtils
函數原型 function FileExists(const FileName: string): Boolean;
類(lèi)似 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 開(kāi)檔.
-----------------------------------------------------------------------------
Unit SysUtils
函數原型 function FileOpen(const FileName: string; Mode:
Integer):Integer;
**** 開(kāi)檔失敗傳回-1.
說(shuō)明 以下有關(guān)檔案讀取都屬低階,如Dos Int 21h中有關(guān)檔案的部
分.
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 關(guān)檔
-----------------------------------------------------------------------------
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 寫(xiě)入檔案
-----------------------------------------------------------------------------
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
本篇文章來(lái)源于:開(kāi)發(fā)學(xué)院
http://edu.codepub.com 原文鏈接:
http://edu.codepub.com/2009/1029/17012.php