DELPHI常用函数集介绍
DELPHI常用函数集介绍
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
================================
Arithmeticroutines数学运算
================================
Abs绝对值
---------------------------------------------------------
UnitSystem
函数原型functionAbs(X);
说明X为整数or实数.
范例
var
r:Real;
i:Integer;
begin
r:=Abs(-2.3);{2.3}
i:=Abs(-157);{157}
end;
----------------------------------------------------------
ArcTan三角函数
----------------------------------------------------------
范例
Cos
varR: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,'TheSinofPiis'+S);
end;
----------------------------------------------------------
UnitSystem
函数原型functionArcTan(X:Extended):Extended;
函数原型functionCos(X:Extended):Extended;
函数原型functionSin(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,'TheSinofPiis'+S);
end;
----------------------------------------------------------
Frac求一个实数的小数部份
----------------------------------------------------------
UnitSystem
函数原型functionFrac(X:Real):Real;
说明X为实数.
范例var
R:Real;
begin
R:=Frac(123.456);{0.456}
R:=Frac(-123.456);{-0.456}
end;
------------------------------------------
Int求一个实数的整数部份
------------------------------------------
UnitSystem
函数原型functionInt(X:Real):Real;
说明X为实数.
范例var
R:Real;
begin
R:=Int(123.456);{123.0}
R:=Int(-123.456);{-123.0}
end;
------------------------------------------
Pi就是数学的Pi
------------------------------------------
UnitSystem
函数原型functionPi:Extended;
说明它是一个函数,但我们就把它当作是预设的变数来用吧!
Pi=3.1415926535897932385
------------------------------------------
SqrX的平方
-----------------------------------------
范例
var
S,Temp:string;
begin
Str(Sqr(5.0):3:1,Temp);
S:='5squaredis'+Temp+#13#10;
Str(Sqrt(2.0):5:4,Temp);
S:=S+'Thesquarerootof2is'+Temp;
MessageDlg(S,mtInformation,[mbOk],0);
end;
-----------------------------------------
SqrtX的平方根
------------------------------------------
UnitSystem
函数原型functionSqr(X:Extended):Extended;
函数原型functionSqrt(X:Extended):Extended;
范例var
S,Temp:string;
begin
Str(Sqr(5.0):3:1,Temp);
S:='5squaredis'+Temp+#13#10;
Str(Sqrt(2.0):5:4,Temp);
S:=S+'Thesquarerootof2is'+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指数
------------------------------------------
UnitSystem
函数原型functionLn(X:Real):Real;
函数原型functionExp(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;
------------------------------------------
Dateandtimeroutines日期及时间函数
------------------------------------------
Date传回目前的日期
UnitSysUtils
函数原型functionDate:TDateTime;
范例procedureTForm1.Button1Click(Sender:TObject);
begin
Label1.Caption:='Todayis'+DateToStr(Date);
end;
------------------------------------------
DateTimeToStr日期时间转换成内定型字串(1996/12/2009:12:20PM)
------------------------------------------
UnitSysUtils
函数原型functionDateTimeToStr(DateTime:TDateTime):string;
范例procedureTForm1.Button1Click(Sender:TObject);
begin
Label1.Caption:=DateTimeToStr(Now);
end;
--------------------------------------------------------
DateTimeToString日期时间转换成自定型字串
-------------------------------------------------------
UnitSysUtils
函数原型procedureDateTimeToString(varResult:string;constFormat:
string;DateTime:TDateTime);
范例procedureTForm1.FormCreate(Sender:TObject);
var
s:string;
begin
DateTimeToString(s,'dddd,mmmmd,yyyy"at"hh:mm
AM/PM',Now);
Label1.Caption:=s;
end;
结果星期五,十二月20,1996at09:20PM
-----------------------------------------------------------------------------
****Format格式叁考下面.FormatDateTime.
--------------------------------------------------------
DateToStr日期转换成内定型字串.(1996/12/20)
--------------------------------------------------------
UnitSysUtils
函数原型functionDateToStr(Date:TDateTime):string;
范例
procedureTForm1.Button1Click(Sender:TObject);
begin
Label1.Caption:='Todayis'+DateToStr(Date);
end;
#Date,DateToStrExample
--------------------------------------------------------
DayOfWeek求叁数日期是星期几.
--------------------------------------------------------
UnitSysUtils
函数原型functionDayOfWeek(Date:TDateTime):Integer;
说明传回值是一整数,1~7.
星期日为1.
范例
procedureTForm1.Button1Click(Sender:TObject);
var
ADate:TDateTime;
days:array[1..7]ofstring;
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+'isa'+days[DayOfWeek(ADate)];
end;
#StrToDate,DayOfWeekExample
--------------------------------------------------------
DecodeDate将TDateTime型态的日期变数,转为Word型态.
--------------------------------------------------------
范例
procedureTForm1.Button1Click(Sender:TObject);
var
Present:TDateTime;
Year,Month,Day,Hour,Min,Sec,MSec:Word;
begin
Present:=Now;
DecodeDate(Present,Year,Month,Day);
Label1.Caption:='TodayisDay'+IntToStr(Day)+'ofMonth'
+IntToStr(Month)+'ofYear'+IntToStr(Year);
DecodeTime(Present,Hour,Min,Sec,MSec);
Label2.Caption:='ThetimeisMinute'+IntToStr(Min)+'ofHour'
+IntToStr(Hour);
end;
#DecodeDate,DecodeTimeExample
--------------------------------------------------------
DecodeTime将TDateTime型态的时间变数,转为Word型态.
--------------------------------------------------------
UnitSysUtils
函数原型procedureDecodeDate(Date:TDateTime;varYear,Month,Day:Word);
函数原型procedureDecodeTime(Time:TDateTime;varHour,Min,Sec,MSec:Word);
范例procedureTForm1.Button1Click(Sender:TObject);
var
Present:TDateTime;
Year,Month,Day,Hour,Min,Sec,MSec:Word;
begin
Present:=Now;
DecodeDate(Present,Year,Month,Day);
Label1.Caption:='TodayisDay'+IntToStr(Day)+'of
Month'+IntToStr(Month)+'ofYear'+IntToStr(Year);
DecodeTime(Present,Hour,Min,Sec,MSec);
Label2.Caption:='ThetimeisMinute'+IntToStr(Min)+'of
Hour'+IntToStr(Hour);
end;
--------------------------------------------------------
EncodeDate将Word型态的日期变数,转为TDateTime型态.
--------------------------------------------------------
范例
procedureTForm1.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型态.
--------------------------------------------------------
UnitSysUtils
函数原型functionEncodeDate(Year,Month,Day:Word):TDateTime;
函数原型functionEncodeTime(Hour,Min,Sec,MSec:Word):
TDateTime;
范例procedureTForm1.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;
范例
procedureTForm1.Button1Click(Sender:TObject);
var
MyTime:TDateTime;
begin
MyTime:=EncodeTime(0,45,45,7);
Label1.Caption:=TimeToStr(MyTime);
end;
--------------------------------------------------------
FormatDateTime将日期时间依Format的格式转换给一字串.
--------------------------------------------------------
UnitSysUtils
函数原型functionFormatDateTime(constFormat:string;DateTime:
TDateTime):string;
****类似DateTimeToString.
Format格式
c内定值ShortDateFormat的格式.(1996/12/2009:20:15PM).
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:20PM)
tt时间.(09:20:15PM)
am/pm单独显示amorpm.(若大写,则显示大写)
a/p单独显示aorp.
范例
Thefollowingexampleassigns'ThemeetingisonWednesday,February15,1995at10:30AM'tothestringvariableS.
S:=FormatDateTime('"Themeetingison"dddd,mmmmd,yyyy,"at"hh:mmAM/PM',
StrToDateTime('2/15/9510:30am'));//???
--------------------------------------------------------
Now传回目前的日期时间.
--------------------------------------------------------
UnitSysUtils
函数原型functionNow:TDateTime;
范例
procedureTForm1.Button1Click(Sender:TObject);
begin
Label1.Caption:=DateTimeToStr(Now);
end;
#Now,DateTimeToStrExample
--------------------------------------------------------
StrToDate将字串转为TDateTime型态的日期.
--------------------------------------------------------
UnitSysUtils
函数原型functionStrToDate(constS:string):TDateTime;
范例procedureTForm1.Button1Click(Sender:TObject);
var
ADate:TDateTime;
begin
ADate:=StrToDate(Edit1.Text);
Label1.Caption:=DateToStr(ADate);
end;
范例
procedureTForm1.Button1Click(Sender:TObject);
var
ADate:TDateTime;
days:array[1..7]ofstring;
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+'isa'+days[DayOfWeek(ADate)];
end;
#StrToDate,DayOfWeekExample
--------------------------------------------------------
StrToDateTime将字串转为TDateTime型态的日期时间.
--------------------------------------------------------
UnitSysUtils
函数原型functionStrToDateTime(constS:string):TDateTime;
范例
procedureTForm1.Button1Click(Sender:TObject);
var
ADateAndTime:TDateTime;
begin
ADateAndTime:=StrToDateTime(Edit1.Text);
Table1.FieldByName('TimeStamp').AsDateTime:=ADateAndTime;
end;
--------------------------------------------------------
StrToTime将字串转为TDateTime型态的时间.
--------------------------------------------------------
UnitSysUtils
函数原型functionStrToTime(constS:string):TDateTime;
范例
procedureTForm1.Button1Click(Sender:TObject);
var
ATime:TDateTime;
begin
ATime:=StrToTime(Edit1.Text);
ifATime<0.50then
ShowMessage('GoodMorning')
else
ShowMessage('GoodAfternoon');
end;
--------------------------------------------------------
Time传回目前的时间.
--------------------------------------------------------
UnitSysUtils
函数原型functionTime:TDateTime;
范例
procedureTForm1.Timer1Timer(Sender:TObject);
var
DateTime:TDateTime;
str:string;
begin
DateTime:=Time;//storethecurrentdateandtime
str:=TimeToStr(DateTime);//convertthetimeintoastring
Caption:=str;//displaythetimeontheform'scaption
{NoteThiscouldhavebeendonewiththefollowinglineofcode:
Caption:=TimeToStr(Time);}
end;
#Time,TimeToStrExample
--------------------------------------------------------
TimeToStr时间转换成内定型字串.(09:20:15PM)
--------------------------------------------------------
UnitSysUtils
函数原型functionTimeToStr(Time:TDateTime):string;
GetMemprocedure配置记忆体程序
New配置指位器P的记忆体空间,
大小为P所指型态的大小.
--------------------------------------------------------
Dispose释放New所配置的记忆体.
--------------------------------------------------------
UnitSystem
函数原型procedureNew(varP:Pointer);
函数原型procedureDispose(varP: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:='Helloworld';
P^.Count:=1;
List:=P;
...
Dispose(P);
…
end;
范例
type
Str18=string[18];
var
P:^Str18;
begin
New(P);
P^:='Nowyouseeit...';
Dispose(P);{Nowyoudon'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所配置的记忆体.
--------------------------------------------------------
UnitSystem
函数原型procedureGetMem(varP:Pointer;Size:Integer);
函数原型procedureFreeMem(varP: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-managementroutines档案管理常式
====================================
--------------------------------------------------------
ChangeFileExt变更档案的副档名
--------------------------------------------------------
UnitSysUtils
函数原型functionChangeFileExt(constFileName,Extension:string):
string;
范例procedureTForm1.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'
范例
procedureTForm1.ConvertIcon2BitmapClick(Sender:TObject);
var
s:string;
Icon:TIcon;
begin
OpenDialog1.DefaultExt:='.ICO';
OpenDialog1.Filter:='icons(*.ico)|*.ICO';
OpenDialog1.Options:=[ofOverwritePrompt,ofFileMustExist,ofHideReadOnly];
ifOpenDialog1.Executethen
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+'Savedto'+s);
finally
Icon.Free;
end;
end;
end;
#SaveToFile,Create,Height,Width,Canvas,ChangeFileExtexample
--------------------------------------------------------
ExpandFileName将档案名称加在目前所在之路径全名之後
--------------------------------------------------------
UnitSysUtils
函数原型functionExpandFileName(constFileName:string):string;
说明设目前目录为c:/windows档案名称为abc.txt
则结果为c:/windows/abc.txt
****此函数并不是求abc.txt的所在路径.
范例procedureTForm1.Button1Click(Sender:TObject);
var
S:String;
begin
S:=ExpandFileName('abc.txt');
Label1.Caption:=S;
end;
范例
procedureTForm1.Button1Click(Sender:TObject)
begin
ListBox1.Items.Add(ExpandFileName(Edit1.Text));
end;
------------------------------------------------------------------
DirectoryExists目录是否存在------------------------------------------------------------------
Unit
FileCtrl
usesFileCtrl;
procedureTForm1.Button1Click(Sender:TObject);
begin
ifnotDirectoryExists('c:/temp')then
ifnotCreateDir('C:/temp')then
raiseException.Create('Cannotcreatec:/temp');
end;
--------------------------------------------------------
ForceDirectories目录
---------------------------------------------------------
UnitFileCtrl
函数原型functionForceDirectories(Dir:string):Boolean;
procedureTForm1.Button1Click(Sender:TObject);
var
Dir:string;
begin
Dir:='C:/APPS/SALES/LOCAL';
ifDirectoryExists(Dir)then
Label1.Caption:=Dir+'wascreated'
end;
--------------------------------------------------------
ExpandUNCFileName同上(只是得到网路上的路径)
--------------------------------------------------------
UnitSysUtils
函数原型functionExpandUNCFileName(constFileName:string):string;
ExtractFileDir分析字串中的路径
UnitSysUtils
函数原型functionExtractFileDir(constFileName:string):string;
说明设S字串为c:/windows/abc.txt
则结果为c:/windows
****功能在於由任何部份传来的叁数,加以分析它的路径
范例procedureTForm1.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分析字串中的磁碟机名称
--------------------------------------------------------
UnitSysUtils
函数原型functionExtractFileDrive(constFileName:string):string;
****功能同上,只是传回磁碟机名称.
范例procedureTForm1.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分析字串中的档案名称的副档名
--------------------------------------------------------
UnitSysUtils
函数原型functionExtractFileExt(constFileName:string):string;
范例procedureTForm1.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分析字串中的档案名称(只传回档案名称)
--------------------------------------------------------
UnitSysUtils
函数原型functionExtractFileName(constFileName:string):string;
范例procedureTForm1.Button1Click(Sender:TObject);
var
S:String;
P1:String;
begin
P1:='c:/windows/abc.txt';
S:=ExtractFileName(P1);
Label1.Caption:=S;
end;
S=='abc.txt'
范例
procedureTForm1.Button1Click(Sender:TObject);
var
BackupName:string;
FileHandle:Integer;
StringLen:Integer;
X:Integer;
Y:Integer;
begin
ifSaveDialog1.Executethen
begin
ifFileExists(SaveDialog1.FileName)then
begin
BackupName:=ExtractFileName(SaveDialog1.FileName);
BackupName:=ChangeFileExt(BackupName,'.BAK');
ifnotRenameFile(SaveDialog1.FileName,BackupName)then
raiseException.Create('Unabletocreatebackupfile.');
end;
FileHandle:=FileCreate(SaveDialog1.FileName);
{Writeoutthenumberofrowsandcolumnsinthegrid.}
FileWrite(FileHandle,
StringGrid1.ColCount,SizeOf(StringGrid1.ColCount));
FileWrite(FileHandle,
StringGrid1.RowCount,SizeOf(StringGrid1.RowCount));
forX:=0toStringGrid1.ColCount?1do
begin
forY:=0toStringGrid1.RowCount?1do
begin
{Writeoutthelengthofeachstring,followedbythestringitself.}
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,ExtractFileNameExample
--------------------------------------------------------
ExtractFilePath分析字串中的路径
--------------------------------------------------------
UnitSysUtils
函数原型functionExtractFilePath(constFileName:string):string;
说明设S字串为c:/windows/abc.txt
则结果为c:/windows范例procedureTForm1.Button1Click(Sender:TObject);
var
S:String;
P1:String;
begin
P1:='c:/windows/abc.txt';
S:=ExtractFilePath(P1);
Label1.Caption:=S;
end;
范例
begin
withSessiondo
begin
ConfigMode:=cmSession;
try
AddStandardAlias('TEMPDB',ExtractFilePath(ParamStr(0)),'PARADOX');
finally
ConfigMode:=cmAll;
end;
end;
##ConfigMode,AddStandardAlias,ExtractFilePathexample
--------------------------------------------------------
FileSearch寻找档案在磁碟机中的正确路径
--------------------------------------------------------
UnitSysUtils
函数原型functionFileSearch(constName,DirList:string):string;
范例var
s:string;
begin
s:=FileSearch('abc.txt','c:/window/');
Label1.Caption:=s;
end;
说明找到传回c:/window/abc.txt找不到传回空字串.
范例
procedureTForm1.Button1Click(Sender:TObject);
var
buffer:array[0..255]ofchar;
FileToFind:string;
begin
GetWindowsDirectory(buffer,SizeOf(buffer));
FileToFind:=FileSearch(Edit1.Text,GetCurrentDir+';'+buffer);
ifFileToFind='then
ShowMessage('Couldn'tfind'+Edit1.Text+'.')
else
ShowMessage('Found'+FileToFind+'.');
end;
##FileSearch,ShowMessageExample
--------------------------------------------------------
FileAge传回档案的日期及时间(DOS型态).
--------------------------------------------------------
UnitSysUtils
函数原型functionFileAge(constFileName:string):Integer;
说明就是档案总管中档案内容裹面的修改日期.
范例procedureTForm1.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型态.
--------------------------------------------------------
UnitSysUtils
函数原型functionFileDateToDateTime(FileDate:Integer):TDateTime;
-----------------------------------------------------------------------------
DateTimeToFileDate将TDateTime型态的日期时间转换为DOS型态.
-----------------------------------------------------------------------------
UnitSysUtils
函数原型functionDateTimeToFileDate(DateTime:TDateTime):Integer;
FileGetDate传回档案的日期及时间(DOS型态).
UnitSysUtils
函数原型functionFileGetDate(Handle:Integer):Integer;
说明就是档案总管中档案内容裹面的修改日期.
范例procedureTForm1.Button1Click(Sender:TObject);
var
FileHandle:Integer;
S:String;
FileDate1:Integer;
DateTime1:TDateTime;
begin
FileHandle:=FileOpen('c:/delphi_d/delphi_help2.txt',
fmOpenReadWrite);
ifFileHandle>0then
Begin
FileDate1:=FileGetDate(FileHandle);
DateTime1:=FileDateToDateTime(FileDate1);
S:=DateTimeToStr(DateTime1);
FileClose(FileHandle);
End
else
S:='OpenFileError';
Label1.Caption:=S;
end;
-----------------------------------------------------------------------------
FileSetDate设定档案的日期及时间(DOS型态).
-----------------------------------------------------------------------------
UnitSysUtils
函数原型functionFileSetDate(Handle:Integer;Age:Integer):Integer;
说明传回值为0表示成功.
-----------------------------------------------------------------------------
DeleteFile删除档案
-----------------------------------------------------------------------------
UnitSysUtils
函数原型functionDeleteFile(constFileName:string):Boolean;
范例一DeleteFile('DELETE.ME');
范例二ifFileExists(FileName)then
ifMessageDlg('Doyoureallywanttodelete'+
ExtractFileName(FileName)+'?'),[])=IDYesthen
DeleteFile(FileName);
##FileExists,DeleteFileExample
-----------------------------------------------------------------------------
RenameFile更改档名
-----------------------------------------------------------------------------
UnitSysUtils
函数原型functionRenameFile(constOldName,NewName:string):Boolean;
范例
procedureTForm1.Button1Click(Sender:TObject);
var
BackupName:string;
FileHandle:Integer;
StringLen:Integer;
X:Integer;
Y:Integer;
begin
ifSaveDialog1.Executethen
begin
ifFileExists(SaveDialog1.FileName)then
begin
BackupName:=ExtractFileName(SaveDialog1.FileName);
BackupName:=ChangeFileExt(BackupName,'.BAK');
ifnotRenameFile(SaveDialog1.FileName,BackupName)then
raiseException.Create('Unabletocreatebackupfile.');
end;
FileHandle:=FileCreate(SaveDialog1.FileName);
{Writeoutthenumberofrowsandcolumnsinthegrid.}
FileWrite(FileHandle,
StringGrid1.ColCount,SizeOf(StringGrid1.ColCount));
FileWrite(FileHandle,
StringGrid1.RowCount,SizeOf(StringGrid1.RowCount));
forX:=0toStringGrid1.ColCount?1do
begin
forY:=0toStringGrid1.RowCount?1do
begin
{Writeoutthelengthofeachstring,followedbythestringitself.}
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)
-----------------------------------------------------------------------------
UnitSysUtils
函数原型functionDiskFree(Drive:Byte):Integer;
范例var
S:string;
begin
S:=IntToStr(DiskFree(0)div1024)+'Kbytesfree.';
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(AmtFreedivTotal)+'percentofthespaceondrive0isfree:'(AmtFreediv1024)+'Kbytesfree.';
Canvas.TextOut(10,10,S);
end;
##DiskFree,DiskSizeExample
-----------------------------------------------------------------------------
DiskSize磁碟机空间大小(Bytes)
-----------------------------------------------------------------------------
UnitSysUtils
函数原型functionDiskSize(Drive:Byte):Integer;
范例var
S:string;
begin
S:=IntToStr(DiskSize(0)div1024)+'Kbytesfree.';
Label1.Caption:=S;
end;
说明Drive
0=目前磁碟机,1=A磁碟机,2=B磁碟机....传回值若为-1,表示磁碟机侦测错误.
##DiskFree,DiskSizeExample
-----------------------------------------------------------------------------
FileExists判断档案是否存在.
-----------------------------------------------------------------------------
UnitSysUtils
函数原型functionFileExists(constFileName:string):Boolean;
类似FileExists,RenameFile,FileCreate,FileWrite,FileClose,ExtractFileNameExample
范例
procedureTForm1.Button1Click(Sender:TObject);
var
BackupName:string;
FileHandle:Integer;
StringLen:Integer;
X:Integer;
Y:Integer;
begin
ifSaveDialog1.Executethen
begin
ifFileExists(SaveDialog1.FileName)then
begin
BackupName:=ExtractFileName(SaveDialog1.FileName);
BackupName:=ChangeFileExt(BackupName,'.BAK');
ifnotRenameFile(SaveDialog1.FileName,BackupName)then
raiseException.Create('Unabletocreatebackupfile.');
end;
FileHandle:=FileCreate(SaveDialog1.FileName);
{Writeoutthenumberofrowsandcolumnsinthegrid.}
FileWrite(FileHandle,
StringGrid1.ColCount,SizeOf(StringGrid1.ColCount));
FileWrite(FileHandle,
StringGrid1.RowCount,SizeOf(StringGrid1.RowCount));
forX:=0toStringGrid1.ColCount?1do
begin
forY:=0toStringGrid1.RowCount?1do
begin
{Writeoutthelengthofeachstring,followedbythestringitself.}
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,DeleteFileExample
##FileExists,RenameFile,FileCreate,FileWrite,FileClose,ExtractFileNameExample
-----------------------------------------------------------------------------
FileOpen开档.
-----------------------------------------------------------------------------
UnitSysUtils
函数原型functionFileOpen(constFileName:string;Mode:
Integer):Integer;
****开档失败传回-1.
说明以下有关档案读取都属低阶,如DosInt21h中有关档案的部
分.
fmOpenRead=$0000;
fmOpenWrite=$0001;
fmOpenReadWrite=$0002;
fmShareCompat=$0000;
fmShareExclusive=$0010;
fmShareDenyWrite=$0020;
fmShareDenyRead=$0030;
fmShareDenyNone=$0040;
fmOpenReadOpenforreadaccessonly.
FmOpenWriteOpenforwriteaccessonly.
FmOpenReadWriteOpenforreadandwriteaccess.
fmShareCompatCompatiblewiththewayFCBsare
opened.
fmShareExclusiveReadandwriteaccessisdenied.
fmShareDenyWriteWriteaccessisdenied.
fmShareDenyReadReadaccessisdenied.
fmShareDenyNoneAllowsfullaccessforothers.
范例
procedureOpenForShare(constFileName:String);
var
FileHandle:Integer;
begin
FileHandle:=FileOpen(FileName,fmOpenWriteorfmShareDenyNone);
ifFileHandle>0then
{validfilehandle}
else
{Openerror:FileHandle=negativeDOSerrorcode}
end;
范例
procedureTForm1.Button1Click(Sender:TObject);
var
iFileHandle:Integer;
iFileLength:Integer;
iBytesRead:Integer;
Buffer:PChar;
i:Integer
begin
ifOpenDialog1.Executethen
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);
fori:=0toiBytesRead-1do
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,FileReadExample
-----------------------------------------------------------------------------
FileCreate建档
-----------------------------------------------------------------------------
UnitSysUtils
函数原型functionFileCreate(constFileName:string):Integer;
范例
procedureTForm1.Button1Click(Sender:TObject);
var
BackupName:string;
FileHandle:Integer;
StringLen:Integer;
X:Integer;
Y:Integer;
begin
ifSaveDialog1.Executethen
begin
ifFileExists(SaveDialog1.FileName)then
begin
BackupName:=ExtractFileName(SaveDialog1.FileName);
BackupName:=ChangeFileExt(BackupName,'.BAK');
ifnotRenameFile(SaveDialog1.FileName,BackupName)then
raiseException.Create('Unabletocreatebackupfile.');
end;
FileHandle:=FileCreate(SaveDialog1.FileName);
{Writeoutthenumberofrowsandcolumnsinthegrid.}
FileWrite(FileHandle,
StringGrid1.ColCount,SizeOf(StringGrid1.ColCount));
FileWrite(FileHandle,
StringGrid1.RowCount,SizeOf(StringGrid1.RowCount));
forX:=0toStringGrid1.ColCount?1do
begin
forY:=0toStringGrid1.RowCount?1do
begin
{Writeoutthelengthofeachstring,followedbythestringitself.}
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,ExtractFileNameExample
-----------------------------------------------------------------------------
FileClose关档
-----------------------------------------------------------------------------
UnitSysUtils
函数原型procedureFileClose(Handle:Integer);
范例
procedureTForm1.Button1Click(Sender:TObject);
var
BackupName:string;
FileHandle:Integer;
StringLen:Integer;
X:Integer;
Y:Integer;
begin
ifSaveDialog1.Executethen
begin
ifFileExists(SaveDialog1.FileName)then
begin
BackupName:=ExtractFileName(SaveDialog1.FileName);
BackupName:=ChangeFileExt(BackupName,'.BAK');
ifnotRenameFile(SaveDialog1.FileName,BackupName)then
raiseException.Create('Unabletocreatebackupfile.');
end;
FileHandle:=FileCreate(SaveDialog1.FileName);
{Writeoutthenumberofrowsandcolumnsinthegrid.}
FileWrite(FileHandle,
StringGrid1.ColCount,SizeOf(StringGrid1.ColCount));
FileWrite(FileHandle,
StringGrid1.RowCount,SizeOf(StringGrid1.RowCount));
forX:=0toStringGrid1.ColCount?1do
begin
forY:=0toStringGrid1.RowCount?1do
begin
{Writeoutthelengthofeachstring,followedbythestringitself.}
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,ExtractFileNameExample
============================================
****它是以Handle为叁数.
============================================
FileRead读取档案
-----------------------------------------------------------------------------
UnitSysUtils
函数原型functionFileRead(Handle:Integer;varBuffer;Count:Integer):Integer;
范例
procedureTForm1.Button1Click(Sender:TObject);
var
iFileHandle:Integer;
iFileLength:Integer;
iBytesRead:Integer;
Buffer:PChar;
i:Integer
begin
ifOpenDialog1.Executethen
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);