----------abs(x) 绝对值arctan(x) 反正切cos(x) 传回馀弦函数值exp(x) e的x次幂frac(x) 取小数部分int(x) 取整ln(x) 自然对数sin(x) 传回正弦函数值sqr(x) x*xsqrt(x) 平方根其它pred(x) pred('D')='C', pred(true)=1;succ(x) succ('Y')='Z', succ(pred(x))=xord(x) 求x在字符集中的序号,如ord('A')=65chr(x) chr(65)='A'round(x) 四舍五入trunc(x) trunc(4.8)=4,trunc('-3.6')=-3upcase(x) upcase('a')='A'hi(I) hi($2A30)=$2Alo(I) lo($2A30)=$30random(n) 产生[0,n)间的随机整数sizeof(name) 求出某类型或变量在内存中占用的字节数swap(num) swap($3621)=$2136==========Arithmetic routines 数学运算==========Abs 绝对值----------Unit System函数原型 function Abs(X);说明 X为整数or实数.范例varr: Real;i: Integer;beginr := Abs(-2.3); { 2.3 }i := Abs(-157); { 157 }end;----------ArcTan 三角函数----------范例Cosvar R: Extended;beginR := Cos(Pi);end;----------Sin----------范例varR: Extended;S: string;beginR := 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) 左边这三个不是函数,而是右边运算求得.范例varR: Extended;beginR := ArcTan(Pi);end;范例 varR: Extended;S: string;beginR := 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为实数.范例 varR: Real;beginR := Frac(123.456); { 0.456 }R := Frac(-123.456); { -0.456 }end;----------Int 求一个实数的整数部份----------Unit System函数原型 function Int(X: Real): Real;说明 X为实数.范例 varR: Real;beginR := Int(123.456); { 123.0 }R := Int(-123.456); { -123.0 }end;----------Pi 就是数学的Pi----------Unit System函数原型 function Pi: Extended;说明它是一个函数,但我们就把它当作是预设的变数来用吧! Pi= 3.----------Sqr X的平方----------范例varS, Temp: string;beginStr(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;范例 varS, Temp: string;beginStr(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 自然对数----------范例vare : real;S : string;begine := 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;范例 vare : real;S : string;begine := 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);beginLabel1.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);beginLabel1.Caption := DateTimeToStr(Now);end;----------DateTimeToString 日期时间转换成自定型字串----------Unit SysUtils函数原型 procedure DateTimeToString(var Result: string; const Format: string; DateTime: TDateTime);范例 procedure TForm1.FormCreate(Sender: TObject);vars:string;beginDateTimeToString(s,'dddd,mmmm d,yyyy "at" hh:mmAM/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);beginLabel1.Caption := 'Today is ' + DateToStr(Date);end;# Date, DateToStr ExampleDayOfWeek 求叁数日期是星期几.----------Unit SysUtils函数原型 function DayOfWeek(Date: TDateTime): Integer;说明传回值是一整数,1~7.星期日为1.范例procedure TForm1.Button1Click(Sender: TObject);varADate: TDateTime;days: array[1..7] of string;begindays[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);varPresent: TDateTime;Year, Month, Day, Hour, Min, Sec, MSec: Word;beginPresent:= 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);varPresent: TDateTime;Year, Month, Day, Hour, Min, Sec, MSec: Word;beginPresent:= Now;DecodeDate(Present, Year, Month, Day);Label1.Caption := 'Today is Day ' + IntToStr(Day) + ' ofMonth ' + IntToStr(Month) + ' of Year ' + IntToStr(Year);DecodeTime(Present, Hour, Min, Sec, MSec);Label2.Caption := 'The time is Minute ' +IntToStr(Min) + ' ofHour ' + IntToStr(Hour);end;----------EncodeDate 将Word型态的日期变数,转为TDateTime型态.----------范例procedure TForm1.Button1Click(Sender: TObject);varMyDate: TDateTime;beginMyDate := 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);varMyDate: TDateTime;MyTime: TDateTime;beginMyDate := EncodeDate(83, 12, 31);Label1.Caption := DateToStr(MyDate);MyTime := EncodeTime(0, 45, 45, 7);Label2.Caption := TimeToStr(MyTime);end;范例procedure TForm1.Button1Click(Sender: TObject);varMyTime: TDateTime;beginMyTime := 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);beginLabel1.Caption := DateTimeToStr(Now);end;# Now, DateTimeToStr Example----------StrToDate 将字串转为TDateTime型态的日期.----------Unit SysUtils函数原型 function StrToDate(const S: string): TDateTime;范例 procedure TForm1.Button1Click(Sender: TObject);varADate: TDateTime;beginADate := StrToDate(Edit1.Text);Label1.Caption := DateToStr(ADate);end;范例procedure TForm1.Button1Click(Sender: TObject);varADate: TDateTime;days: array[1..7] of string;begindays[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);varADateAndTime: TDateTime;beginADateAndTime := StrToDateTime(Edit1.Text);Table1.FieldByName('TimeStamp').AsDateTime := ADateAndTime;end;----------StrToTime 将字串转为TDateTime型态的时间.----------Unit SysUtils函数原型 function StrToTime(const S: string): TDateTime;范例procedure TForm1.Button1Click(Sender: TObject);varATime: TDateTime;beginATime := StrToTime(Edit1.Text);if ATime < 0.50 thenShowMessage('Good Morning')elseShowMessage('Good Afternoon');end;----------Time 传回目前的时间.----------Unit SysUtils函数原型 function Time: TDateTime;范例procedure TForm1.Timer1Timer(Sender: TObject);varDateTime : TDateTime;str : string;beginDateTime := Time; // store the current date and timestr := TimeToStr(DateTime); // convert the time into a stringCaption := 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);范例 typePListEntry = ^TListEntry;TListEntry = recordNext: PListEntry;Text: string;Count: Integer;end;varList, P: PListEntry;begin...New(P);P^.Next := List;P^.Text := 'Hello world';P^.Count := 1;List := P;...Dispose(P);…end;范例typeStr18 = string[18];varP: ^Str18;beginNew(P);P^ := 'Now you see it...';Dispose(P); { Now you don't... }end;----------GetMem 配置指位器P的记忆体空间,大小可自行设定.----------范例varF: file;Size: Integer;Buffer: PChar;beginAssignFile(F, 'test.txt');Reset(F, 1);trySize := FileSize(F);GetMem(Buffer, Size);tryBlockRead(F, Buffer^, Size);ProcessFile(Buffer, Size);finallyFreeMem(Buffer);end;finallyCloseFile(F);end;end;----------FreeMem 释放GetMem所配置的记忆体.----------Unit System函数原型 procedure GetMem(var P: Pointer; Size: Integer);函数原型 procedure FreeMem(var P: Pointer[; Size: Integer]); 范例 varF: file;Size: Integer;Buffer: PChar;beginAssignFile(F, 'test.txt');Reset(F, 1);trySize := FileSize(F);GetMem(Buffer, Size);tryBlockRead(F, Buffer^, Size);ProcessFile(Buffer, Size);finallyFreeMem(Buffer);end;finallyCloseFile(F);end;end;==========File-management routines 档案管理常式==========----------ChangeFileExt 变更档案的副档名----------Unit SysUtils函数原型 function ChangeFileExt(const FileName, Extension: string): string;范例 procedure TForm1.Button1Click(Sender: TObject);varS: String;P1:String;P2:String;beginP1:='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);vars : string;Icon: TIcon;beginOpenDialog1.DefaultExt := '.ICO';OpenDialog1.Filter := 'icons (*.ico)|*.ICO';OpenDialog1.Options := [ofOverwritePrompt, ofFileMustExist, ofHideReadOnly ]; if OpenDialog1.Execute thenbeginIcon := TIcon.Create;tryIcon.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);finallyIcon.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);varS: String;beginS:=ExpandFileName('abc.txt');Label1.Caption:=S;end;范例procedure TForm1.Button1Click(Sender: TObject)beginListBox1.Items.Add(ExpandFileName(Edit1.Text));end;----------DirectoryExists 目录是否存在----------UnitFileCtrluses FileCtrl;procedure TForm1.Button1Click(Sender: TObject);beginif not DirectoryExists('c:\temp') thenif not CreateDir('C:\temp') thenraise Exception.Create('Cannot create c:\temp');end;----------ForceDirectories 目录----------Unit FileCtrl函数原型 function ForceDirectories(Dir: string): Boolean;procedure TForm1.Button1Click(Sender: TObject);varDir: string;beginDir := 'C:\APPS\SALES\LOCAL';if DirectoryExists(Dir) thenLabel1.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);varS: String;P1:String;beginP1:='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);varS: String;P1:String;beginP1:='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);varS: String;P1:String;beginP1:='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);varS: String;P1:String;beginP1:='c:\windows\abc.txt';S:=ExtractFileName(P1);Label1.Caption:=S;end;S=='abc.txt'范例procedure TForm1.Button1Click(Sender: TObject);varBackupName: string;FileHandle: Integer;StringLen: Integer;X: Integer;Y: Integer;beginif SaveDialog1.Execute thenbeginif FileExists(SaveDialog1.FileName) thenbeginBackupName := ExtractFileName(SaveDialog1.FileName);BackupName := ChangeFileExt(BackupName, '.BAK');if not RenameFile(SaveDialog1.FileName, BackupName) thenraise 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 dobeginfor Y := 0 to StringGrid1.RowCount ? 1 dobegin{ 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);varS: String;P1:String;beginP1:='c:\windows\abc.txt';S:=ExtractFilePath(P1);Label1.Caption:=S;end;范例beginwith Session dobeginConfigMode := cmSession;tryAddStandardAlias('TEMPDB', ExtractFilePath(ParamStr(0)), 'PARADOX'); finallyConfigMode := cmAll;end;end;##ConfigMode, AddStandardAlias, ExtractFilePath example----------FileSearch 寻找档案在磁碟机中的正确路径----------Unit SysUtils函数原型 function FileSearch(const Name, DirList: string): string;范例 vars:string;begins:= FileSearch('abc.txt', 'c:\window\');Label1.Caption:=s;end;说明找到传回c:\window\abc.txt 找不到传回空字串.范例procedure TForm1.Button1Click(Sender: TObject);varbuffer: array [0..255] of char;FileToFind: string;beginGetWindowsDirectory(buffer, SizeOf(buffer));FileToFind := FileSearch(Edit1.Text, GetCurrentDir + ';' + buffer);if FileToFind = ' thenShowMessage('Couldn't find ' + Edit1.Text + '.')elseShowMessage('Found ' + FileToFind + '.');end;##FileSearch, ShowMessage Example----------FileAge 传回档案的日期及时间(DOS型态).----------Unit SysUtils函数原型 function FileAge(const FileName: string): Integer;说明就是档案总管中档案内容裹面的修改日期.范例 procedure TForm1.Button1Click(Sender: TObject);varS: String;FileDate1:Integer;DateTime1:TDateTime;beginFileDate1 := 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);varFileHandle:Integer;S: String;FileDate1:Integer;DateTime1:TDateTime;beginFileHandle :=FileOpen('c:\delphi_d\delphi_help2.txt',fmOpenReadWrite);if FileHandle > 0 thenBeginFileDate1 := FileGetDate(FileHandle);DateTime1 := FileDateToDateTime(FileDate1);S := DateTimeToStr(DateTime1);FileClose(FileHandle);EndelseS := '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) thenif MessageDlg('Do you really want to delete ' +ExtractFileName(FileName) + '?'), []) = IDYes thenDeleteFile(FileName);##FileExists, DeleteFile Example----------RenameFile 更改档名----------Unit SysUtils函数原型 function RenameFile(const OldName, NewName: string):Boolean; 范例procedure TForm1.Button1Click(Sender: TObject);varBackupName: string;FileHandle: Integer;StringLen: Integer;X: Integer;Y: Integer;beginif SaveDialog1.Execute thenbeginif FileExists(SaveDialog1.FileName) thenbeginBackupName := ExtractFileName(SaveDialog1.FileName);BackupName := ChangeFileExt(BackupName, '.BAK');if not RenameFile(SaveDialog1.FileName, BackupName) thenraise 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 dobeginfor Y := 0 to StringGrid1.RowCount ? 1 dobegin{ 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;范例 varS: string;beginS := IntToStr(DiskFree(0) div 1024) + ' Kbytes free.';Label1.Caption:=S;end;说明 Drive0=目前磁碟机,1=A磁碟机,2=B磁碟机...传回值若为-1,表示磁碟机侦测错误.范例varS: string;AmtFree: Int64;Total: Int64;beginAmtFree := 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;范例 varS: string;beginS := IntToStr(DiskSize(0) div 1024) + ' Kbytes free.';Label1.Caption:=S;end;说明 Drive0=目前磁碟机,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);varBackupName: string;FileHandle: Integer;StringLen: Integer;X: Integer;Y: Integer;beginif SaveDialog1.Execute thenbeginif FileExists(SaveDialog1.FileName) thenbeginBackupName := ExtractFileName(SaveDialog1.FileName);BackupName := ChangeFileExt(BackupName, '.BAK');if not RenameFile(SaveDialog1.FileName, BackupName) thenraise 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 dofor Y := 0 to StringGrid1.RowCount ? 1 dobegin{ 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 areopened.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);varFileHandle : Integer;beginFileHandle := 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);variFileHandle: Integer;iFileLength: Integer;iBytesRead: Integer;Buffer: PChar;i: Integerbeginif OpenDialog1.Execute thenbegintryiFileHandle := 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 dobeginStringGrid1.RowCount := StringGrid1.RowCount + 1;StringGrid1.Cells[1,i+1] := Buffer[i];StringGrid1.Cells[2,i+1] := IntToStr(Integer(Buffer[i])); end;finallyFreeMem(Buffer);end;end;end;##FileOpen, FileSeek, FileRead Example----------FileCreate 建档----------Unit SysUtils函数原型 function FileCreate(const FileName: string): Integer;范例procedure TForm1.Button1Click(Sender: TObject);varBackupName: string;FileHandle: Integer;StringLen: Integer;X: Integer;Y: Integer;beginif SaveDialog1.Execute thenbeginif FileExists(SaveDialog1.FileName) thenbeginBackupName := ExtractFileName(SaveDialog1.FileName);BackupName := ChangeFileExt(BackupName, '.BAK');if not RenameFile(SaveDialog1.FileName, BackupName) thenraise 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 dobeginfor Y := 0 to StringGrid1.RowCount ? 1 dobegin{ 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 ----------。